谷粒商城第二天(分布式组件(nacos和gateway)的入门使用)

1.首先我们需要先下载nacos(这里使用的是window版的)进行安装,然后进行启动

 启动之后我们可以看到一个网址我们进入网址初始值为  nacos   nacos

 登录过后我们就进入了这个页面

 然后在商城中我们每个微服务都需要进行服务的注册与发现以及配置中心的管理

        1),先导入依赖

<!--        服务注册/发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

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

        2),我们需要在微服务创建application.properties文件 进行服务的注册配置,我们还要在运行主程序上添加注解@EnableDiscoveryClient。

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

spring.application.name=gulimall-coupon

        然后进入nacos可视化界面可以发现服务注册进来了

        3),然后我们需要使用nacos的配置中心

                a,先引入依赖

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

                 b,创建一个bootstrap.properties文件输入以下内容

spring.application.name=gulimall-coupon

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

                c,需要给配置中心默认添加一个叫 数据集(data id):gulimall-coupon.properties 默认规则问 当前服务名.properties

 

                e,我们可以动态获取配置文件的值

@RefreshScope 动态获取并刷新配置
@Value("${配置项的名}") 获取配置项的值 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置

         4),使用配置中心 注意细节:

 这是同时配置多个配置集的  我在这使用的是dev环境下的 

spring.cloud.nacos.config.namespace=2b0a9f7c-48f5-42cc-8230-c4f2e49a9f77
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

     同时我们可以把application.yml文件的内容配置到管理中心来   2.GateWay网关的使用 
        2.1、作用
        反向代理、鉴权、流量控制、熔断以及日志监控

        2.2、微服务中网关位置


        2.3、核心功能
        2.3.1、路由(Route)
                路由是构建网关的基本模块
                由ID,目标URI,一系列的断言和过滤器组成
        2.3.2、断言(Predicate)
                开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数)
                如果请求与断言相匹配则进行路由
        2.3.3、过滤(Filter)
        指的是Spring框架中GatewayFilter的实例
        使用过滤器,可以在请求被路由前或者之后对请求进行修改.
        2.4、Gateway工作流程
             2.4.1、流程
                1.客户端向Getway发出请求,然后在Gateway Handler Mapping中找到与请求匹配的路由,并发送到Gateway Web Handler

                2.Handler再通过指定的过滤器链,将请求发送到实际的服务执行业务逻辑,然后返回。

        2.4.2、过滤器链
       发送代理请求之前(“pre”)作用:参数校验、权限校验、流量监控、日志输出和协议转换等。
       发送代理请求之后(“post”)作用:响应内容、响应头修改、日志输出、流量监控等
        2、Gateway使用
2.5、固定IP地址进行路由
2.5.5、POM文件
        添加Gateway依赖

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

        application.properties配置

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

        bootstrap.properties配置

spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=dd21cecd-35c5-416f-9596-eb6d010a90ff

2.6添加匹配路由的地址

        在application.yml中配置

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

测试案例成功

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值