10.01-10.09学习总结

Spring Cloud Alibaba

XML 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>{project-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Nacos作为注册中心

1.引入依赖

XML 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2. 配置 Nacos Server 地址

XML 复制代码
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3.@EnableDiscoveryClient 注解开启服务注册与发现功能

java 复制代码
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {

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

}

4.应用命名

XML 复制代码
spring.application.name=gulimall-coupon

远程调用

1.引入open-feign
XML 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
2.编写接口

方法签名一致,请求地址补全

java 复制代码
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R memberCoupons();
}
3.开启远程调用
java 复制代码
    @Autowired
    private CouponFeignService couponFeignService;
    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity=new MemberEntity();
        memberEntity.setNickname("Elysia");
        R memberCoupons= couponFeignService.memberCoupons();

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

Nacos作为配置中心

1.引入依赖

XML 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

2.创建bootstrap.properties

XML 复制代码
spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.添加一个数据集(Data Id)

gulimall-coupon.properties

默认规则,应用名.properties

4.动态获取配置

@RefreshScope:动态获取并刷新配置

配置中心的配置优先

java 复制代码
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

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

5.命名空间与分组

为某服务创建命名空间,依据不同环境创建分组 如开发环境dev

6. 同时加载多个配置集

XML 复制代码
spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=8d8f3314-bf89-4133-a39e-047178438384
spring.cloud.nacos.config.group=dev

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true

GateWay

功能:路由转发,权限校验,限流控制

工作方式

断言predicate

匹配请求的信息,如请求头和请求参数。判断请求路由到哪个服务

XML 复制代码
spring:
  cloud:
    gateway:
      routes:
        - id: route_test
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu

predicates断言数组

参数url=baidu时,转发到 uri: https://www.baidu.com

XML 复制代码
spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

请求需要在指定日期时间之后发出

过滤器Filter

在请求和响应到达之前或之后,进行处理

相关推荐
君顾121 分钟前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
问天_观心1 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
zhanghe6871 小时前
es的密码带有特殊字符,导出
java
指掀涛澜天下惊1 小时前
强化学习进阶篇八 策略梯度算法
深度学习·学习·算法·强化学习
pnoker1 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
my_realmy1 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式
star learning white1 小时前
STM32入门学习5
stm32·嵌入式硬件·学习
传奇开心果编程1 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
天远数科2 小时前
风险治理实战:基于天远车信盟出险构建自动化理赔核保流水线
java·网络·人工智能·自动化
lifallen2 小时前
Skill 的生命周期:问题消失以后
人工智能·学习·ai·ai编程