springboot对接dubbo遇到的巨坑

news/2024/9/28 1:21:38

1、添加配置jar包

 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.4.1</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-actuator</artifactId><version>2.7.4.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.8.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>2.8.0</version></dependency>

说明:不同的springboot版本对应的dubbo版本以及 dubbo-spring-boot-starter 版本是不一样的,需要上GitHub上去查找对应的关系

2、添加dubbo配置

dubbo:protocol:name: dubboport: 20888 协议端口号,消费者的协议端口号可随意配置registry:address: zookeeper:2181?timeout=60000protocol: zookeeperapplication:name: diagnosis_gasid: diagnosis_gasscan:base-packages: cc.eslink  服务提供方所在的包位置

 

3、巨坑-服务消费者获取不到服务提供者提供的服务

3.1 如图,dubbo-admin可以查找的服务

说明:机器显示的IP 和端口,是服务提供者实际的IP地址和暴露的服务,并非是注册中心Zookeeper的地址,这个地址就是服务提供方注册到

zookeeper上的地址,zookeeper会通过该地址寻找服务。

3.2 注册的地址是内网地址还是外网地址

说明:注册的地址是内网地址,dubbo注册服务默认都是内网地址,若要让注册的服务是外网地址,需要修改hosts映射的地址,一般服务器映射的都是

内网地址,这里可以改成外网地址,这样注册的就是外网地址

3.3 为什么服务访问不到

说明:当消费者去消费服务的时候,通过外网地址连接到zookeeper上,zookeeper去查找提供的服务,但是提供的服务是内网地址,没法和消费者

建立连接,服务是不通的,所以没法提供服务

3.4 怎么解决消费不到的情况

1、把hosts内网地址,改成外网地址,这样暴露的服务就是外网地址,我们通过外网就可以访问了

2、服务提供者和消费者都在同一台服务器上,这样内网之间的网络是通的,也是可以进行访问的

 参考博客:https://blog.51cto.com/u_12270378/2809505


4、巨坑-zk明明可以ping通,但是就是连接不上

说明:zookeeper的外网地址,是可以ping通的,且端口也是可以通信的,但是就是连接不上

原因:zookeeper的默认超时时间是5毫秒,时间太短了,还没连接上就端口了

方法:配置zookeeper连接的时候,带上超时时间

如下:address="zookeeper://106.75.177.44:2181?timeout=600000"

参考博客:https://zhuanlan.zhihu.com/p/343204228

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65012.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

一款高性价比4g工业路由器,配置简单,网络覆盖强

​各位老铁,今天给大家介绍一下SR600这款工业级4G路由器。这玩意儿是专门为工业环境设计的,比如说化工厂、矿场这种恶劣环境,普通路由器根本扛不住。先说说SR600的硬件配置:处理器: 工业级CPU,厂家没透露具体型号,但性能够用内存: 128MB,满足工业控制需求存储: 16MB Flash,可扩…

VS Code 的SSH连接不成功问题分析与解决

问题描述:多次输入密码,一直连接不上 解决方法; 打开远程服务器中~/.vscode-server/bin/xxx文件夹,此时可以看到一个名为vscode-server.tar.gz,截图如下:上面的37开头的文件夹称为Commit Id,现在利用Commit ID下载远程连接需要的文件。使用这个链接: https://update.cod…

WindowSystemEvent

Qt中为WindowSystemEvent事件定义了处理函数Handler,通过宏定义和模版来声明定义 ---- QT_DEFINE_QPA_EVENT_HANDLER Matches (25 in 1 files) ---- qwindowsysteminterface.cpp (gui\kernel) line 199 : #define QT_DEFINE_QPA_EVENT_HANDLER(ReturnType, HandlerName, ...) …

基础数据结构之递归

递归 1) 概述 定义 计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same probl…

JAVA的数组基本用法

array 在声明数组变量时,需要指出数组类型和数组变量名,例如int[] a;不过这条语句只是声明了变量a,并没有将a初始化为一个真正的数组。应该使用new操作符来创建数组。 int[] a = int[100]或者var a = new int[100]数组长度不要求是常数 但是一旦创建了数组,就不能再改变它的…

Unity DatePicker用法,实现UI的日期/时间选择器功能

前言 用Unity3d做一个类似于选时间段,查询数据并展示统计UI的功能 插件 https://assetstore.unity.com/packages/tools/gui/datepicker-for-unityui-68264 样例效果 弹出日期选择器时间范围选择器包含类型 Shared Calendar 共享的日历,这个就是几个选择器共用一个日历来选择时…

正三棱台

正三棱台的相关知识点前情概要 正三棱台的概念,表面积,体积公式,引申 动态演示结合上图,你能说出正三棱台的各部分的名称吗?你能自行画出正三棱台的图形吗? 典例剖析 【2025届高三质检一试题】已知正三棱台 \(ABC-A_1B_1C_1\) 的上底面积为 \(\sqrt{3}\),下底面积为 \(4…

【VMware vCenter】升级到 vCenter Server 8.0 U3b 后 vSphere Client 出现卡死和不响应等问题的解决方法。

最近 VMware 发布了 VMSA-2024-0019 安全通告,更新并修复了 CVE-2024-38812 和 CVE-2024-38813 编号中发现的 vCenter Server 漏洞,可能很多人都已经更新了,我也将自己的实验环境更新到了说明中所修复的版本,vCenter Server 8.0 U3b,内部版本号 24262322。但是,更新之后使…