`

服务注册不上zookeeper中心(Will not attempt to authenticate using SASL (unknown error) )

 
阅读更多

1,错误现象:

 

service日志正常启动,唯一的问题是没有注册上zookeeper,看service日志,发现如下错误

 

错误日志 

 

[2019-11-06 02:44:22,894] INFO [ZooKeeper] Initiating client connection, connectString=192.168.1.83:2181,192.168.1.84:2181,192.168.1.85:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@6d2d99fc

[2019-11-06 02:44:22,902] INFO [X509Util] Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation

[2019-11-06 02:44:22,912] INFO [ClientCnxnSocket] jute.maxbuffer value is 4194304 Bytes

[2019-11-06 02:44:22,923] INFO [ClientCnxn] zookeeper.request.timeout value is 0. feature enabled=

[2019-11-06 02:44:22,937] INFO [ClientCnxn] Opening socket connection to server 192.168.1.83/192.168.1.83:2181. Will not attempt to authenticate using SASL (unknown error)

[2019-11-06 02:44:22,949] INFO [ClientCnxn] Socket connection established, initiating session, client: /10.10.134.11:16505, server: 192.168.1.83/192.168.1.83:2181

[2019-11-06 02:44:22,962] INFO [ClientCnxn] Session establishment complete on server 192.168.1.83/192.168.1.83:2181, sessionid = 0x16e0e76b9c20047, negotiated timeout = 40000

[2019-11-06 02:44:22,975] INFO [ConnectionStateManager] State change: CONNECTED

 

都是info日志,仔细看,看出来,注册没有成功,链接超时了

尤其是这一句 

Opening socket connection to server 192.168.1.83/192.168.1.83:2181. Will not attempt to authenticate using SASL (unknown error)

2,问题分析

 

1)  因为这一句

 

Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation

一开始怀疑jdk有问题,service依赖的jdk1.8 而zookeeper 3.4.8 应该是1.7的,所以不支持,所以换jdk,但是仍然有问题,最开始搜

 

 

2)那就怀疑其他问题了,

 

Opening socket connection to server 192.168.1.83/192.168.1.83:2181. Will not attempt to authenticate using SASL (unknown error)

那就是跟zookeeper的集群不知什么原因没有建立链接,而且超时了,

 

参考文章https://stackoverflow.com/questions/29056195/not-attempt-to-authenticate-using-sasl-unknown-error

 

继续搜索,发现网上有体到maxClientCnxns这个参数的事情,而

默认zookeeper给每个客户端IP使用的连接数为10个,经常会出现连接不够用的情况。修改连接数目前好像只支持zoo.cfg配置文件修改,所以需要zookeeper重启才能生效。

 

而83机器的zoo.cfg配置中maxClientCnxns=60 根本没有放开

 

zoo.cfg 

 

# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60

 

3)另外得知 service的机器134.11上已经布置了另一台service,应该是连接数被占用满了,另外集群83,84,85上也看到同134.11建立的tcp连接(netstat -an|grep 2181)

 

 

 

3,解决办法

 

       将交易的service服务,布置到另外一台没有任何应用的机器上,启动,成功!

 

4,总结

 

      这次看zoo.cfg发现两个漏洞

 

      1)maxClientCnxns这个参数没有放开,可以放开,重启zookeeper,考虑到重启zookeeper风险会比重启一个应用的风险大,就没有重启

 

      2)zookeeper.out 文件日志量太大,需要定期清理 

 

5,zoo.cfg 模块分析

 

zoo.cfg分析 

 

# The number of milliseconds of each tick 单位毫秒,默认3000,可以不配置,不支持系统属性方式配置

参数tickTime用于配置zookeeper中最小时间单元的长度,很多运行时的时间间隔dou'shidoushi 使用tickTime的倍数来表示的

例如:zookeeper的最小超时时间默认为2*tickTime

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

表示tickTime值的十倍,用于配置leader服务器等待Follower启动,并完成数据同步的时间。Follower服务器在启动的过程中,会与Leader建立连接并

完成数据的同步,从而确定自己对外提供服务的起始状态,Leader服务器允许Follwer在initLimit时间内完成这个工作,一般不需要关注,如果集群数量太大,同步时间也会太长,担心时间不够,可以适当修改参数

一般不需要调大这个参数

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

用于配置Leader服务器和Follwer之间进行心跳检测的最大延迟时间,如果网络质量较低,可以适当调大这个参数

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes. 快照文件的目录

dataDir=/zookeeper/data

#事务文件文件的目录

dataLogDir=/zookeeper/log

# the port at which the clients will connect

服务器对外端口

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#默认60 从socket层面限制单个客户端与单台服务器之间的连接并发数,即从IP地址粒度来进行连接数的限制,如果为0,代表不限制

#3.4.0 之前默认为10,3.4.0版本开始变成60

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#从3.4.0 开始zookeeper提供了支持对历史事务日志和快照数据自动清理的支持,<3 会自动调整到3

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#单位是小时,跟autopurge.snapRetainCount 配套使用,如果为0,代表不开启定时清理功能

#autopurge.purgeInterval=1

#集群列表

server.1=slave-01:2888:3888

server.2=slave-02:2888:3888

server.3=slave-03:2888:3888

 

 

分享到:
评论

相关推荐

    Kafka 使用

    简介 Zookeeper搭建 bin/zkServer.sh start ... Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn) [2020-02-19 14:58:13,672] WARN Session 0x0 for serve

    zookeeper-3.4.14.jar

    解决Opening socket connection to server 172.31.0.3/172.31.0.3:2181. Will not attempt to authenticate using SASL (unknown error)

    zookeeper注册中心下载

    在你提供的信息中,“zookeeper注册中心下载”指的是获取ZooKeeper的安装包,这个安装包通常是一个`.war`文件,用于部署在Web服务器上,比如Tomcat。以下是对这一过程的详细说明: 1. **下载ZooKeeper**:首先,你...

    zookeeper在线注册服务查看工具

    3. **清理服务**:在测试环境中,可能需要定期清理Zookeeper中的服务注册信息,此工具能帮助开发者快速完成这一操作,便于重新部署或测试。 4. **调试代码**:在开发过程中,实时查看服务注册和状态变化有助于调试...

    SpringCloud——Zookeeper(注册中心)

    在分布式系统中,服务注册与发现是至关重要的一个环节,SpringCloud通过集成不同的注册中心,如Eureka、Consul和Zookeeper,为微服务架构提供了强大的支持。本篇主要聚焦于SpringCloud与Zookeeper的结合,讲解如何...

    Dubbo无法访问远程Zookeeper已注册服务的问题解决方案

    Dubbo无法访问远程Zookeeper已注册服务的问题解决方案 在使用Dubbo框架时,可能会遇到无法访问远程Zookeeper已注册服务的问题。今天,我们将分享一篇关于Dubbo无法访问远程Zookeeper已注册服务的问题解决方案。 ...

    ZooKeeper3.4.6-注册中心安装步骤及安装包

    **ZooKeeper 3.4.6:注册中心的安装指南** ZooKeeper是一个高度可靠的分布式协调服务,常被用于管理分布式系统中的命名空间、配置信息以及提供集群同步。在3.4.6版本中,它继续提供稳定性和性能优化。本指南将详细...

    5、zookeeper的java -Curator(服务注册与发现)

    在Java环境中,Curator是一个优秀的Zookeeper客户端库,简化了与Zookeeper的交互,包括服务注册与发现。本文将深入探讨如何利用Curator实现这一功能。 首先,Curator提供了一套完整的API来抽象服务注册与发现,包括...

    ZooKeeper注册中心安装详细步骤

    ZooKeeper注册中心安装详细步骤

    Java-zookeeper实践代码(分布式锁/注册中心)

    在压缩包`zookeeperCase`中,可能包含了实现这些功能的Java代码示例,包括创建Zookeeper客户端连接、创建和删除ZNode、监听节点变化、实现分布式锁逻辑以及服务注册和发现的相关类。通过学习和分析这些代码,可以...

    基于zookeeper注册发现服务的springbootDemo

    1. **服务注册**:每个微服务实例启动时,会将自己的元数据(如服务名、IP地址、端口等)注册到Zookeeper上。这通常通过SpringCloud Zookeeper的客户端实现,服务实例向Zookeeper的指定节点(如/serviceregistry)...

    分布式框架Zookeeper之服务注册与订阅

    本篇文章将深入探讨Zookeeper在服务注册与订阅中的核心概念和实现机制。 一、Zookeeper服务注册 1. Zookeeper节点模型:Zookeeper的数据结构是一棵树,由节点(ZNode)组成。每个ZNode可以存储数据,并且可以有子...

    zookeeper-3.5.4windows服务注册包

    Zookeeper-3.5.4Windows服务注册包是为了解决在Windows操作系统上部署Zookeeper时,需要手动启动服务的问题而特别设计的。这个注册包允许用户将Zookeeper作为Windows服务来安装,实现自动启动和管理,极大地提高了...

    zookeeper-3.4.6_zookeeper_

    在描述“注册中心 zookeeper-3.4.6”中,关键词“注册中心”揭示了Zookeeper在分布式系统中的核心作用。它作为一个中心化的服务管理平台,能够帮助分布式应用进行服务发现、配置管理、负载均衡等操作。Zookeeper在...

    Zookeeper单节点注册中心

    例如,它可以作为微服务架构中的注册中心,帮助服务实例相互发现和通信;也可以用来管理分布式应用的配置,当配置发生变更时,能够实时通知所有相关节点;此外,Zookeeper的分布式锁功能可以解决多节点并发访问同一...

    Dubbo zookeeper注册中心文档

    Dubbo作为一个广泛使用的高性能、轻量级的微服务框架,通常选择Zookeeper作为其服务注册中心。Zookeeper不仅能够提供高可用的服务注册与发现功能,还能实现对服务实例的动态管理。 #### 二、Zookeeper简介 ...

    zookeeper解压版安装包

    Zookeeper作为Dubbo的服务注册中心,可以让服务提供者将服务注册到Zookeeper上,同时服务消费者可以从Zookeeper获取服务提供者的地址信息。 2. **配置Dubbo**:在Dubbo的应用中,需要配置Zookeeper的地址,并指定...

    dubbo+zookeeper实现服务注册发现 dubbo+nacos实现服务注册发现

    在分布式系统中,服务注册与发现是至关重要的一个环节,它允许服务提供者将自己的服务注册到一个中心化的服务中心,而服务消费者则可以通过这个服务中心来发现并调用所需的服务。本篇将详细介绍如何使用Dubbo结合...

    ZooKeeper3.4.9 windos和linux

    5.2 服务发现:通过ZooKeeper注册和查找服务,实现服务的动态发现和负载均衡。 5.3 配置管理:集中存储和更新分布式系统的配置,保证所有节点同步。 六、ZooKeeper的安全性 6.1 ACL:ZooKeeper提供了基于角色的...

Global site tag (gtag.js) - Google Analytics