nacos和gateway部署实践踩的坑

一.nacos

我的微服务项目部署之后,发现不同服务之间无法实现通信,但是我在本地多个服务运行明明运行的很好。

后来我进去nacos页面查看各服务的信息,发现各服务对应的ip竟然不是我服务器的ip,而是本地ip/或者说是内网ip。而nacos服务发现的基本逻辑就是根据服务名,然后去nacos拉取对应的ip,然后根据ip请求接口。如果是内网ip,如果不像本地测试一样在同一个内网,则无法通信是正常的。

那么怎么解决呢?直接在配置中添加服务注册的ip和端口就可以了。

复制代码
  cloud:
    nacos:
      server-addr: 
      discovery:
        cluster-name: FJ # 集群名称
        # 注册到nacos的ip与端口
        ip: ip地址
        port: 8081

二.gateway

gateway中的路由配置要分开写:

复制代码
      routes: # 网关路由配置
        - id: music-service-music
          uri: lb://music-service # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates:
            - Path=/musics/**
        - id: music-service-comment
          uri: lb://music-service # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates:
            - Path=/comments/**

而不能合起来写:

复制代码
      routes: # 网关路由配置
        - id: music-service-music
          uri: lb://music-service # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates:
            - Path=/musics/**
            - Path=/comments/**

因为合起来写它会匹配两次,不管什么链接都不可能通过的。

相关推荐
想躺平的咸鱼干3 分钟前
Volatile解决指令重排和单例模式
java·开发语言·单例模式·线程·并发编程
hqxstudying31 分钟前
java依赖注入方法
java·spring·log4j·ioc·依赖
·云扬·39 分钟前
【Java源码阅读系列37】深度解读Java BufferedReader 源码
java·开发语言
Bug退退退1232 小时前
RabbitMQ 高级特性之重试机制
java·分布式·spring·rabbitmq
小皮侠2 小时前
nginx的使用
java·运维·服务器·前端·git·nginx·github
Zz_waiting.2 小时前
Javaweb - 10.4 ServletConfig 和 ServletContext
java·开发语言·前端·servlet·servletconfig·servletcontext·域对象
全栈凯哥2 小时前
02.SpringBoot常用Utils工具类详解
java·spring boot·后端
兮动人2 小时前
获取终端外网IP地址
java·网络·网络协议·tcp/ip·获取终端外网ip地址
呆呆的小鳄鱼2 小时前
cin,cin.get()等异同点[面试题系列]
java·算法·面试
独立开阀者_FwtCoder2 小时前
"页面白屏了?别慌!前端工程师必备的排查技巧和面试攻略"
java·前端·javascript