Spring Cloud 中国社区发起人许进-如何使用 Spring Cloud 快速构建微服务应用

谈智美

2017/11/14 发布于 技术 分类

主要介绍什么是Spring Cloud以及Spring Cloud在国内的使用情况,怎样快速使用Spring Cloud的Eureka,zuul,Feign, Hystrix,Spring Cloud Config等组件快速搭建微服务应用,以及这些组件与目前常用中间件的对比。

文字内容
2. 如何使用Spring Cloud快速构 建微服务应用 许进(xujin.org) DevOpsDays 2017·上海站
3. About Me • 目前就职于众安保险中间件框架组 • 先后就职于唯品会,饿了么。 • 网站:http://xujin.org • Spring Cloud中国社区(springcloud.cn)发起人 • 曾就职于唯品会基础架构部,从事中间件研发 工作。 • 曾就职于唯品会金融事业部,参与唯品会金融 平台(https://jinrong.vip.com/)的设计与开发 DevOpsDays 2017·上海站
4. 目录 1 Spring Cloud概述 2 Spring Cloud国内用情况 3 使用Spring Cloud搭建微服务应用 4 展望Spring Cloud未来 5 Q&A DevOpsDays 2017·上海站
5. Spring Cloud概述 以下简称:SC(Spring Cloud) Spring Cloud,基于Spring Boot提供 了一套微服务解决方案,包括服务注册与 发现,配置中心,全链路监控,服务网关, 负载均衡,熔断器等组件,除了基于 NetFlix的开源组件做高度抽象封装之外, 还有一些选型中立的开源组件。 https://github.com/spring-cloud DevOpsDays 2017·上海站
6. 为什么要选择Spring Cloud? SpringCloud Dubbo 定位 服务注册/发 现 负载均衡 配置服务 高容错 调用方式 社区活跃度 学习难度 文档丰富度 完整微服务 框架 是 是 是 是 Rest/rpc(未 来) 高 低 高 RPC框架 是 是 否 是 rpc 弃坑 中 高 Motan 服务框架 Thrift Rpc框架 是否 是否 是否 是否 rpc rpc 一般 低 一般 一般 高 一般 DevOpsDays 2017·上海站
7. 目录 1 Spring Cloud概述 2 Spring Cloud国内使用情况 3 我是一个标题 4 我是一个标题 5 我是一个标题 6 我是一个标题 DevOpsDays 2017·上海站
8. Spring Cloud在国内使用情况 DevOpsDays 2017·上海站
9. 目录 1 Spring Cloud概述 2 Spring Cloud国内使用情况 3 如何使用Spring Cloud构建微服务 4 展望Spring Cloud与社区 5 Q&A DevOpsDays 2017·上海站
10. Spring Cloud的服务注册与发现 由于Spring Cloud的选型中立,特别是spring-cloudcommons项目的高度抽象,可以自由选型,在改变极 小的情况下切换组件。比如从Eureka,切换到Consul, ZK,或者Etcd。 DevOpsDays 2017·上海站
11. 服务注册与发现 缺点:随着服务 治理中间件的 升级,业务系 统需要跟随升 级 zz注ozooo册okok中ekeee心epepepererr ( ZK) ip port version 服务zzoz消oooo费koke者keeee(pceplepieerenrtr) 服zzo务zoooo提kokeke供eeepep者epererr 基于客户端的服务治理,比如Dubbo,Spring Cloud DevOpsDays 2017·上海站
12. Eureka基本架构图 http://xujin.org/sc/sc-netflix-eureka/ DevOpsDays 2017·上海站
13. 集群模式下的Eureka http://xujin.org/sc/sc-netflix-eureka/ DevOpsDays 2017·上海站
14. 使用Eureka快速搭建注册中心 DevOpsDays 2017·上海站
15. 使用Eureka快速搭建注册中心 DevOpsDays 2017·上海站
16. Spring Cloud的Ribbon LB,即负载均衡(Load Balance),在微服务或分布式集群中 经常用的一种应用。负载均衡简单的说就是将用户的请求平 摊的分配到多个服务上,从而达到系统的HA。常见的负载均 衡有软件Nginx,LVS,硬件 F5等。相应的在中间件,例如: dubbo和Spring Cloud中均给我们提供了负载均衡,SC的负载均 衡算法可以自定义。 DevOpsDays 2017·上海站
17. Ribbon负载均衡 Ribbon在工作时分成两步,第一步先选择 Eureka Server, 它 优先选择在同一个Zone且负载较少的server, 第二步再根据用 户指定的策略,在从server取到的服务注册列表中选择一个地 址。其中Ribbon提供了三种策略:轮询、随机和根据响应时间 加权。 Service 注 Load Balance(Ribbon) 册 中 心 Service DevOpsDays 2017·上海站
18. Ribbon负载均衡 DevOpsDays 2017·上海站
19. Spring Cloud的Feign Feign是一种声明式、模板化的HTTP客户端。在 Spring Cloud中使用Feign, 可以做到使用HTTP请求远程 服务时能就像调用本地方法一样的体验,开发者完全 感知不到这是远程方法,更感知不到这是个HTTP请求。 DevOpsDays 2017·上海站
20. Feign使用示例 ①Feign接口定义 ②依赖注入 使用 DevOpsDays 2017·上海站
21. Spring Cloud Zuul API Gateway(API GW / API 网关),顾名思义,是 出现在系统边界上的一个面向API的、串行集中式的强 管控服务,这里的边界是企业IT系统的边界。Spring Cloud Zuul为Spring Cloud提供微服务网关。 DevOpsDays 2017·上海站
22. 网关功能 DevOpsDays 2017·上海站
23. Spring Cloud Zuul的架构图 DevOpsDays 2017·上海站
24. Spring Cloud Zuul的生命周期 所有请求都必然按照pre-> route -> post的顺序执行。post返回response。 DevOpsDays 2017·上海站
25. 参考Zuul的架构设计 Http Request Http Response Netty HttpHandler Filter Runner Auth Filter Rest Filter Wrapper Filter WAF Filter Pre RPC Filter Routing CallBack Filter POST GW-Server DB GW-Console Request Context Filter Directories Filter Loader Filter Manager Moni Manager Config Manager GW-API ZK Etcd DevOpsDays 2017·上海站
26. Zuul在Spring Cloud中处的位置 DevOpsDays 2017·上海站
27. 使用Zuul搭建网关 http://xujin.org/sc/sc-zuul-01/ DevOpsDays 2017·上海站
28. 使用Zuul搭建网关 @EnableZuulProxy DevOpsDays 2017·上海站
29. ZUUL的Ha方案 DevOpsDays 2017·上海站
30. Spring-Cloud-Gateway •Java 8/Spring 5/Boot 2 •WebFlux/Reactor •HTTP/2 and Websockets •Finchley Release Train (Q4 2017) DevOpsDays 2017·上海站
31. Spring Cloud的配置中心 Spring Cloud Config就是我们通常意义上的配置中心, 把应用原本放在本地文件的配置抽取出来放在中心服务 器,从而能够提供更好的管理、发布能力。 DevOpsDays 2017·上海站
32. 配置中心的功能 Spring Cloud Config作为配置中心不是很适合,因此技术选型 会选择携程配置中心Apollo https://github.com/ctripcorp/apollo DevOpsDays 2017·上海站
33. Spring Cloud Config工作流程 DevOpsDays 2017·上海站
34. 快速使用Spring Cloud Config 添加依赖,使用@EnableConfigServer注解 DevOpsDays 2017·上海站
35. 快速使用Spring Cloud Config 在application.yml配置如上信息 DevOpsDays 2017·上海站
36. Spring Cloud中国社区 上海,成都, 北京,深圳 沙龙 Spring Cloud中国社区官网:http://springcloud.cn Spring Cloud中国社区论坛:http://bbs.springcloud.cn Spring Cloud中国社区博客:http://blog.springcloud.cn Spring Cloud中国社区文档:http://docs.springcloud.cn DevOpsDays 2017·上海站
37. 目录 1 Spring Cloud概述 2 Spring Cloud国内使用情况 3 使用Spring Cloud搭建微服务应用 4 展望Spring Cloud未来 5 Q&A DevOpsDays 2017·上海站
38. Spring Cloud-百花齐放 DevOpsDays 2017·上海站
39. 目录 1 Spring Cloud概述 2 Spring Cloud国内使用情况 3 使用Spring Cloud搭建微服务应用 4 展望Spring Cloud未来 5 Q&A DevOpsDays 2017·上海站
40. Q&A 欢迎加我 微信互撩 DevOpsDays 2017·上海站
41. 会议 培训 咨询 • 8月18日 DevOpsDays 上海 • 全年 DevOps China 巡回沙龙 • 11月17日 DevOps金融上海 DevOpsDays 2017·上海站 • EXIN DevOps Master 认证培训 • DevOps 企业内训 • DevOps 公开课 • 互联网运维培训 • 企业DevOps 实践咨询 • 企业运维咨询 商务经理:刘静女士 电话 / 微信:13021082989 邮箱:liujing@greatops.com
42. Thanks 荣誉出品 高效运维社区 国际最佳实践管理联盟 DevOpsDays 2017·上海站
43. 想第一时间看到 高效运维社区公众号 的好文章吗? 请打开高效运维社区公众号,点击右上角小人,如右侧所示设置就好 DevOpsDays 2017·上海站