环境安装
作者:唐亚峰 | battcn
字数统计:822 字
须知
一般安装 latest
版本即可,也可以自行指定版本 docker search
或者自己上 docker hub
看版本
如果 docker
运行开发环境,建议先创建一个网络 docker network create wemirr
后面容器都走统一网络
提供 docker-compose.yml
安装(文件在附件/docker/docker-compose.yml
)
必要组件
注意
创建网络: docker run --net wemirr --name xxx
最小中间件依赖,数据库
、缓存
,Naocs
当然你也可以切换其它注册中心或者配置中心,这样需要开发者自己去修改了
shell
安装 Redis (>=3.0)
docker pull redis:latest
docker run -itd --name redis -p 6379:6379 redis
安装 Mysql (>= 5.7)
docker pull mysql:latest
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
安装 Nacos (>=2.0)
docker pull nacos/nacos-server
# 创建Nacos容器,注意开放9848及9848,原因:https://nacos.io/en/docs/next/v2/upgrading/2.0.0-compatibility#deployment
docker run -itd --name nacos -p 8848:8848 -p 9848:9848 --restart=always -e MODE=standalone nacos/nacos-server
可选组件
TIP
可选组件是非必要的,如果没必要就不用安装了,一般企业用不到
消息总线(动态数据源租户)
多租户 => 动态数据源之间同步用到了消息总线 本项目默认使用 RabbitMQ
做消息总线和消息队列,如与公司中间件不符可自行修改
shell
docker pull macintoshplus/rabbitmq-management
docker run -d -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 25672:25672 macintoshplus/rabbitmq-management
文件存储
shell
docker pull bitnami/minio:latest
# 创建MinIO容器,密码必须大于等于8个字节,否则启动失败;初始化一个默认bucket为wemirr-bucket;9000端口与Gateway冲突,两个端口偏移10000
docker run -itd --name minio -p 19000:9000 -p 19001:9001 -e MINIO_ROOT_USER=minio -e MINIO_ROOT_PASSWORD=minio_pwd -e MINIO_DEFAULT_BUCKETS=wemirr-bucket bitnami/minio:latest
流量控制
默认使用 Spring Cloud Alibaba
做流量保护,也可自行切换成 Hystrix
shell
docker pull bladex/sentinel-dashboard
docker run -i -t -d -p 8858:8858 -p 8719:8719 bladex/sentinel-dashboard
定时任务
- 方案一:运行
wemirr-platform-options/wemirr-platform-job-admin
- 方案二:安装 XXL-JOB-ADMIN (如果数据库也是docker 运行需要配置统一网络 例如
docker network create wemirr
)
shell
docker pull xuxueli/xxl-job-admin:2.3.0
docker run --net wemirr -e PARAMS="--spring.datasource.username=root --spring.datasource.password=123456 --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver --spring.datasource.url=jdbc:mysql://127.0.0.1:3306/wemirr-platform?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true" -p 9999:8080 -v /Users/battcn/Development/xxl-job/data/applogs:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0
链路追踪
安装 skywalking-es7(8.7.0 有问题,别安装哦)
shell
# 如果已执行请忽略
docker network create wemirr
docker pull elasticsearch:7.9.3
docker pull apache/skywalking-oap-server:8.5.0-es7
docker pull apache/skywalking-ui:8.5.0
docker run --name elasticsearch --net wemirr -p 9200:9200 -p 9300:9300 -d -e "discovery.type=single-node" elasticsearch:7.9.3
docker run --name oap --net wemirr --restart always -p 1234:1234 -p 12800:12800 -p 11800:11800 -d -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:8.5.0-es7
docker run --name oap-ui --net wemirr --restart always -p 10086:8080 -d -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=oap:12800 apache/skywalking-ui:8.5.0
IDEA 配置
通过IDEA提供的参数配置功能,配置我们的 skywalking
监控插件
shell
VmOption -javaagent:/Users/battcn/Desktop/apache-skywalking-apm-bin/agent/skywalking-agent.jar
Environment variables SW_AGENT_NAME=wemirr-platform-gateway
Environment variables SW_AGENT_NAME=wemirr-platform-authority
- 启动命令
shell
nohup java -javaagent:/opt/wemirr-platform/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=wemirr-platform-gateway -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar wemirr-platform-gateway.jar -d > logs/start_gateway.log &
nohup java -javaagent:/opt/wemirr-platform/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=wemirr-platform-authority -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar wemirr-platform-authority.jar -d --spring.profiles.active=demo > logs/start_authority.log &