spring-cloud-alibaba nacos openfegin

引入依赖

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.7.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Nacos注册中心

下载nacos注册中心
https://github.com/alibaba/nacos/releases
在这里插入图片描述

下载zip文件 解压 进入 nacos-server-1.4.3\nacos\bin 双击startup.cmd 在windows下运行 成功如下 如果报错则 cmd运行如下命令

cd nacos-server-1.4.3\nacos\bin
startup.cmd -m standalone

在这里插入图片描述

#引入依赖 服务注册发现
  <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 </dependency>

在每一个微服务下指定注册中心的地址

#在项目application.yml中配置 注册中心地址
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
 #在项目中配置服务名
 spring.application.name=gulimall-coupon

注册到注册中心

//在启动类中加入@EnableDiscoveryClient注解
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}

Nacos 管理页面 登陆账号 密码 默认为nacos
http://192.168.56.1:8848/nacos/index.html

注册成功后 可查看 服务管理 服务名处 有配置的服务
在这里插入图片描述

Fegin 声明式远程调用

Fegin是一个声明式http客户端

在调用方服务中引入依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

在被调用方编写一个请求

@RequestMapping("/member/list")
    public R membercoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满一百减十");
        return R.ok().put("coupons",Arrays.asList(couponEntity));
    }

在调用方编写Feign 接口

//标明远程客户端 注解 参数为被调用方的在注册中心中配置的服务名
@Service
@FeignClient("gulimall-coupon")
public interface CouponFenginService {
//与被调用方的请求 路径相同    
@RequestMapping("/coupon/coupon/member/list")
    //与被调用方的请求 方法相同
    public R membercoupons();
}

在调用方服务中启动类开启调用功能

//参数为fegin的包的全包名
@EnableFeignClients(basePackages = "com.jhj.gulimall.member.fegin")
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallMemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }

}

在调用方中 注入CouponFenginService 进行调用

	@Autowired
    CouponFenginService couponFenginService;
    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity=new MemberEntity();
        memberEntity.setNickname("张三");

        R membercoupons = couponFenginService.membercoupons();

        return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
    }

Nacos配置中心

导入依赖

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

在resource 下创建bootstrap.properties文件 该文件会优先于application.properties 文件加载

#服务名
spring.application.name=gulimall-coupon
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

在nacos配置中 新增配置 文件名为服务名.properties 点击发布
在这里插入图片描述
在使用配置的类上加入@RefreshScope注解 即可完成配置 修改nacos中的配置内容 无须重启服务 配置修改成功 如果配置中心和配置文件中有相同的项,优先获取配置中心的配置
springboot中用@Value(“${配置名}”)获取值

配置中心命名空间

用于配置隔离,默认是public

  1. 区分 开发 测试 生产配置
    可以创建多个命名空间
    注意使用时需要在项目中bootstrap.properties文件中配置

    #值为配置管理后面的一串命名空间的唯一id
     # 而不是命名空间的名字
    spring.cloud.nacos.config.namespace=ed649994-9050-4bde-9e4f-d84e208073fd
    
    

    在这里插入图片描述

  2. 每一个微服务之间互相隔离
    每一个都创建自己的命名空间
    操作与1相同

配置中心 配置集

所有的配置的集合

配置中心 配置集ID 类似于配置文件名 即Data Id

配置中心 配置分组

默认所有的配置集都属于DEFAULT_GROUP
注意使用时需要在项目中bootstrap.properties文件中配置

#值为分组名
	spring.cloud.nacos.config.group=111

在这里插入图片描述

配置中心同时加载多个配置集

任何配置文件都可以放到配置中心中(数组编号) 需要在bootstrap中说明配置中心的配置文件

#配置文件data-id
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
#配置文件group
spring.cloud.nacos.config.ext-config[0].group=dev
#是否动态刷新
spring.cloud.nacos.config.ext-config[0].refresh=true

作者声明

如有问题,欢迎指正!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值