微服务知识小结

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.mzph.cn/news/166523.shtml

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

相关文章

让工作效率提升10倍:十大AIGC工具评测【建议收藏】

AI技术的普及已经在近年来不断增长。这种技术已经改变了我们与电脑的互动方式,让我们能够更高效、更自然地完成任务。本文将展示10个基于ChatGPT、GPT-3.5和 GPT-4.0 AI模型构建的最强大的资源,使您更容易充分利用它们的潜力。因此,如果您想利…

详解深度学习中的图神经网络GNN

引言 图神经网络GNN是深度学习的一个分支。 深度学习的四个分支对应了四种常见的数据格式,前馈神经网络FNN处理表格数据,表格数据可以是特征向量,卷积神经网络CNN处理图像数据,循环神经网络RNN处理时序数据,图神经网…

android的canvas的clipRegion废弃替代代码

由于clipRegion的一些问题,导致他被废弃了,但又有时候会用到,所以写了一个工具类来替代它 代码如下 package com.example;import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.g…

c++|类和对象(上)

目录 一、面向过程和面向对象初步认识 二、类的引入和定义 2.1类的引入 2.2类的定义 三、类的访问限定符及封装 3.1访问限定符 3.2封装 四、类的作用域 五、类的实例化 六、类的对象大小的计算 6.1如何计算对象的大小 6.2类对象的存储方式 七、类成员函数的thi…

【Docker】从零开始:7.Docker命令:容器命令及参数详解

【Docker】从零开始:7.帮助启动类命令 一、帮助启动类命令启动Docker停止Docker重启Docker查看Docker状态开机启动查看docker概要信息查看docker总体帮助文档查看docker命令帮助文档 二、镜像命令列出本地主机上的镜像运行示例返回说明操作参数 搜索仓库里的某个镜像…

Python-Django的“日志功能-日志模块(logging模块)-日志输出”的功能详解

01-综述 可以使用Python内置的logging模块来实现Django项目的日志记录。 所以与其说这篇文章在讲Django的“日志功能-日志模块-日志输出”,不如说是在讲Pthon的“日志功能-日志模块-日志输出”,即Python的logging模块。 下面用一个实例来进行讲解。 …

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(免费思路)

中国是世界上最大的苹果生产国,年产量约为 3500 万吨。同时,中国也是世界上最大的苹果出口国,世界上每两个苹果中就有一个出口到国。世界上每两个苹果中就有一个来自中国,中国出口的苹果占全球出口量的六分之一以上。来自中国。中…

保护服务器免受攻击:解析攻击情境与解决之道

在数字化时代,服务器安全问题日益突出,因为它们是企业和个人网络活动的核心。服务器被攻击可能引发一系列问题,理解攻击的不同情境以及采取相应的解决方法变得至关重要。 DDoS 攻击(分布式拒绝服务攻击) 情境&#xff…

基于51单片机超声波测距汽车避障系统

**单片机设计介绍, 基于51单片机超声波测距汽车避障系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的超声波测距汽车避障系统是一种用于帮助汽车避免碰撞和发生事故的设备,以下是一个基本…

Visual Studio 2022安装教程(千字图文详解),手把手带你安装运行VS2022以及背景图设置

VS2022最新最全安装教程 很高兴你打开了这篇博客,接下来我们一起安装并且使用VS2022吧 文章目录 VS2022最新最全安装教程一.官网下载二.安装启动三.项目测试1.创建新项目2.选择我们使用的模板(C空项目),继续冲!3.进入…

docker的使用方法

文章目录 为什么要用dockerdocker安装docker工作原理docker命令docker搭建练习docker可视化docker镜像docker容器数据卷DockerFiledocker全流程Docker网络原理docker composedocker swarm 为什么要用docker 官网:https://www.docker.com文档地址:https:…

Stream流开发常用场景

一、Stream流 1.将某个集合中的金额字段相加 Bigdecimal amount list.stream().map(TransInfoEntity::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); 2.将集合中某两个字段组合成一个map Map<Long, String> map list.stream().collect(Collectors.t…

ImgUtil.scale会在某些图片压缩之后自动旋转90度

需要的jar依赖&#xff1a; <dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.16.0</version> <!-- 请检查最新版本 …

ceph编译报错解决

1.执行./install-deps.sh提示deb无法安装 解决方案&#xff1a; 直接使用dpkg -i来安装deb&#xff0c;会提示缺失3个库&#xff0c;库名如下&#xff1a; cython python dh-systemd 其中cython和python手动安装好后&#xff0c;也会依旧报错。此时修改debian/control文件&…

系列五、声明式事务(xml方式)

一、概述 声明式事务(declarative transaction management)是Spring提供的对程序事务管理的一种方式&#xff0c;Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明&#xff0c;是指在配置文件中声明&#xff0c;用在Spring配置文件中声明式的处理事务来…

搞笑的客服日常,今天遇到的晒白客服,你遇到过吗?

大家看看这个 https://blog.csdn.net/a871923942/article/details/129778391?utm_mediumdistribute.pc_feed_404.none-task-blog-2 今天遇到傻逼审核 开头第一句就使用快捷话术 客服感觉自己发错了 然后就撤回消息 第二次继续发话术&#xff0c;说违规&#xff0c;审核不通过…

案例015:Java+SSM+uniapp基于微信小程序的校园防疫系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

互联网上门洗鞋店小程序

上门洗鞋店小程序门店版是基于原平台版进行增强的&#xff0c;结合洗鞋行业的线下实际运营经验和需求&#xff0c;专为洗鞋人和洗鞋店打造的高效、实用、有价值的管理软件系统。 它能够帮助洗鞋人建立自己的私域流量&#xff0c;实现会员用户管理&#xff0c;实现用户与商家的点…

【SpringCloud】微服务架构设计模式

一、聚合气微服务设计模式 最常见、最简单的设计模式&#xff0c;效果如图所示&#xff1a; 聚合器调用多个服务实现应用程序所需的功能 它可以是一个简单的 Web 页面&#xff0c;将检索到的数据进行处理并展示&#xff0c;也可以是一个更高层次的组合微服务&#xff0c;对…