基于spring cloud的分布式系统架构。提供整套的微服务组件,包括服务发现、服务治理、链路追踪、服务监控等。所有服务均支持在docker中运行。
cloudE
├── cloudE-eureka-server -- 服务发现
├── cloudE-config-server -- 分布式配置中心
├── cloudE-admin-server -- 服务监控
├── cloudE-gateway-server -- zuul网关
├── cloudE-hystrix-dashboard-server -- hystrix仪表盘
├── cloudE-turbine-server -- hystrix仪表盘聚合服务
├── cloudE-zipkin-server -- 链路监控
├── cloudE-pay-api -- 支付服务api,提供feign接口
├── cloudE-pay-provider -- 支付服务
├── cloudE-ucenter-provider -- 用户中心
├── cloudE-mapper -- mybatis生成模块
├── cloudE-common 公共模块、工具类等cloudE-common
包含了公共模块,以及工具类等。
cloudE-pay-api
支付服务api包,以feign的形式暴露支付接口
cloudE-pay-provider
提供支付服务
cloudE-ucenter-provider
用户中心,通过feign调用支付服务
开发环境
- 1、本机安装Jdk8、Mysql并启动相关服务,使用默认配置默认端口即可
- 2、克隆源代码到本地并打开,推荐使用IntelliJ IDEA
准备工作
-
创建数据库,导入cloudE-mapper项目中的create.sql
-
修改cloudE-config-server中对应的配置信息(properties)
启动服务
-
启动服务有三种方式:
-
1、执行spring boot main方法
-
2、执行maven打包命令 mvn clean install -Dmaven.test.skip=true ,jar包会被打到target目录下,进入该目录,执行 java -jar cloudE-xxxxx-xxxx.jar --spring.profiles.active=dev
-
3、构建docker镜像(mvn package docker:build),然后执行docker run xxxxx/xxxxx
启动顺序
- 优先启动cloudE-eureka-server,cloudE-config-server。其他服务顺序随意
通过prometheus client暴露Metrics到/prometheus。然后通过简单的配置Prometheus,就可以采集到监控数据。还可以使用Grafana,更好的展示监控数据。
下面放上两张监控的效果图:
-
另外,通过spring cloud生态内的hystrix dashboard,以及zipkin(链路监控),也可以很好的监控服务,排查问题
有时候业务上需要用到可以热修改的参数,可以通过@RefreshScope注解,和spring boot admin来实现
例子在cloudE-ucenter-provider中。实现如下:





