微服务知识小结

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

1.分布式架构指将单体架构中的各个部分拆分,然后部署到不同的机器或进程中去,SOA和微服务基本上都是分布式架构的

  1. 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组件进行了无缝集成,提供了更加完备的微服务解决方案。

相关推荐
眠りたいです43 分钟前
基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(三)-客户端主体部分完结
c++·微服务·云原生·架构·json·restful·qt6.7
qq_3168377544 分钟前
初步压测的 nginx反向代理 到 Spring Cloud网关 到 Spring Cloud微服务的网络参考配置
nginx·spring cloud·微服务
但要及时清醒2 小时前
spring cloud微服务常用组件
spring·spring cloud·微服务
陈果然DeepVersion2 小时前
Java大厂面试真题:从Spring Boot到AI微服务的三轮技术拷问(二)
spring boot·redis·spring cloud·微服务·ai·java面试·rag
summer_west_fish4 小时前
K8S Base: CrashLoopBackOff
云原生·容器·kubernetes
过客随尘5 小时前
Redis主从同步以及Redis-Shake数据同步实战
redis·云原生
孟祥_成都6 小时前
最好的组件库教程又回来了,升级为 headless 组件库!
前端·面试·架构
he___H6 小时前
RabbitMQ 小项目之扫盲班
微服务·springboot
阿里云云原生6 小时前
实战|魔方文娱全链路可观测架构设计:SLS+ARMS+Prometheus+云拨测落地指南
云原生