栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring-cloud-alibaba

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring-cloud-alibaba

引入依赖

    
        
            com.alibaba.cloud
            spring-cloud-alibaba-dependencies
            2.2.7.RELEASE
            pom
            import
        
    

Nacos注册中心

下载nacos注册中心
https://github.com/alibaba/nacos/releases

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

cd nacos-server-1.4.3nacosbin
startup.cmd -m standalone

#引入依赖 服务注册发现
  
     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery
 

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

#在项目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客户端

在调用方服务中引入依赖


   org.springframework.cloud
   spring-cloud-starter-openfeign

在被调用方编写一个请求

@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配置中心

导入依赖


   com.alibaba.cloud
   spring-cloud-starter-alibaba-nacos-config

在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

作者声明
如有问题,欢迎指正!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号