前言
springcloud文章第二弹,这篇文章主要是针对SCA的,主要包括nacos和sentinel。后面会总结下,后面我们就可以用nacos+sentinel+dubbo搭建微服务。话不多说,发车。。。
一、注册+配置Nacos(AP+CP)
微服务中的组件本来就五花八门,维护起来有一定难度,如果有一个好用的组件同时包含两种功能,我们又何乐而不为呢,快到碗里来。主要功能包括:
- 服务发现与健康检查
- 动态配置管理
- 动态DNS服务
- 服务和元数据管理(管理平台的⻆度,nacos也有⼀个ui⻚⾯,可以看到注册的服务及其实例信息(元数据信息)等),动态的服务权重调整、动态服务优雅下线,都可以去做
1.注册中心
在pom文件中引入SCA依赖:
<dependencyManagement> <dependencies>
<!--SCA -->
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope>
</dependency>
</dependencies>
<!--SCA -->
</dependencyManagement>
在服务提供者⼯程中引⼊nacos客户端依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacosdiscovery</artifactId>
</dependency>
application.yml修改,添加nacos配置信息
spring:
cloud:
nacos:
discovery:
################ 配置nacos server地址
server-addr: 127.0.0.1:8848
2.配置中心
作为配置中心,Nacos=Spring Cloud Config+ Bus
配置步骤如下:
- 去Nacos server中添加配置信息
- 改造具体的微服务,使其成为Nacos Config Client,能够从Nacos Server中获取到配置信息
二、哨兵sentinel
Sentinel是⼀个⾯向云原⽣微服务的流量控制、熔断降级组件。
替代Hystrix,针对问题:服务雪崩、服务降级、服务熔断、服务限流
相比于Hystrix有如下优势:
1.独⽴可部署Dashboard/控制台组件
2.减少代码开发,通过UI界⾯配置即可完成细粒度控制
其主要分为以下两个部分:
- 核⼼库:(Java 客户端)不依赖任何框架/库,能够运⾏于所有 Java 运⾏时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的⽀持
- 控制台:(Dashboard)基于 Spring Boot 开发,打包后可以直接运⾏,不需要额外的 Tomcat 等应⽤容器。
Sentinel 具有以下特征:
- 丰富的应⽤场景:Sentinel 承接了阿⾥巴巴近 10 年的双⼗⼀⼤促流量的核⼼场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填⾕、集群流量控制、实时熔断下游不可⽤应⽤等。
- 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接⼊应⽤的单台机器秒级数据,甚⾄ 500 台以下规模的集群的汇总运⾏情况。
- ⼴泛的开源⽣态:Sentinel 提供开箱即⽤的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo的整合。您只需要引⼊相应的依赖并进⾏简单的配置即可快速地接⼊ Sentinel。
- 完善的 SPI 扩展点:Sentinel 提供简单易⽤、完善的 SPI 扩展接⼝。您可以通过实现扩展接⼝来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
Sentinel 的主要特性:
总结
SCA的几个重要组件就介绍到这里,老规矩,如果你想不想吃生活的苦,就来和我吃学习的苦。我是油条~,下期见。