Spring Cloud全家桶(整体架构+demo)

上图涉及:

1、zuul

配置文件中可以配置动态路由,也可以在配置文件中指定listOfServers配置静态路由。

可以通过继承ZuulFilter 自定义各种处理(请求前,请求后过程中的鉴权,异常处理)

2、eureka

服务注册中心

3、ribbon

负载均衡,有多重策略

4、hystrix

熔断器,主要功能是:限流,降级,熔断,隔离。

5、feign

封装了对http的请求。直接集成了上面提到的ribbon和hystrix。所以在使用了feign 之后,不用做什么配置也是可以用ribbon和hystrix.

6、sleuth

服务链路追踪的方案,通过traceId,spanId来对服务请求进行追踪

7、zipkin

sleuth追踪到数据后,如果去日志文件查看很不方便,由此引入的可视化日志查看工具。

默认数据存储在内存,可以配置存储到elasticsearch 或mysql 数据库

8、actuator

监控各个服务的运行状态,包括运行的环境,内存,cpu等

9、admin

对actuator监控数据的可视化。可配置登录的安全策略,邮箱(服务状态变更时发送邮箱)


github 地址:

项目结构:


实现过程中的各种踩坑:

1、最重要的就是版本兼容,jar包兼容,很多问题都是由版本不一致导致的。

我用是:

spring-boot : 2.0.2.RELEASE

spring-cloud: Finchley:SR2

选择zipkin,admin等jar 包时一定要注意版本是否兼容:

如何判断版本是否兼容?

在maven repository找到之后最下面可以看到匹配的版本

2、zuul有超时时间配置,ribbon有超时时间配置,hystrix有超时时间配置

太多的超时时间配置容易混淆,参考这篇文章:

https://blog.csdn.net/tianyaleixiaowu/article/details/78772269

3、在zuul发请求到还没有启动的服务时,页面不友好

这个时候,可以通过自己实现zuulFilter的方式来实现,可以参考:

https://blog.csdn.net/tianyaleixiaowu/article/details/77893822

4、如果zuul要开启动态服务的请求路由,只需要在zipkin的配置文件中配置:

#开启动态网关服务发现
ribbon:
  eureka:
    enabled: true

eureka:

admin:

zipkin:

推荐网站:

Springcloud 官网

https://spring.io/projects/spring-cloud

springboot admin 指导手册:

https://codecentric.github.io/spring-boot-admin/2.1.1/

猜你喜欢

转载自blog.csdn.net/u014209205/article/details/106722426