Home

Awesome

项目介绍

  基于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 公共模块、工具类等

技术选型

技术说明官网
Spring cloud eureka云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。https://projects.spring.io/spring-cloud/
Spring cloud config server让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversionhttps://projects.spring.io/spring-cloud/
Spring cloud zuulZuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架https://projects.spring.io/spring-cloud/
Spring Cloud Sleuth日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。https://projects.spring.io/spring-cloud/
Spring boot admin服务监控http://projects.spring.io/spring-boot/
Hystrix熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Hystrix-dashboardhystrix 仪表盘
zipkin分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。
Turbine聚合服务器发送事件流数据的工具,用来监控集群下hystrix的metrics情况。
Feign一种声明式、模板化的HTTP客户端。
MyBatis Generator代码生成http://www.mybatis.org/generator/index.html
Redis分布式缓存数据库https://redis.io/
Log4J日志组件http://logging.apache.org/log4j/1.2/
Swagger2接口测试框架http://swagger.io/
Maven项目构建管理http://maven.apache.org/
prometheus时间序列数据库https://prometheus.io/

模块介绍

cloudE-common

包含了公共模块,以及工具类等。

cloudE-pay-api

支付服务api包,以feign的形式暴露支付接口

cloudE-pay-provider

提供支付服务

cloudE-ucenter-provider

用户中心,通过feign调用支付服务

环境搭建

开发环境

准备工作

启动服务

启动顺序

服务监控

通过prometheus client暴露Metrics到/prometheus。然后通过简单的配置Prometheus,就可以采集到监控数据。还可以使用Grafana,更好的展示监控数据。

下面放上两张监控的效果图:

动态参数注入

有时候业务上需要用到可以热修改的参数,可以通过@RefreshScope注解,和spring boot admin来实现

例子在cloudE-ucenter-provider中。实现如下: