SpringCloud微服务开发脚手架。包括动态数据源模块、日志模块、分布式id生成器模块、短链生成模块、excel异步导出模块等。支持docker快速启动
SpringCloud微服务开发脚手架
注: 详细介绍请参考各模块的 README.md 文档
seata
分布式事务解决方案
更多
ELK
、Sentry
错误告警、SkyWalking
更多
zookeeper
和snowflake
算法的分布式id生成器
更多
facade
模块。包括异常、枚举等基类,以及请求、返回对象基类等
更多
注: ~~
划线部分为已完成功能~~
request-id
(请求唯一标识,网关生成或来自外部请求头,格式为UUID)、app-id
(应用唯一标识)、app-name
(应用名称)、
trace-app-names
(appName调用链路记录,以,
分割)、trace-host-names
(hostName调用链路记录,以,
分割)、
trace-host-addresses
(hostAddress调用链路记录,以,
分割)seata
分布式事务解决方案biz-spring-cloud-api-file-upload
,并提供基础SDK
云OSS
及七牛云服务
存储服务,私有文件采用FastDFS
分布式文件系统存储@see https://github.com/XuMinCha/xxl-job
@see https://github.com/XuMinCha/xxl-job
为方便快速启动相关服务,提供docker-compose
容器编排脚本,使用几个简单的命令即可启动相关服务模块
docker-compose up -d # 初始化容器,如果容器不存在根据镜像自动创建
docker-compose down -v # 停止容器并删除容器
docker-compose start # 启动容器
docker-compose restart # 重启容器
docker-compose stop # 停止容器
docker-compose ps # 查看服务启动情况
docker-compose logs -f --tail=10 # 查看compose日志
docker-compose -h # 查看更多相关命令
进入./docker
目录, 执行docker-compose up -d
,或者docker-compose up -d {服务名1} {服务名2} ...
来启动指定服务
服务模块清单如下:
服务 | 服务名 | 端口 | 帐号/密码 | 地址 |
---|---|---|---|---|
* 数据库(主) | mysql-master | 3306 | root/123456 | |
* 数据库(从) | mysql-slave1 | 3307 | root/123456 | |
* 数据库(从) | mysql-slave2 | 3308 | root/123456 | |
* KV缓存 | redis | 6379 | 123456 | |
* 消息中间件 | rabbitmq | 5672 | waynechu/123456 | http://localhost:15672 |
zookeeper | zk、zk2、zk3 | 2181-2183 | ||
搜索引擎 | elasticsearch | 9200 | ||
日志分析工具 | kibana | 5601 | http://localhost:5601 | |
日志收集工具 | logstash | 7002 | ||
配置中心 | apollo | 9070 | apollo/admin | http://localhost:8070 |
配置中心db | apollo-db | 3316 | ||
* 注册中心 | eureka | 9001-9009 | http://localhost:9001 | |
网关 | gateway | 9010 | http://localhost:9010/swagger-ui.html | |
监控中心 | boot-admin | 9020 | http://localhost:9020 | |
skywalking-oap | skywalking-oap | 12800 | ||
skywalking-ui | skywalking-ui | 8090 | http://localhost:8090 | |
统一认证服务 | oauth-server | 9050-9059 | http://localhost:9050 | |
代码生成后端服务 | archetype-portal | 9060 | http://localhost:9060 | |
订单服务 | service-order | 10010-10019 | http://localhost:10010/swagger-ui.html | |
订单服务 | service-product | 10020-10029 | http://localhost:10020/swagger-ui.html | |
公共服务 | service-utility | 10030-10039 | http://localhost:10030/swagger-ui.html |
服务前加*
代表必须依赖的基础服务,需优先启动
启动所有服务会消耗大量的内存,除基础服务外,其它服务可根据需要选择性启动
服务之间存在依赖关系,compose脚本配置的depends_on
属性无法决定依赖的服务是否完全启动,如果依赖的服务尚未启动完毕,后续相关服务会报出大量的错误。
推荐按以下顺序初始化容器:
docker-compose up -d mysql-master mysql-slave1 mysql-slave2 redis rabbitmq apollo-db
docker-compose up -d apollo elasticsearch
docker-compose up -d skywalking-oap logstash kibana
docker-compose up -d eureka
docker-compose up -d zk
docker-compose up -d gateway boot-admin skywalking-ui
docker-compose up -d {other services}
使用--scale
参数可对服务进行水平扩容。如: docker-compose up -d --scale service-order=2 service-order
打包所有模块并构建docker
镜像
# 进入项目根目录
cd ./biz-parent
# 拉取子模块
git submodule update --init --recursive
# 打包所有模块并构建docker镜像
mvn clean install -Ddockerfile.skip=false
注:
docker build -t waynechu/biz-archetype-portal:1.0.0-SNAPSHOT . --build-arg JAR_FILE=./target/biz-archetype-portal-api-1.0.0-SNAPSHOT.jar
dockerfile-maven-plugin
抛出 HttpHostConnectException: Connect to localhost:2375
异常,需要检查你本地的docker服务是否开启2375端口的服务启动基础服务。包括主从库、Redis、rabbitmq、apollo数据库等
cd ./docker
docker-compose up -d mysql-master mysql-slave1 mysql-slave2 redis rabbitmq apollo-db
注:可使用 docker-compose logs -f --tail=10
查看compose
日志,然后等待基础服务启动完成
配置MySQL主从链路
最新版本已经支持脚本自动配置主从复制链路,已无需手动配置,详见init-master.sh
、init-slave.sh
。如出现未自动同步复制链路的情况,可执行以下命令手动配置
登录主库并配置主从同步链路用户权限
CREATE USER 'replication'@'172.20.0.%' IDENTIFIED WITH mysql_native_password BY 'EiO8Rx4W.T3';
GRANT REPLICATION SLAVE ON *.* to 'replication'@'172.20.0.%';
flush privileges; -- 刷新权限
show master status; -- 记下File、Position信息,配置从库时需要用到
登录从库并启动复制链路(从库都需要执行)
change master to master_host='mysql-master',master_user='replication',master_password='EiO8Rx4W.T3',master_log_file='mysql-bin.000003',master_log_pos=837,master_port=3306;
start slave; -- 开启主从复制链路
show slave status; -- Slave_IO_Running 和 Slave_SQL_Running 为 YES 代表配置成功
检测主从链路是否同步成功。修改主库数据,检查从库是否同步即可
启动apollo、elasticsearch服务。其中apollo为必须依赖,es可选启动
docker-compose up -d apollo elasticsearch
启动logstash、kibana、skywalking-oap服务。这三个都是可选服务
docker-compose up -d logstash kibana skywalking-oap
启动eureka服务
docker-compose up -d eureka
启动网关、boot-admin监控、skywalking控制台。网关为必须依赖服务,其他两个可选
docker-compose up -d gateway boot-admin skywalking-ui
启动统一认证服务
docker-compose up -d oauth-server
启动zk集群(sequence分布式id生成器必须依赖)
docker-compose up -d zk
启动统一其它服务
docker-compose up -d service-utility
docker-compose up -d archetype-portal
docker-compose up -d service-order
docker-compose up -d service-product