1.Nacos使用
Nacos作为服务注册中心和配置中心
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--这是注册服务-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!---这是配置服务-->
需要的yml配置
#这是单纯的注册到nacos
server:
port: 30001
spring:
application:
name: 01provider
cloud:
nacos:
discovery:
server-addr: 47.94.169.138:8848
#这是作为配置中心和服务中心bootstrap.yml
spring:
application:
name: 02consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yml #注意,在老版本的nacos中这个地方必须写yaml,否则启动会找不到文件
namespace: 01lqq #这里的命名空间不是空间名字而是空间id
server:
port: 30002
#application.yml指定配置文件的后缀
spring:
profiles:
active: dev
2.Sentinel的使用
通过代码配置 @SentinelResource
value:这是get接口添加一个sentinel的降级名字,通过对这个降级接口接口对原接口进行降级规则的添加
blockHandler:对配置热点参数的降级,但是不会对异常进行降级,参数中需要添加一个BlockException异常参数
fallback:降级的方法名,需要保证于接口的参数一致,当接口出现错误或异常就会触发这个降级方法
fallbackClass:这是一个降级类,发生降级会去降级类中匹配降级方法
defaultFallback,不需要任何参数但需要返回值相同
exceptionsToIgnore:忽略异常,发生异常不触发降级
sentinel:
transport:
dashboard: 127.0.0.1:8080
datasource:
ds1:
nacos: #配置sentinel使用nacos作为配置中心
server-addr: localhost:8848
dataId: 01providersentinel
rule-type: flow
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.7.2</version>
</dependency>
<!--需要nacos保存降级规则,否则重新启动之前的降级规则就会消失-->
[
{
"resource": " /test2",
"limitApp": "default",
"grade": 0,
"count": 1,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
]
需要用json形式保存降级规则