谷粒商城之springCloudAlibaba

简介

Spring Cloud Alibaba是阿里巴巴结合自身的微服务实践开源的微服务全家桶,我个人觉得其组件比Spring Cloud 中的组件更加好用和强大。并且对的Spring Cloud组件做了很好的兼容。比如在Spirng Cloud Alibaba中依然可以使用Feign作为服务调用方式,使用Eureak做服务注册发现等等。

Nacos的注册和发现

1.引入nacos的相关依赖

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2.在nacos的bin目录下打开cmd,输入startup.cmd -m standalone启动nacos
3.在src/main/resoure/application.yml文件配置nacos的地址

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: gulimall-coupon

4.在启动器上配置注解@EnableDiscoveryClient

nacos做配置中心

1.添加依赖

<!--nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2.在bootstrap.properties文件中配置

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.在nacos配置中心中配置gulimall-coupon.properties
配置Data ID :gulimall-coupon.properties,默认规则
配置内容

coupon.user.name=zhangshan
coupon.user.age=20

4.在调用代码的地方CouponController,使用@Value(“${配置项名字}”)的形式取出值

   @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);
    }

5.在CouponController类上添加@RefreshScope,能够随获取时刷新配置内容。
如果配置中心和当前应用有相同的配置项,优先使用配置中心的配置

细节:
(1).命名空间:配置隔离
默认:public(保留空间),默认新增的所有配置都在public空间
1)、开发、测试、生成,利用命名空间来做隔离
注意:在bootstr.properties 里面配置命名空间的名字确定使用的是哪个空间

    spring.cloud.nacos.config.namespace=06f5ef39-82d9-46c7-ad0b-7555333f7a45
 2)、每个微服务之间相互隔离配置,每个微服务都创建自己的命名空间,只加载自己命名空间下的配置

(2)、配置集:所有配置的集合
(3)、配置集ID:类似文件名
Data ID:类似文件名
(4)、配置分组:
所有的配置集都属于DEFAULT_GROUP
可以分组:1111,1212,618
在项目中使用微服务创建自己的命名空间,使用配置分组区分环境,dev,test,pro。

gateway作网关

1.开启服务注册发现
(1)、添加 @EnableDiscoveryClient
(2)、配置naocs的配置文件
在application.properties中配置

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name= gulimall-gateway
server.port=88

在bootst.properties中配置

spring.application.name=gulimall-gateway
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=2d88f048-9b79-403f-8753-94295094eed8

2.引入依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

3.配置断言

spring:
  cloud:
    gateway:
      routes:
        - id: test_route
          uri: https://www.baidu.com
          predicates:
            - Query=url, baidu

        - id: qq_route
          uri: https://www.qq.com
          predicates:
            - Query=url, qq

配置openfeign

1、引入依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2、为方法配置远程调用接口

@FeignClient("gulimall-coupon")
public interface CouponFeginService {
    @RequestMapping("coupon/coupon/member/list")
    public R memberCoupons();
}

3、注入

@Resource
CouponFeginService couponFeignService;

4、本地方法的调用

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

        return R.ok().put("member", memberEntity).put("coupons", memberCoupons.get("coupons"));
    }
  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值