Spring Cloud系列之微服务介绍

Stella981
• 阅读 644

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

1 微服务

微服务架构是“新常态”。构建小型的、自包含的、随时可以运行的应用程序可以为代码带来极大的灵活性和灵活性。spring boot的许多专门构建的特性使得在大 Spring Cloud系列之微服务介绍

1.1 什么是微服务?

微服务是一种现代的软件方法,应用程序代码可以独立于其他程序以可管理的小块形式交付。

1.2 为什么要构建微服务?

它们的小规模和相对隔离可以带来许多额外的好处,例如更容易维护、提高生产力、更大的容错能力、更好的业务协调等等。

2 Spring Cloud

开发分布式系统可能具有挑战性。复杂性从应用层转移到网络层,要求服务之间进行更大的交互。使您的代码成为“本机云”意味着要处理12个因素的问题,例如外部配置、无状态状态、日志记录和连接到支持服务。spring cloud项目套件包含许多使应用程序在云中运行所需的服务。 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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠。国庆双重礼,仅限7天$200美元AWS服务抵
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这