Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

7 月 21 日,Pivotal 在北京举办“应用无忧 Spring 实战营”,包括 Pivotal 高级技术总监 Andrew Clay Shafer、京东金融资深研发张凡、Pivotal 高级解决方案架构师李刚在内的多位 Spring 技术专家,从 Spring 技术、工具如何帮助开发者解决业务转型和创新中的实际问题出发,发表多场精彩演讲。

1 使用 Devops 就万事大吉?未必如此

Pivotal 高级技术总监 Andrew Clay Shafer 多年来一直是开源领域的使用者和贡献者,在构建开源业务和社区方面颇有见地,因发表关于 DevOps 和组织学习的论述而出名。作为开场第一位演讲嘉宾,他的演讲主题是《论 Devops 创新的五大关键要素》。

对于企业来说,只要用到 Devops 就万事大吉吗?其实未必如此,从文化、自动化、精益思维、指标与共享这五个 Devops 要素方面,Andrew 进行了一一阐述。他的 PPT 示意图也非常有意思,把这五个要素比喻为了中国的五行金木水火土。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

文化会告诉我们如何改善、如何优化、如何进行工作。Andrew 以一张优秀文化和不那么成功文化的对比列表,来阐述为什么文化会决定着 Devops 成功与否。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

自动化方面,它与架构密切相关。有时候大家会说软件的一切都要自动化,比如容器、调度、K8S …的流行就是最好的佐证。演讲中 Andrew 也用一张对比图来进行阐释。

指标方面,据 Andrew 介绍,在 Spring 社区,已经在做对服务水平进行评估和监测的很多工作。

共享方面,有人提出在开发人员和运营人员之间再单独配备 Devops 人员,Andrew 认为这并非明智之举,还是需要建立共享机制,让大家打破围墙进行对话。在这方面,Andrew 也特别强调了社区力量的重要性。

精益思维方面,它可以包括软件的方方面面,以上几个要素都可以归在精益层面当中。为什么要强调精益?因为要强调持续改善,不断做得比今天更好。

身为软件开发者,Andrew 在演讲中还传授了非常多个体的成功秘诀,比如创新、比如改变你的行为、比如拥抱风险…

2 深度解析 Spring Cloud Netflix-Ribbon

第二位演讲嘉宾是京东金融资深研发张凡,主要是对 Spring Cloud Netflix-Ribbon 进行了深度解析。主要通过一部分代码讲述 Ribbon 如何作用在客户端来拦截请求,完成负载均衡;默认配置如何生效;怎样获得服务列表;有哪些负载均衡算法,并从代码中找一些负载算法的例子来看 Ribbon 是怎么实现等等。具体来看,他的演讲包括这几个方面:Ribbon 简介、Ribbon 如何实现客户端负载、Ribbon 负载均衡行为定义、Ribbon 的负载均衡策略、Ribbon 服务列表的获取、Ribbon 的重试。

张凡的分享完全从自身工作实践出发,干货满满。这里截取几页演示 PPT,从中可以看到 Spring Cloud Netflix-Ribbon 的使用情况。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

3 分布式跟踪和 Zipkin 概念及实践

第三位演讲嘉宾是 Spring Cloud OSS 分布式跟踪技术员 Adrian Cole,演讲内容侧重在分布式跟踪和 Zipkin,Adrian 在 Pivotal 的 Spring Cloud OSS 团队工作。

当我们部署微服务的时候,微服务会积累越来越多,如果有一个图表来显示整体情况,就变得非常重要。对此 Adrian Cole 演示了一个微服务的图表。看到这个图大家会觉得很复杂,但是实际情况就是如此,这个实例是从一个 BBS 抓取的。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

对此 Adrian Cole 表示,如果你有 15 个以上的服务要同时展现相互关系,就会非常复杂。所以我们需要有服务图,更需要有具体的仪表板工具。

所谓跟踪,就是追踪系统里的请求走到了哪里,追踪会帮助开发者做出结论,了解服务前后的因果关系。当我们进行异步编程的时候,必须要了解真正的因果关系,而不是时间的顺延关系。通过分布式跟踪,所体现出的因果关系就会非常可靠,这才能让我们知道延迟的根本原因是什么。

所谓 Zipkin 分布式跟踪系统,它可以帮助收集时间数据,解决在微服务架构下的延迟问题;它管理这些数据的收集和查找;Zipkin 的设计基于谷歌的 Google Dapper 论文。

随着微服务架构和容器技术的兴起,看似简单的一个应用,后台可能有几十个甚至几百个服务在支撑;另外当请求变慢或者不可用时,我们也无法得知是哪个后台服务引起的,这时就需要解决如何快速定位服务故障点,Zipkin 分布式跟踪系统就能很好的解决这样的问题。

Zipkin Java 追踪器中最受欢迎的是 Brava;另外还有 Sleuth,可以做侦查,在搜索和自动追踪的时候可以使用。此外还有一些开源的追踪库,包括 OpenCensus、OpenTracing、OpenTracing、Kamon,这些库可以相互作用,在网络上共享数据。

4 Spring Cloud Data Flow 概念及演示

第四位演讲嘉宾是 Spring Cloud Skipper/Stream/Data Flow committer Ilayaperumal,他主要介绍如何使用 Spring Cloud Data Flow 执行数据集成和实时数据处理流水线,并将它们部署到 Cloud Foundry 和 Kubernetes 等多个平台。

在演讲开始,Ilayaperumal 首先介绍了云原生、微服务、Spring Cloud Data Flow 等概念的内涵以及应用场景。

很长时间以来,Spring Boot 一直被我们所关注,Spring Boot 有什么优势呢?Spring Boot 使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。如果你做微服务应用开发,Spring Boot 会是最佳的选择,它可以快速、方便、简单的进行开发。它提供自动配置功能,如果你做一个数据库的开发,如果把数据库开发的参数输入 Spring Boot,它可以协助你进行开发。

在消息驱动的微服务方面, Spring Cloud Data Flow 就是一个最好的例子,它以流为导向,对微服务进行更好的分布。Spring Cloud Data Flow 是一个编排工具,提供流应用,可以持续性的进行交付。在随后的演示中,Ilayaperumal 使用 Spring Cloud Data Flow 的 DSL 和 Designer User Interface 展示了在不用编写任何代码的情况下,针对常见用例如何组装数据流水线。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

此外,Ilayaperumal 还介绍了如何使用 Spring Cloud Skipper 持续交付这些处理流水线。Spring Cloud Skipper 是一个 CI/CD 平台,可用于发现、安装、升级和回滚多个云平台上的应用程序。

5 揭秘 Eureka 工作和应用原理

在最后一个演讲中,Pivotal 高级解决方案架构师李刚介绍了 Spring Cloud Netflix-Eureka 原理以及工作原理。Eureka 作为 Spring Cloud 微服务架构中的注册中心,扮演着重要的角色。演讲从源码角度出发,详细介绍了 Eureka 的实现机制。

Eureka 是一个古希腊词语,含义为我找到了,我发现了。相传阿基米德发现浮力原理的时候,说出了这个词。在李刚展示的一张 Eureka 架构图中,可以看到 Eureka Server 不同节点之间的工作原理。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

从注册机制来看,包括保存注册信息、更新阈值、将新增示例保存到 Queue、清空缓存、复制给其他 Eureka Server 节点等几个流程;从 Renew 机制来看,包括找到续约实例、更新续约时间、复制给其他 Eureka Server 节点几个流程;此外,李刚还介绍了包括 Cancel、Evict 机制。

在 Eureka Server 缓存机制上,Eureka Server 内置两层缓存,readOnlyCacheMap 本质 MAP,无过期时间;readWriteCacheMap 本质 Guava 缓存,存在过期时间;通过参数可以决定是否启用 MAP 缓存。

Spring实操指南:必须掌握的技术、工具和应用原理(spring实战怎么样)

在 Eureka Server 节点复制机制上,Eureka Server 启动时从相邻节点同步已有注册信息;Eureka Server 接收 register、 renew、 cancel 事件时会将次信息同步给相邻节点。

6 一个彩蛋

关注 Pivotal 公众号(pivotal_china),可获得此次实战营讲师全部演讲 PPT,让你犹如亲临现场。

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部