在Kubernetes中通过环境变量暴露Dubbo服务实现外部访问

这篇博客的主要内容和要点可以包括:

  1. Dubbo服务在Kubernetes中的访问问题:Dubbo服务注册到注册中心的主机信息为Pod内部IP和端口,外部无法访问。

  2. 解决方案:使用环境变量设置Dubbo服务注册和绑定的IP和端口信息, nodePort设置为与环境变量相同的端口,实现外部访问流量转发至Dubbo服务。

  3. 环境变量说明:

  • DUBBO_IP_TO_REGISTRY:获取Pod节点IP,用于服务注册中心注册
  • DUBBO_PORT_TO_REGISTRY:定义注册中心注册端口,如30001
  • DUBBO_PORT_TO_BIND:定义服务对外提供服务的绑定端口,如30001
  1. 使用方法:
  • 设置Dubbo服务Deployment中的环境变量
  • Dubbo服务启动时使用环境变量中的信息注册至注册中心
  • Dubbo服务监听DUBBO_PORT_TO_BIND端口
  • Service对象nodePort设置为环境变量端口,实现外部流量转发
  1. 方案优点:
  • 不依赖语言或框架,通用方案
  • 简单易操作,设置环境变量和Service即可
  • 高可靠性,环境变量不会因系统变化而变化

这里是对这三个环境变量的注释和使用方法说明:

# 获取Pod所在节点的IP,并赋值给DUBBO_IP_TO_REGISTRY变量
- name: DUBBO_IP_TO_REGISTRY  
  valueFrom: 
    fieldRef: 
      fieldPath: status.hostIP 

# 手动设置DUBBO_PORT_TO_REGISTRY变量的值为30001,这个端口是服务在注册中心进行注册的端口
- name: DUBBO_PORT_TO_REGISTRY  
  value: "30001"  

# 手动设置DUBBO_PORT_TO_BIND变量的值为30001,这个端口是服务实际对外提供服务的端口 
- name: DUBBO_PORT_TO_BIND
  value: "30001" 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
暴露Dubbo服务的入口是在ServiceConfig的export()方法。在该方法,主要进行了三件事情:配置的校验和更新、暴露服务、分发服务暴露事件。具体来说,通过调用export()方法,可以将Dubbo服务暴露到本地JVM和远程两个范围内。 首先,Dubbo会进行服务的配置校验和更新。接着,Dubbo会根据配置的scope属性来确定服务暴露范围,其"none"表示不暴露服务,"local"表示仅暴露到本地JVM,"remote"表示暴露到远程。默认情况下,Dubbo会同时暴露到本地JVM和远程。 接下来,Dubbo会进行服务的本地暴露。在本地暴露阶段,Dubbo会根据URL的协议加载对应的Protocol实现,以Dubbo协议为例,对应的是DubboProtocol的export方法。在该方法Dubbo会创建DubboExporter对象,并将其存入exporterMap。此Dubbo还会开启服务以供Consumer调用。 综上所述,对暴露Dubbo服务的过程可以通过ServiceConfig的export()方法实现。在该方法Dubbo会进行配置的校验和更新、服务暴露以及分发服务暴露事件。同时,Dubbo会根据配置的scope属性来确定服务暴露范围,并根据URL的协议加载对应的Protocol实现进行服务的本地暴露。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Dubbo服务暴露流程](https://blog.csdn.net/qq_32099833/article/details/121863474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值