[seata]使用Nacos服务注册时修改向nacos注册的ip与port

2024-07-05 450 views
7

比如在使用spring cloud alibaba 时 nacos 支持 使用 spring.cloud.nacos.discovery.ip 和 spring.cloud.nacos.discovery.port 修改向nacos注册的ip和地址 请问seata 也能向spring cloud 一样修改服务注册时向nacos 注册的ip与地址吗

回答

7

用seata spring-boot-starter的依赖,properties里把两个组件的相关的参数指向到一个key不就行了xxx=${nacos.ip}之类的

5

seata-server 也可以这样用吗

1

我看官方文档配置注册中心是这样的,我尝试添加ip 和 port 来替代向nacos注册的ip和地址

registry {
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }

我想让seata-server注册到注册中心的ip地址变成其他的ip和地址,因为我部署seata-server到k8s中时,seata向注册中心注册的ip是k8s的虚拟ip,这导致我云下的组件无法访问seata-server

5

你的网络无法访问podip吗?这个问题跟你说的seata-server能不能用不是一个问题吧?seata-server又没有springcloud哪些配置项

7

是的,比如我们在开发阶段在k8s中部署了seata server,那我们本地用idea开发时,访问不了seata 的pod ip,在我们公司k8s服务暴露都是通过F5实现的,所以向替换掉seata server向nacos注册的ip与端口,我看nacos应该是支持替换注册时替换ip和port的。

即便到了联调测试或者生产环境,当我的服务与seata-server不在一个k8s集群时,我的服务也不能通过pod ip来访问我的seata-server

  registry {
   type = "nacos"

 nacos {
   application = "seata-server"
     serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
     cluster = "default"
     username = ""
     password = ""
    ip = "xxx"
    port="xxx"

   }

我尝试使用这种配置来替换我注册的ip与端口,但是不能生效。请问seata目前能支持我这个需求吗?或者有没有别的实践方式呢?

6

建议你们把开发环境和k8spod网络层面打通,避免此问题