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

springcloud Alibaba 笔记

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

springcloud Alibaba 笔记

使用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);
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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