项目实战

在我们使用 SpringcloudAlibaba微服务架构进行开发的时候,我们不会全部使用其中的所有组件
常用的组件使用为如下:

1、服务注册与发现

使用Nacos Config和Nacos Discovery

2、服务熔断/流量控制/服务降级

使用Sentinel组件,进行流量控制,断路,和系统自适应保护

3、服务调用

Spring Cloud Alibaba全家桶中集成的是【Dubbo RPC】的调用方式
但是我们日常开发中可能没有学习到相关的知识,
所以大多数时候我们都是使用的Spring Cloud官方的【Open Feign】和【RestTemplate】组件进行服务调用

4、服务路由

Spring Cloud Alibaba全家桶中集成的是【Dubbo Servlet】的使用方式
同理,对于Dubbo的使用不够精通,所以我们同样推荐使用Spring Cloud官方的【Spring Gateway】组件

5、分布式消息组件

可以使用【RabbitMQ ,RocketMQ ,Pulsar】等消息组件

6、负载均衡

使用Dubbo LoadBalance 进行负载均衡,同时搭配上netflix的Ribbon组件
其中Nacos就已经默认集成了Ribbon组件的

7、分布式事务

使用【Seata】作为分布式事务的组件

版本对应

image.png
项目开发的时候需要导入两个SpringCloud父依赖

思维导图:

1、SpringCloud Alibaba简介 - 图2

image.png

微服务架构常见问题

1. 如何管理

服务注册,发现,剔除 Nacos

2. 服务间如何通讯

restful RPC dubbo feign

3. 客户端如何访问

网关(Gateway)

4. 一旦出现问题,如何自处理(容错)

【Sentinel】容错降级, 后续使用消息组件补偿机制

5. 一旦出现问题,如何排错(链路追踪)

Skywalking 链路追踪,排查异常