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

【gateway系列】手把手教你gateway整合nacos注册中心

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

【gateway系列】手把手教你gateway整合nacos注册中心

目录
  • 准备
  • Gateway服务
  • Member服务
  • 运行

往期相关推荐:
网关路由规则和nacos配置中心实战:

一步步带你学习gateway路由规则实践

nacos整合配置中心

准备

准备引入相关依赖:


        org.springframework.boot
        spring-boot-starter-parent
        2.3.9.RELEASE
         
    

 
        UTF-8
        UTF-8
        1.8
        Hoxton.SR3
        0.2.1.RELEASE
    



    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba.version}
                pom
                import
            
        
    

上面这些依赖是gateway服务和member服务实践共同需要的,此外需要注意SpringBoot的版本,小编实践过程中,gateway集成nacos依赖启动失败,原因:springBoot引用的版本是2.5.5,需要降级为2.3.9.RELEASE,所以如果小伙伴整合nacos时,同样遇到问题,思考一下是否版本问题。

Gateway服务
  • 引入gateway依赖
 
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
  • 配置文件bootstrap.yml
server:
  port: 8082
spring:
  application:
    name: gateway-demo
  cloud:
    nacos:
      config:
        file-extension: yaml
        server-addr: XX.XX.XX.XX:8848
  profiles:
    active: dev

注意:nacos服务地址替换成自己服务器IP地址;

  • nacos配置中心
    之前谈论nacos配置中心的dataId的命名规则:

${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
故gateway服务命名为:gateway-demo-dev.yaml

具体配置如下:注意缩进格式,推荐现在idea中调整

spring:
  application:
    name: gateway-demo # 服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: xx.xx.xx.xx:8848 # 注册中心地址  # 默认是没有密码的
      config:
        server-addr: xx.xx.xx.xx:8848  # config地址
        file-extension: yaml # 指定配置文件类型
      # 网关的配置
    gateway:
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true    
      routes:
        - id: member-server
          uri: lb://member-server
          predicates:
            - Path=/query-demo/**
  • 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayDemoApplication {

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

}

@EnableDiscoveryClient注解标识服务发现;

Member服务

member服务按照准备部分引入相关依赖后,则直接添加配置文件;

  • bootstrap.yml
server:
  port: 8083
spring:
  application:
    name: member-server
  cloud:
    nacos:
      config:
        file-extension: yaml
        server-addr: xx.xx.xx.xx:8848
  • controller
@RestController
public class MemberController {


    @RequestMapping("/query-demo")
    public String queryDemo(String name) {
        return "https://blog.csdn.net/"+ name + "/article/details/120475609";
    }

}

主启动类上添加@EnableDiscoveryClient注解标识服务发现;

  • nacos配置中心
    新增配置dataId=member-server.yaml,如下
spring:
  application:
    name: member-server # 服务名称
  cloud:
    nacos:
      discovery:
        server-addr: xx.xx.xx.xx:8848 # 注册中心地址  # 默认是没有密码的
      config:
        server-addr: xx.xx.xx.xx:8848  # config地址
        file-extension: yaml # 指定配置文件类型
运行

分别将网关服务8082,member服务8083端口启动,通过浏览器访问gateway将请求转发到member服务;
nacos服务列表中已经注册以上两个服务:

请求:http://localhost:8082/query-demo?name=xuanlu1
响应结果:https://blog.csdn.net/xuanlu1/article/details/120475609

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

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

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