Spring Cloud 插件 Nacos、OpenFeign、Sentinel

服务管理

使用了一个大版本的控制,版本如下。

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-netflix-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.7.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

1.下载Nacos
Nacos官网
根据官网上的步骤来进行nacos的搭建,我这里下载的是源码。
在这里插入图片描述
下载成功后,使用IDEA打开,先将maven仓库设置成自己的仓库。然后构建启动配置,这里设置以单机模式启动,不然会出现错误。
在这里插入图片描述
启动nacos,如果启动报版本兼容的错误,这里我们需要将项目 clean > install ,在启动即可。
http://192.168.31.143:8848/nacos/index.html
启动成功之后浏览器访问 http://192.168.31.143:8848/nacos/index.html 账户密码 nacos/nacos。
在这里插入图片描述
到这里我们第一步就算完成了。

2.在项目使用nacos服务发现功能

  1. 导入依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

官网有强调这里nacos的版本必须根据自己项目的cloud版本相兼容。
在这里插入图片描述

  1. 修改配置
    官网上使用的是properties的方式,我们通常习惯使用yml的方式。
spring:
  application:
    name: consumers-server #项目名称,在注册中心显示的名字
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 # nacos的地址

3.在启动类上添加注解

@SpringBootApplication
@EnableDiscoveryClient // 开启服务发现功能
public class MyConsumersApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyConsumersApplication.class);
    }
}

在这里插入图片描述

然后启动服务,在nacos上就能发现注册号的服务了。
在这里插入图片描述

配置管理

我们平常写项目会接入一些第三方平台的API,我们会在yml文件里面配置一些他们所需要的参数。如果我们想修改这些配置信息,那么就必须重启项目才能生效;但是使用nacos就可以帮助我们动态修改配置信息而不需要重启项目。

  1. 导入依赖
    注意版本兼容
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

2.添加配置
我们为了方便管理,把配置分开管理,新建一个bootstrap.yaml 文件

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml #文件后缀名
  application:
    name: user-server # 文件的前缀
  profiles:
    active: dev # 环境

然后在 application.yaml 里面写一段配置
在这里插入图片描述

使用@Value 获取到配置信息的值;这里我们做一个简单的测试。
在这里插入图片描述

第一次调用,返回的结果是我们配置的ddz
在这里插入图片描述
然后我们在 nacos 配置管理控制台新建一个配置文件
在这里插入图片描述
在这里插入图片描述
添加成功后,我们还需要在使用这个配置的类上加上原生注解 @RefreshScope 实现配置自动更新。
在这里插入图片描述
重启项目,然后再请求一下接口,可以发现返回的值已经被修改。
在这里插入图片描述
我们可以重复修改 nocas 里配置文件的值,这里返回的值会实时更新。

OpenFeign服务调用 + Sentinel服务降级

  1. 引入依赖
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
  1. 在启动类增加注解 @EnableFeignClients ,并修改配置启动 sentinel 的功能
    在这里插入图片描述

  2. 创建一个openFeign的调用接口,接口的方法名和被调用服务暴露的方法一样
    在这里插入图片描述在这里插入图片描述

  3. 创建接口接口实现类,用于order-server服务无法被用 降级 并返回假数据,并把他放入IOC容器中。
    在这里插入图片描述

  4. 在接口上加上注解 @FeignClient 并指定参数。
    在这里插入图片描述
    然后我们就可以在user-order上调用order-server 服务了,如果order-server挂掉了,那么就会启用降级功能保护user-order服务,防止雪崩效应。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LOVE_DDZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值