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/**

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

相关推荐
皮皮林5511 天前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河1 天前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程1 天前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅1 天前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者1 天前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺1 天前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart1 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP1 天前
MyBatis-mybatis入门与增删改查
java
孟陬2 天前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端