微服务知识小结

news2024/12/24 11:32:14

1. SOA、分布式、微服务之间有什么关系和区别?

1.分布式架构指将单体架构中的各个部分拆分,然后部署到不同的机器或进程中去,SOA和微服务基本上都是分布式架构的
2. SOA是一种面向服务的架构,系统的所有服务都注册在总线上,当调用服务时,从总线上查找服务信息,然后调用
3.微服务是一种更彻底的面向服务的架构,将系统中各个功能个体抽成一个个小的应用程序,基本保持一个应用对应的一个服务的架构
SpringCloudAlibaba架构
在这里插入图片描述

2.微服务间的通信方式

1.同步通信:微服务之间通过请求-响应的方式进行通信,例如RESTful API和RPC。通信过程中,请求方需要等待响应方的返回结果,因此可靠性较高,但可能会出现请求排队、线程阻塞等问题,从而影响系统的响应速度和并发性能。
2.异步通信:微服务之间通过消息队列进行异步通信,例如Kafka和RabbitMQ。通信过程中,发送方向消息队列发送消息,接收方从消息队列中消费消息,消息传输以异步的方式进行,不需要等待接收方的响应。由于解耦性高,消息队列还可以支持发布-订阅模式,消息得以广播到多个服务中,助于构建高可伸缩的系统。不过异步通信也可能导致延迟较高,以及可靠性和容错性较差等问题。
3.事件驱动架构(EDA):微服务之间通过发布-订阅模式进行通信,例如Apache Kafka和AWS SNS/SQS。通信过程中,发布者发布事件,订阅者订阅事件,事件传递以异步的方式进行。通过EDA,不同服务之间可以实现松耦合通信,提高系统的可伸缩性和弹性,但需要谨慎处理网络分区等极端情况,以避免出现一致性等问题。

3.微服务架构常用组件

在这里插入图片描述
在这里插入图片描述

Spring Cloud常用组件及其简要介绍:

Eureka:服务注册与发现组件,可以通过RESTFUL接口来实现服务注册与发现,并提供心跳检测机制来保证服务可用性。

Ribbon:客户端的负载均衡组件,可以集成到RestTemplate、Feign等HTTP客户端中使用。

Feign:基于Ribbon和Hystrix的声明式服务调用组件,可以让我们更方便地实现服务之间的调用。

Hystrix:熔断器组件,可以在服务出现故障或异常时进行自动熔断,避免服务雪崩问题。

Zuul:API网关组件,可以对外部请求进行统一的路由、过滤和转发。

Config:分布式配置中心组件,可以将应用程序的配置信息集中管理,并支持动态刷新配置。

Bus:消息总线组件,可以用于在分布式系统中传递事件消息,如配置更新事件、状态变更事件等。

Stream:数据流处理组件,可以帮助我们从消息中间件中读取、处理和发送消息。

Sleuth:分布式跟踪组件,可以追踪请求在微服务架构中的传递过程,帮助我们快速定位问题根源。

Zipkin:分布式跟踪系统,可以用于聚合、可视化和分析分布式系统中的调用链路信息。

以上是Spring Cloud的一些常用组件,每个组件都有其独特的特点和功能,可以根据具体业务场景选择使用。

Spring Cloud Alibaba常用组件及其简要介绍:

Nacos:服务注册与发现、配置管理、流量管理平台,可以替代Eureka、Config、Ribbon等组件。

Sentinel:流量控制、熔断降级、系统负载保护等组件,可以替代Hystrix。

Dubbo:高性能Java RPC框架,可以用于实现微服务之间的远程调用。

RocketMQ:分布式消息中间件,支持消息的广播、点对点传输、顺序传输等模式。

Seata:分布式事务解决方案,可以保证跨多个数据库或跨多个服务的操作的一致性和完整性。

Alibaba Cloud SDK:阿里云服务API的封装,包括云服务器、对象存储、关系型数据库等。

Alibaba Cloud OSS:阿里云对象存储服务,可以用于存储静态资源文件。

Alibaba Cloud RDS:阿里云关系型数据库服务,可以提供MySQL、SQL Server、PostgreSQL等数据库实例。

Alibaba Cloud ACM:阿里云配置管理服务,可以实现应用程序的动态配置。

以上是Spring Cloud Alibaba的一些常用组件,每个组件都有其独特的特点和功能,可以根据具体业务场景选择使用。同时,Spring Cloud Alibaba也与Spring Cloud组件进行了无缝集成,提供了更加完备的微服务解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

曲率半径的推导

参考文章 参考文章

Leetcode1410. HTML 实体解析器

Every day a Leetcode 题目来源:1410. HTML 实体解析器 解法1:模拟 遍历字符串 text,每次遇到 ’&‘,就判断以下情况: 双引号:字符实体为 " ,对应的字符是 " 。单引号&a…

kubernetes 部署 spinnaker

spinnaker简介 Spinnaker 是一个开源、多云持续交付平台,它将强大而灵活的管道管理系统与主要云提供商的集成相结合。Spinnaker 提供应用程序管理和部署,帮助您快速、自信地发布软件变更。 Spinnaker 提供了两组核心的功能: 应用管理与应用程…

Windows日常故障自我排查:用工具eventvwr.msc(事件查看器)分析问题故障

windows故障排查方法一: 工具用法 系统故障问题时,找不到解决方法 首先, 在搜索栏输入: 事件查看器(eventvwr.msc) 打开程序 根据程序找到程序运行的LOG 根据程序Operational筛选出错误日志: 日志中找错误原因&…

专注短视频账号矩阵系统源头开发---saas工具

专注短视频账号矩阵系统源头开发---saas营销化工具,目前我们作为一家纯技术开发团队目前已经专注打磨开发这套系统企业版/线下版两个版本的saas营销拓客工具已经3年了,本套系统逻辑主要是从ai智能批量剪辑、账号矩阵全托管发布、私信触单收录、文案ai智能…

微信小程序使用腾讯地图实现地点搜索并且随着地图的滑动加载滑动到区域的地点,本文地点使用医院关键词作为搜索地点

实现效果如下 1.页面加载时,根据getLocation方法获取用户当前经纬度获取20条医院位置信息 2.页面滑动时,根据滑动到的经纬度再次获取20条医院位置信息 获取到的医院位置信息 实现方法如下 1.在.wxml中添加触发滑动的方法bindregiοnchange“onMapRegio…

2023亚太赛B题详细讲解 玻璃温室中的微气候

Problem B Microclimate Regulation in Glass Greenhouses 问题B玻璃温室中的微气候法规 温室作物的产量受到各种气候因素的影响,包括温度、湿度和风速[1]。其中,适宜的温度和风速是植物生长[2]的关键。为了调节玻璃温室内的温度、风速等气候因素&…

GPU服务器常见故障修复记录

日常写代码写方案文档,偶尔遇上服务器出现问题的时候,也需要充当一把运维工程师,此帖用来记录GPU服务器报错的一些解决方案,仅供参考! 文章目录 一、服务器简介二、机箱拆解三、基本操作四、常见故障4.1 电源开关键闪烁…

【精选】改进的YOLOv5:红外遥感图像微型目标的高效识别系统

1.研究背景与意义 随着科技的不断发展,红外遥感技术在军事、安防、环境监测等领域中得到了广泛应用。红外遥感图像具有独特的优势,可以在夜间或恶劣天气条件下获取目标信息,因此在小目标检测方面具有重要的应用价值。然而,由于红…

Unity中颜色空间Gamma与Linear

文章目录 前言一、人眼对光照的自适应1、光照强度与人眼所见的关系2、巧合的是,早期的电子脉冲显示屏也符合这条曲线3、这两条曲线都巧合的符合 y x^2.2^(Gamma2.2空间) 二、Gamma矫正1、没矫正前,人眼看电子脉冲显示屏&#xff…

数据结构与算法编程题13

设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A中的元素为非零整数,要求B、C表利用A表的结点) for example: A -1 2 …

使用C语言统计一个字符串中每个字母出现的次数

每日一言 Wishing is not enough; we must do. 光是许愿望是不够的; 我们必须行动。 题目 输入一个字符串,统计在该字符串中每个字母出现的次数 例如: 输入:i am a student 输出:a:2 d:1 e:1 i:1 m:1 n:1 s:1 t:2 u:1 大体思路…

第十一章 docker swarm集群部署

文章目录 前言一、安装docker1.1 解压1.2 配置docker 存储目录和dns1.3 添加docker.service文件1.4 docker 启动验证 二、docker swarm 集群配置2.1 关闭selinux2.2 设置主机名称并加入/etc/hosts2.3 修改各个服务器名称(uname -a 进行验证)2.4 初始化sw…

【Flask使用】全知识md文档,4大部分60页第3篇:Flask模板使用和案例

本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF 表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy…

高通OTA升级方案介绍

高通OTA升级方案介绍 1. 高通LE OTA1.1 背景1.2 Recovery系统 2. SDX12 OTA方案3 OTA包的加密 3UK Penetration Test对于OTA升级也有严格的安全要求,下面是几条用例要求: Firmware: A sufficiently strong signing key MUST be in use. Signing keys MUS…

重要的保护: DC电源模块短路保护

重要的保护:BOSHIDA DC电源模块短路保护 DC电源模块是实验室和工业中非常常见的电源,它能够提供稳定的电压和电流输出,以满足各种设备和电路的需求。然而,如果DC电源模块没有短路保护,它可能会对所连接的仪器和设备造…

python-opencv划痕检测

python-opencv划痕检测 这次实验,我们将对如下图片进行划痕检测,其实这个比较有难度,因为清晰度太差了。 我们做法如下: (1)读取图像为灰度图像,进行自适应直方图均衡化处理,增强图…

任意文件下载漏洞(CVE-2021-44983)

简介 CVE-2021-44983是Taocms内容管理系统中的一个安全漏洞,可以追溯到版本3.0.1。该漏洞主要源于在登录后台后,文件管理栏存在任意文件下载漏洞。简言之,这个漏洞可能让攻击者通过特定的请求下载系统中的任意文件,包括但不限于敏…

SAP LU04记账更改通知单创建转储单报错:L3094 记帐修改没有份存在

解决办法: 使用事务码LU02,修改过账更改状态,将过账更改状态改为U,强制关闭 1. LU04 查找记账更改通知单号 2. 事务码LU02修改状态 这个时候再用LU04去查看的时候,就不会再显示了