springcloud Alibaba 笔记

springcloud Alibaba 笔记,第1张

使用springcloud alibaba 先引入依赖

首先选取正确的springboot 和springcloud 版本 否则可能会出现不兼容的现象

下面是将以来进行版本管理 其他模块调用时不用再写版本号

 
        
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2021.0.1.0
                pom
                import
            
        
    

1.使用nacos作为服务注册中心 1.1导入nacos依赖

            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    
1.2 下载并执行 nacos-server.cmd 文件


打开loalhost:8848/nacos 账号nacos 密码nacos 登陆成功进入nacos的管理页面 

1.3 在项目的配置文件中配置如下信息
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://*****:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.cj.jdbc.Driver
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848   //nacos暴露的地址
  application:
    name: qiuqiumall-coupon          //服务在nacos中暴露的名称
1.4  主启动类添加注解
@EnableDiscoveryClient //将服务注册到注册中心nacos
@SpringBootApplication
public class QiuqiumallCouponApplication {

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

}

2.OpenFeign 的应用 2.1 引入依赖
 
         org.springframework.cloud
         spring-cloud-starter-openfeign
  
2.2 编写要调用功能的接口
@FeignClient("qiuqiumall-coupon")  //要远程调用的服务在nacos中注册的名称
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")  //被调用微服务功能的url
    public R membercoupons();

}
2.3 在自己的controller中自动注入写好的接口
@Autowired
    CouponFeignService couponFeignService;

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

        R membercoupons = couponFeignService.membercoupons();


        return R.ok().put("member",memberEntity).put("coupon",membercoupons.get("coupon"));
    }
2.4 主启动类添加注解
@EnableFeignClients("com.qhz.qiuqiumall.member.feign") //开启远程调用 调用接口的位置
@SpringBootApplication
@EnableDiscoveryClient   //将服务注册进nacos 因为Open-Feign 是基于nacos 发送http请求将数据转换为Jason进行远程调用
public class QiuqiumallMemberApplication {

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

}
3.如何使用Nacos作为配置中心统一管理   3.1.1 引入依赖
         
             com.alibaba.cloud
             spring-cloud-starter-alibaba-nacos-config
         

         
             org.springframework.cloud
             spring-cloud-starter-bootstrap
             3.1.1
        
3.1.2创建一个bootstrap.properties

      spring.application.name=qiuqiumall-coupon
      spring.cloud.nacos.config.server-addr=localhost:8848

3.1.3给配置中心默认添加一个数据集

(Data Id)gumall-coupon.properties。 默认规则,应用名.properties

3.1.4给应用名.properties添加任何配置 3.1.5.动态获取配置
@RefreshScope
@RestController
@RequestMapping("/coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")
    private String name;
    @Value("${coupon.user.age}")
    private Integer age;
    @RequestMapping("/test")
    public R test()
    {
        return R.ok().put("name",name).put("age",age);
    }
    @RequestMapping("/member/list")


@RefreshScope 动态获取并刷新配置信息  

@Value("${配置项的名}") 获取配置信息中的值

如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的内容
3.2细节 3.2.1命名空间:配置隔离;

    默认:public(保留空间);默认新增的所有配置都在public空间.

    1.开发,测试,生产:利用命名空间来做环境隔离。

       注意:  在bootstrap.properties;配置上哪个命名空间下的配置,

       spring.cloud.nacos.config.namespace=e62ca179-977e-401d-ba21-9f946cc76f96

    2.每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间只加载自己命名空间下的配置

3.2.2配置集

         所有的配置的集合        

3.2.3配置集ID

        Data ID:类似文件名.

3.2.4配置分组

        默认所有的配置集都属于:DEFAULT_GROUP;

       1111,618,1212

 每个微服务创建自己的命名空间,使用配置分组区分环境,dev,test,,prod

 3.2.5 同时加载多个配置集

     微服务任何配置信息,任何配置文件都可以放在配置中心中

     只需要在bootstrap.properties说明加载配置中心中哪些配置文件即可

     @Vaule ,@ConfiguationProperties...

    以前的springboot任何从配置文件中获取值都能使用

     配置中心有的优先使用配置中心的。

4.gateway网关使用 4.1导入依赖
        
            org.springframework.cloud
            spring-cloud-starter-gateway
            3.1.1
        

4.2 修改配置文件将服务注册进nacos 
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.application.name=qiuqiumall-gateway
server.port=88
4.3 修改gateway相关配置信息
spring:
  cloud:
    gateway:
      routes:
        - id: test_route          //路由名称
          uri: https://www.baidu.com   //路由地址
          predicates:
            - Query=url,baidu             //断言 如果路径存在?url=baidu 
        - id: qq_route
          uri: https://www.qq.com
          predicates:
            - Query=url,qq
4.4主启动类
@EnableDiscoveryClient   //将服务注册到nacos
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})  //因为有数据库依赖但又不需要配置数据库   排除数据源自动配置
public class QiuqiumallGatewayApplication {

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

}

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

原文地址: https://outofmemory.cn/langs/725531.html

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

发表评论

登录后才能评论

评论列表(0条)

保存