导航:首页 > 异常信息 > dubbo连接zk网络不通

dubbo连接zk网络不通

发布时间:2022-06-23 12:37:14

‘壹’ bbo使用zookeeper连接,zookeeper宕机后怎么处理

1,配置文件同步2,主从切换3,分布式队列4,分布式锁5,其他在以前的文章里面有写过使用zookeeper原生的api,监听zk节点变化,那么本篇我们就来看下,如何使用curator来完成监听,代码如下:packagecomqincuratorzk;importjavaxsoundmidibbo使用zookeeper连接,zookeeper宕机后怎么处理

‘贰’ bbo服务端注册到zookeeper是长连接吗

是的。

Dubbo协议:采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,在大文件传输时,单一连接会成为瓶颈

‘叁’ bbo 怎么决定连接zookeeper集群

bbo可以有多中发布模式,广播、redis、zookeeper等形式,如果确定使用使用zookeeper做注册中心,做如下配置即可:

<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:bbo="http://code.alibabatech.com/schema/bbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/bbo
http://code.alibabatech.com/schema/bbo/bbo.xsd">
<!--bbo应用此处根据服务端和消费端自行配置-->
<bbo:applicationname="${bbo.application.name}"owner="${bbo.owner}"organization="${bbo.organization}"/>
<!--bbo注册中心此处服务端和消费端相同配置即可-->
<bbo:registryid="zookeeperRegistry"protocol="zookeeper"address="172.21.108.111:2181"timeout="${registry.timeout}"/>
<!--bbo服务使用的协议-->
<bbo:protocolname="bbo"port="${bbo.port}"/>
<!--bbo服务提供者先关配置参数protocol设置使用的协议消费端无效-->
<bbo:providerdelay="-1"protocol="zookeeper"timeout="${bbo.timeout}"retries="3"></bbo:provider>
<!--bbo服务发布-->
<bbo:serviceinterface="com.xxx.queues.sdk.service.QueueMessageService"
ref="queueMessageService"
owner="${bbo.owner}"
version="${bbo.version}"
protocol="${bbo.protocol}"
registry="zookeeperRegistry"此处配置和bbo:registryid相同
delay="-1"/>
</beans>

‘肆’ 生产者启动成功了,为什么zk里没有bbo这个目录

现在一般能打开64个。 文件描述符的范围是0 ~ O P E N _ M A X 。早期的U N I X版本采用的上限值是1 9 (允许每个进程打开2 0个文件),现在很多系统则将其增加至6 3。

‘伍’ bbo使用zookeeper连接,zookeeper宕机后怎么处理

zookeeper宕机后,因为消费者会缓存提供者的信息,所以应用不会有问题。但是,此时提供者和消费者都无法重连zookeeper,因为bbo貌似配置的zkclient不会重连zookeeper,所以一旦重启一台服务提供者,那么这台就从服务消费者的缓存中消失了,此时服务消费者又连不上zookeeper,所以如果同时重启,消费者就没有提供者可用了,所以只能重启一台提供者后,再重启一个消费者,交错重启。

‘陆’ 为什么bbo使用zkclient作为zookeeper的客户端

本文内容并非原创,使用资料均来自互联网。
bbo使用了zkClient而不是使用zookeeper本身的客户端与zookeeper进行交互,为什么呢?
先看看zookeeper本身自带的客户端的问题。
1 ) ZooKeeper的Watcher是一次性的,用过了需要再注册;
2 )
session的超时后没有自动重连,生产环境中如果网络出现不稳定情况,那么这种情况出现的更加明显;
3

没有领导选举机制,集群情况下可能需要实现stand by,一个服务挂了,另一个需要接替的效果;
4
) 客户端只提供了存储byte数组的接口,而项目中一般都会使用对象。

5 )客户端接口需要处理的异常太多,并且通常,我们也不知道如何处理这些异常。
I0Itec这个zookeeper客户端基本上解决了上面的所有问题,主要有以下特性:
1) 提供了zookeeper重连的特性------能够在断链的时候,重新建立连接,无论session失效与否.
2) 持久的event监听器机制------ ZKClient框架将事件重新定义分为了stateChanged、znodeChanged、dataChanged三种情况,用户可以注册这三种情况下的监听器(znodeChanged和dataChanged和路径有关),而不是注册Watcher。
3) zookeeper异常处理-------zookeeper中繁多的Exception,以及每个Exception所需要关注的事情各有不同,I0Itec简单的做了封装.
4) data序列化------简单的data序列化.(Serialzer/Deserialzer)
5)有默认的领导选举机制
请注意使用I0Itect-zkClient暂时有几个方法仍需要重写:
1) create方法 : 创建节点时,如果节点已经存在,仍然抛出NodeExistException,可是我期望它不在抛出此异常.
2) retryUtilConnected : 如果向zookeeper请求数据时(create,delete,setData等),此时链接不可用,那么调用者将会被阻塞直到链接建立成功;不过我仍然需要一些方法是非阻塞的,如果链接不可用,则抛出异常,或者直接返回.
3) create方法 : 创建节点时,如果节点的父节点不存在,我期望同时也要创建父节点,而不是抛出异常.
4) data监测: 我需要提供一个额外的功能来补充watch的不足,开启一个线程,间歇性的去zk server获取指定的path的data,并缓存起来..归因与watch可能丢失,以及它不能持续的反应znode数据的每一次变化,所以只能手动去同步获取。

阅读全文

与dubbo连接zk网络不通相关的资料

热点内容
网络共享中心没有网卡 浏览:547
电脑无法检测到网络代理 浏览:1403
笔记本电脑一天会用多少流量 浏览:692
苹果电脑整机转移新机 浏览:1398
突然无法连接工作网络 浏览:1154
联通网络怎么设置才好 浏览:1257
小区网络电脑怎么连接路由器 浏览:1133
p1108打印机网络共享 浏览:1235
怎么调节台式电脑护眼 浏览:787
深圳天虹苹果电脑 浏览:1022
网络总是异常断开 浏览:639
中级配置台式电脑 浏览:1087
中国网络安全的战士 浏览:656
同志网站在哪里 浏览:1448
版观看完整完结免费手机在线 浏览:1481
怎样切换默认数据网络设置 浏览:1137
肯德基无线网无法访问网络 浏览:1326
光纤猫怎么连接不上网络 浏览:1567
神武3手游网络连接 浏览:991
局网打印机网络共享 浏览:1020