比如在使用spring cloud alibaba 时 nacos 支持 使用 spring.cloud.nacos.discovery.ip 和 spring.cloud.nacos.discovery.port 修改向nacos注册的ip和地址 请问seata 也能向spring cloud 一样修改服务注册时向nacos 注册的ip与地址吗
[seata]使用Nacos服务注册时修改向nacos注册的ip与port
回答
用seata spring-boot-starter的依赖,properties里把两个组件的相关的参数指向到一个key不就行了xxx=${nacos.ip}之类的
seata-server 也可以这样用吗
我看官方文档配置注册中心是这样的,我尝试添加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
你的网络无法访问podip吗?这个问题跟你说的seata-server能不能用不是一个问题吧?seata-server又没有springcloud哪些配置项
是的,比如我们在开发阶段在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目前能支持我这个需求吗?或者有没有别的实践方式呢?
启动时通过 -h 选项指定 IP 地址, 使用 -p 指定端口. 例如: 命令启动: seata-server.sh -h 127.0.0.1 -p 8091 https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html 如果是 1.5.1 版本, -h 不起作用 升级1.5.2或者export SEATA_IP=xxxx 如果是 1.5.2 版本, 启动时, 需要 cd 到 bin 目录 中再启动 https://github.com/seata/seata/issues/4789 https://github.com/seata/seata/issues/4803
建议你们把开发环境和k8spod网络层面打通,避免此问题