相信我,请认真读完,点开每一个链接,或许你才能真正了解什么是微服务?什么是分布式?什么是云计算?绝对没有多余!
1 微服务
微服务架构是“新常态”。构建小型的、自包含的、随时可以运行的应用程序可以为代码带来极大的灵活性和灵活性。spring boot的许多专门构建的特性使得在大
1.1 什么是微服务?
微服务是一种现代的软件方法,应用程序代码可以独立于其他程序以可管理的小块形式交付。
1.2 为什么要构建微服务?
它们的小规模和相对隔离可以带来许多额外的好处,例如更容易维护、提高生产力、更大的容错能力、更好的业务协调等等。
2 Spring Cloud
开发分布式系统可能具有挑战性。复杂性从应用层转移到网络层,要求服务之间进行更大的交互。使您的代码成为“本机云”意味着要处理12个因素的问题,例如外部配置、无状态状态、日志记录和连接到支持服务。spring cloud项目套件包含许多使应用程序在云中运行所需的服务。
2.1 Service discovery——服务发现
在云中,应用程序不可能总是知道其他服务的确切位置。服务注册中心(如Netflix Eureka)或sidecar解决方案(如HashiCorp consur)都可以提供帮助。spring cloud为流行的注册中心提供了Discovery Client实现,比如Eureka、consur、Zookeeper,甚至Kubernetes的内置系统。还有一个spring cloud负载平衡器(Spring Cloud LoadBalancer),可以帮助您在服务实例之间小心地分配负载。
2.2 API gateway——API 网关
由于有如此多的客户机和服务器,在您的云架构中包含一个API网关通常是很有帮助的。网关可以负责保护和路由消息、隐藏服务、限制负载以及许多其他有用的事情。spring cloud gateway为您提供了对API层的精确控制,集成了spring cloud服务发现和客户端负载平衡解决方案,以简化配置和维护。
2.3 Cloud configuration——云配置
在云中,配置不能简单地嵌入到应用程序中。配置必须足够灵活,以应对多个应用程序、环境和服务实例,并在不停机的情况下处理动态变化。spring cloud config旨在减轻这些负担,并提供与Git等版本控制系统的集成,以帮助您确保配置的安全。
2.4 Circuit breakers——断路器
分布式系统可能不可靠。请求可能会遇到超时或完全失败。断路器可以帮助缓解这些问题,spring cloud断路器为您提供了三种流行的选择:Resilience4J、Sentinel或Hystrix。
2.5 Tracing——追踪
调试分布式应用程序可能很复杂,而且需要很长时间。对于任何给定的失败,您可能需要将来自多个独立服务的信息跟踪拼凑在一起。spring cloud sleuth可以以一种可预测和可重复的方式为您的应用程序安装工具。当与Zipkin结合使用时,您可以将注意力集中在任何可能存在的延迟问题上。
2.6 Testing——测试
在云计算中,拥有可靠、可信、稳定的api可以获得额外的分数,但要实现这一目标还需要一段旅程。基于契约的测试是高绩效团队经常使用的一种技术。它有助于规范化api的内容,并围绕它们构建测试,以确保代码始终处于检查状态。 spring cloud contract通过使用Groovy、Java或Kotlin编写的契约,为REST和基于消息传递的api提供基于契约的测试支持。
3 流数据
spring cloud stream使得使用和生成事件变得非常容易,无论您选择哪个消息传递平台。spring cloud stream只需几行代码就可以将您的微服务与实时消息传递连接起来,以帮助您构建高度可伸缩、事件驱动的系统。 Get started with Spring Cloud Stream
4 管理微服务
spring boot的可选仪器框架microller直接将度量发送给Prometheus、Atlas等,以提供有价值的见解。spring cloud的Sleuth和Zipkin项目补充了这一点,它们提供了分布式跟踪,以便您能够实时跟踪正在发生的事情。 Get started with Micrometer on Spring Boot
5 云计算
微服务的小型、无状态特性使其成为水平扩展的理想选择。像TAS和PKS这样的平台可以提供可扩展的基础设施来匹配,并大大减少您的管理开销。使用云连接器,您还可以轻松地使用多个后端服务。 Try Pivotal Web Services for free
6 链接
Spring Cloud系列
Spring Cloud系列之微服务介绍 Spring Cloud系列之微服务注册中心 Spring Cloud系列之微服务统一配置中心 Spring Cloud系列之微服务RPC Spring Cloud系列之微服务服务监控 Spring Cloud系列之微服务链路跟踪 Spring Cloud系列之微服务授权与认证
关于
我是冯文议(Erwin Feng),Java Developer,专注于程序设计与开发。开源项目:JavaLib、api-result。喜欢电影、游戏、音乐、茶、旅行。 我的个人网站:https://fengwenyi.com 我的Github:https://github.com/fengwenyi