Spring Cloud全家桶(整体架构+demo)
eureka:admin:zipkin:推荐网站:Springcloud 官网https://spring.io/projects/spring-cloudspringboot admin 指导手册:https://codecentric.github.io/spring-boot-admin/2.1.1/...
上图涉及:
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/
更多推荐
所有评论(0)