Dubbo项目如何平滑迁移到K8S

Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架,可以和 Spring框架无缝集成。在本章中,Dubbo版本为2.7.22,注册中心为ZooKeeper,版本为3.4.8,讲述上云过程中的遇到的一些问题以及相关解决方案。

注册到zk的IP错误

登录dubbo-admin查看注册到zk的信息,发现为容器的IP,造成服务不可用。

在这里插入图片描述

通过阅读Dubbo源码我们得知注册到zk的IP和port的获取规则,源码位置如下:

org.apache.dubbo.config.ServiceConfig#findConfigedHosts
org.apache.dubbo.config.ServiceConfig#findConfigedPorts

那么我们可以在deploy.yaml中指定IP,以及在配置文件中指定port的方式解决该问题。

spec:
  template:
      containers:
        - env:
            - name: DUBBO_IP_TO_REGISTRY
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: status.hostIP
## dubbo 配置 start
dubbo.application.name = dubbo-demo-provide
dubbo.application.owner = programmer
dubbo.application.organization = dubbo
dubbo.application.parameters.qos.enable = false
dubbo.application.parameters.qqos.accept.foreign.ip = false
dubbo.registry.address = zookeeper://127.0.0.1:2181
dubbo.registry.timeout = 30000
dubbo.metadata-report.address = zookeeper://127.0.0.1:2181
dubbo.metadata-report.timeout = 30000
## 配置dubbo连接池
dubbo.protocols.dubbo.name = dubbo
dubbo.protocols.dubbo.port = 28888
dubbo.protocols.dubbo.dispatcher = all
dubbo.protocols.dubbo.threads = 800
dubbo.protocols.dubbo.accepts = 1000
dubbo.protocols.dubbo.accesslog = true
## 配置rest连接池,restful风格,由resteasy实现
dubbo.protocols.rest.name = rest
dubbo.protocols.rest.server = tomcat
dubbo.protocols.rest.port = 8888
dubbo.protocols.rest.contextpath = dubbo-provide-service
dubbo.protocols.rest.threads = 800
dubbo.protocols.rest.accepts = 1000
dubbo.protocols.rest.accesslog = true
## dubbo 配置 end

service.yaml中进行如下配置

spec:
  ports:
    - name: dubbo-rest
      port: 8888
      targetPort: 8888
      nodePort: 8888
    - name: dubbo-rpc
      port: 28888
      targetPort: 28888
      nodePort: 28888
    - name: http
      port: 8880
      targetPort: 8880
      nodePort: 8880
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值