Spring Cloud最新版(Finchley)一条龙基础架构搭建 原

flyingnet 2018-09-14

自己对Spring Boot还算熟悉,Spring Cloud在实际操作项目中还没有用到过,看过一些资料,最让我印象深刻的是它简洁的服务网关和内置的断路器。

最近有朋友问我有没有完整的Spring Cloud项目经验,能不能搭建一个Spring Cloud的基础架构,下班后抽出点时间搞一搞,基于最新版本搭建了一整套的项目架构。

开源地址:

https://gitee.com/liheng/Spring-Cloud-Demo

https://github.com/li15038043160/Spring-Cloud-Demo

项目启动

  • 先启动eureka-server和config-server
  • blog-api是二方包
  • blog-service是blog-api的实现,是个服务提供方,启动它
  • blog-app是消费方,也是对外服务出口,启动它
  • blog-gateway是服务网关,通过网关来访问blog-app
  • config-server是配置中心,用blog-app同时作为config-client
  • 断路器的演示在bolg-app和blog-api中,Feign自带了断路器。后期考虑自定义断路器逻辑
  • zipkin server需要从latest server 下载,然后java -jar zipkin-server.jar即可启动

访问url

  • 注册中心:http://localhost:8761/
  • 配置中心示例: http://localhost:8888/foo/dev
  • blog-app熔断器示例(不启动blog-service):http://localhost:14201/blog/list
  • blog-app读取配置中心配置示例:http://localhost:14201/env?key=name
  • blog-app重新读取配置中心配置,需要配合rabbitmq使用。用idea的REST Client发送post请求:http://localhost:14201/actuator/bus-refresh ,在控制台可以看到容器刷新并重新读取了配置
  • 网关示例,会路由到blog-app:http://localhost:8900/column/env?key=name 或 http://localhost:8900/article/env?key=name
  • blog-service和blog-app中配置了zipkin链路追踪,打开zipking界面:http://localhost:9411/

问题备注

  • 配置sleuth的时候,blog-app不会发送trace到zipkin,是因为blog-app同时存在web和rabbitmq环境,需要配置sping.zipkin.sender.type=web

其他选型

  • 配置中心可选携程的Apollo
  • 分布式链路追踪可选Skywalking

Spring Cloud最新版(Finchley)一条龙基础架构搭建 原

相关推荐