微服务架构与SPRINGCLOUD徐瑱巨石型微服务微服务是一种架构风格服务组件化服务围绕业务产品开发模式去中心化治理基础设施自动化轻量级通信机制去中心化数据设计演进式设计故障处理设计微服务的优点与挑战开发简单技术栈灵活服务独立运维复杂监控困难按需扩展数据一致性问题重复代码集成测试复杂NETFLIX与SPRINGCLOUD•Netflix是一家在全球范围内提供流视频服务的公司,截止到2016年已经拥有8300+万订阅用户,每天播放时间达到了1亿2千万小时,是北美互联网峰值下载量的1/3
•Netflix组件是由Netflix公司开发并开源的一套微服务框架,这套架构在Netflix公司大规模分布式微服务环境中经过数年的生产环境检验被证明是可靠的
•SpringCloud是基于SpringBoot的一整套实现微服务的框架
•SpringCloudNetflix是基于Netflix组件的再次封装,提升了易用性以及与SpringCloud其他组件整合性SPRINGCLOUDNETFLIXEUREKA与CONSUL•服务注册和发现提供了一个服务注册中心、服务发现的客户端,还有一个方便的查看所有注册的服务的界面
所有的服务使用Eureka的服务发现客户端来将自己注册到Eureka的服务器上
注册服务eureka心跳读取注册服务RIBBON•负载均衡Zuul网关将一个请求发送给某一个服务的应用的时候,如果一个服务启动了多个实例,就会通过Ribbon来通过一定的负载均衡策略来发送给某一个服务实例
Ribbon微服务A实例微服务A实例FEIGN•服务客户端服务之间如果需要相互访问,可以使用RestTemplate,也可以使用Feign客户端访问
它默认会使用Ribbon来实现负载均衡
ZUUL•API网关所有的客户端请求通过这个网关访问后台的服务
他可以使用一定的路由配置来判断某一个URL由哪