spring-cloud-alibaba

spring-cloud-alibaba,第1张

引入依赖
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-alibaba-dependenciesartifactId>
            <version>2.2.7.RELEASEversion>
            <type>pomtype>
            <scope>importscope>
        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.cloudgroupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
 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.cloudgroupId>
   <artifactId>spring-cloud-starter-openfeignartifactId>
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.cloudgroupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
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

作者声明
如有问题,欢迎指正!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存