1、微服务架构微服务架构与与SPRING CLOUD徐瑱徐瑱巨石型巨石型微服务微服务微服务是一种架构风格微服务是一种架构风格服务组件化服务围绕业务产品开发模式去中心化治理基础设施自动化轻量级通信机制去中心化数据设计演进式设计故障处理设计微服务的优点与挑战微服务的优点与挑战开发简单技术栈灵活服务独立运维复杂监控困难按需扩展数据一致性问题重复代码集成测试复杂NETFLIX与与SPRING CLOUDNetflix是一家在全球范围内提供流视频服务的公司,截止到2016年已经拥有8300+万订阅用户,每天播放时间达到了1亿2千万小时,是北美互联网峰值下载量的1/3。Netflix组件是由Netflix公司
2、开发并开源的一套微服务框架,这套架构在Netflix公司大规模分布式微服务环境中经过数年的生产环境检验被证明是可靠的。Spring Cloud是基于Spring Boot的一整套实现微服务的框架。Spring Cloud Netflix是基于Netflix组件的再次封装,提升了易用性以及与Spring Cloud其他组件整合性SPRING CLOUD NETFLIXEUREKA 与与 CONSUL服务注册和发现服务注册和发现 提供了一个服务注册中心、服务发现的客户端,还有一个方便的查看所有注册的服务的界面。所有的服务使用Eureka的服务发现客户端来将自己注册到Eureka的服务器上。注册服务
3、eureka心跳读取注册服务RIBBON负载均衡负载均衡 Zuul网关将一个请求发送给某一个服务的应用的时候,如果一个服务启动了多个实例,就会通过Ribbon来通过一定的负载均衡策略来发送给某一个服务实例。Ribbon微服务A实例微服务A实例FEIGN服务客户端服务客户端 服务之间如果需要相互访问,可以使用RestTemplate,也可以使用Feign客户端访问。它默认会使用Ribbon来实现负载均衡。ZUULAPI网关网关 所有的客户端请求通过这个网关访问后台的服务。他可以使用一定的路由配置来判断某一个URL由哪个服务来处理。并从Eureka获取注册的服务来转发请求。ZUUL服务A服务B服务
4、C/api-a/*/api-c/*/api-b/*/api-a/*/api-c/*/api-b/*HYSTRIX系列系列Hystrix 监控和断路器。我们只需要在服务接口上添加Hystrix标签,就可以实现对这个接口的监控和断路器功能。Hystrix Dashboard 监控面板,他提供了一个界面,可以监控各个服务上的服务调用所消耗的时间等。Hystrix Turbine 监控聚合,使用Hystrix监控,我们需要打开每一个服务实例的监控信息来查看。而Turbine可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查看。这样就不需要挨个打开一个个的页面一个个查看。HystrixHystrix DashboardSPRING CLOUD CONFIGConfig ServerCVSConfig Clients/bus/refreshSpring cloud bus服务链路追踪Spring Cloud Sleuth基于Docker的部署与Kubernetes的结合其他其他屈原 离骚“路漫漫其修远兮 吾将上下而求索”