专栏首页编程笔记Spring Cloud系列之微服务介绍
原创

Spring Cloud系列之微服务介绍

相信我,请认真读完,点开每一个链接,或许你才能真正了解什么是微服务?什么是分布式?什么是云计算?绝对没有多余!

1 微服务

微服务架构是“新常态”。构建小型的、自包含的、随时可以运行的应用程序可以为代码带来极大的灵活性和灵活性。spring boot的许多专门构建的特性使得在大规模生产中构建和运行微服务变得非常容易。别忘了,没有spring cloud,就没有一个微服务架构是完整的,它简化了管理,增强了您的容错能力。

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Boot系列之读取配置

    使用SpringBoot框架开发,读取配置是少不了的,那么你会读取配置吗?你会写配置吗?List?Map?

    冯文议
  • Git常用命令使用教程

    git是一个开源的分布式版本控制系统,对于分布式、微服务的项目开发和管理非常的方便。它有分支的概念,可以详细的,清晰的看到每个分支、每个人的历史提交记录,相比较...

    冯文议
  • MyBatis-Plus系列之代码生成器

    代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。

    冯文议
  • Spring Cloud是怎么运行的?

    在之前的文章中给大家介绍了Spring Boot的基本运行原理(链接),收到了很多读者朋友们关于目前比较流行的微服务框架Spring Cloud的问题反馈。因此...

    用户5927304
  • Spring Cloud 是怎么运行的?

    在之前的文章中给大家介绍了Spring Boot的基本运行原理,收到了很多读者朋友们关于目前比较流行的微服务框架Spring Cloud的问题反馈。因此,在这篇...

    纯洁的微笑
  • 边做边学,基于Spring Cloud的微服务架构最佳实践

    Rainbond开源
  • 边做边学,基于Spring Cloud的微服务架构最佳实践

    微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,Spring Cloud则是用来管理微服务的一系列框架的有序集合。利用Spring B...

    Rainbond开源
  • SpringCloud整体架构概览

    构建分布式系统不应该是复杂的,SpringCloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。SpringClo...

    macrozheng
  • spring-cloud构建微服务架构

    因为工作原因,无暇更新,最近更新的技术文章还要追溯到去年9月份,近期会恢复更新,还是以spring系列为主,上一次讲述了spring-security-oaut...

    MasterVin
  • Spring Cloud Edgware新特性之七:可选的EnableDiscoveryClient注解

    最近家里事情比较多,有20天没有更新博客了。12月31日早上,老婆突然肚子疼,然后就去医院了。在经过难熬的28个小时之后,老婆早产生了个小姑娘。之后就一直奔波在...

    用户1516716

扫码关注云+社区

领取腾讯云代金券