ZooKeeper 관련 오류 해결
15473 단어 중간부품
오류
1.1, 오류 설명
ZooKeeper Server(FOLLOWER 및 LEADER)의 로그에 다음과 같은 오류가 표시됩니다.
2016-05-14 15:33:01,818 [myid:2] - ERROR [CommitProcessor:2:NIOServerCnxn@178] -
Unexpected Exception:
java.nio.channels.CancelledKeyException
at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55)
at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59)
at org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.ja
va:151)
at org.apache.zookeeper.server.NIOServerCnxn.sendResponse(NIOServerCnxn.
java:1081)
at org.apache.zookeeper.server.FinalRequestProcessor.processRequest(Fina
lRequestProcessor.java:170)
at org.apache.zookeeper.server.quorum.CommitProcessor.run(CommitProcessor.java:74)
1.2, 오류 원인 분석
ZooKeeper Server에서 응답을 보낼 때 Socket 연결이 종료되었습니다.
1.3, 오류 해결
ZooKeeper Server에서 응답을 보낼 때 sk.isValid() 판단을 추가합니다.이상은 ZooKeeper 3.4.8 버전에서 수정된 버그입니다.
1.4, 기타
이 오류는 "ZooKeeper를 사용하여 MQ 주소 체계를 가져오기"전에 존재합니다.
오류
2.1, 오류 설명
ZooKeeper Server("FOLLOWER") 로그에 다음과 같은 오류가 표시됩니다. 이 오류가 발생하면 "FOLLOWER"인 ZooKeeper Server가 한동안 작업을 중지합니다.
2016-05-15 04:04:40,569 [myid:1] - WARN [SyncThread:1:FileTxnLog@334] - fsync-ing the write ahead log in SyncThread:1 took 2243ms which will adversely effect operation latency. See the
ZooKeeper troubleshooting guide
2016-05-14 15:32:50,764 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Follower@89] - Exception when following the leader
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
at org.apache.zookeeper.server.quorum.QuorumPacket.deserialize(QuorumPacket.java:83)
at org.apache.jute.BinaryInputArchive.readRecord(BinaryInputArchive.java:103)
at org.apache.zookeeper.server.quorum.Learner.readPacket(Learner.java:153)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:85)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:786)
2016-05-14 15:32:50,764 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Follower@166] - shutdown called
java.lang.Exception: shutdown Follower
at org.apache.zookeeper.server.quorum.Follower.shutdown(Follower.java:166)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:790)
해당 ZooKeeper Server(LEADER) 로그에는 다음과 같은 오류가 표시됩니다.
2016-05-14 15:32:42,605 [myid:3] - WARN [SyncThread:3:FileTxnLog@334] - fsync-i
ng the write ahead log in SyncThread:3 took 3041ms which will adversely effect o
peration latency. See the ZooKeeper troubleshooting guide
2016-05-14 15:32:50,764 [myid:3] - WARN [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:218
1:LearnerHandler@687] - Closing connection to peer due to transaction timeout.
2016-05-14 15:32:50,764 [myid:3] - WARN [LearnerHandler-/10.110.20.23:39390:Lea
rnerHandler@646] - ******* GOODBYE /10.110.20.23:39390 ********
2016-05-14 15:32:50,764 [myid:3] - WARN [LearnerHandler-/10.110.20.23:39390:Lea
rnerHandler@658] - Ignoring unexpected exception
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterrup
tibly(AbstractQueuedSynchronizer.java:1199)
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantL
ock.java:312)
at java.util.concurrent.LinkedBlockingQueue.put(LinkedBlockingQueue.java
:294)
at org.apache.zookeeper.server.quorum.LearnerHandler.shutdown(LearnerHan
dler.java:656)
at org.apache.zookeeper.server.quorum.LearnerHandler.run(LearnerHandler.
java:649)
2.2 오류 원인 분석
"FOLLOWER"가 "LEADER"와 동기화할 때 fsync 작업 시간이 너무 길어서 시간을 초과합니다.
2.3 오류 해결
'tickTime'이나'initLimit과syncLimit'의 값을 늘리거나 둘 다 증가합니다.
2.4, 기타
이 오류는 온라인에서 "ZooKeeper를 사용하여 MQ 주소 방안을 가져오기"전에도 존재했습니다. 단지 이렇게 높은 주파수는 없었을 뿐입니다. "ZooKeeper를 사용하여 MQ 주소 방안을 가져오기"를 시작하면서 ZooKeeper 서버 간의 동기화 데이터량이 증가하고 ZooKeeper 서버의 부하가 가중되어 결국 높은 주파수로 인해 상기 오류가 발생했습니다.
참고 문헌: [1]https://mail-archives.apache.org/mod_mbox/zookeeper-dev/201602.mbox/%3CJIRA.12743135.1411381021000.319520.1454726679959@Atlassian.JIRA%3E [2]https://issues.apache.org/jira/browse/ZOOKEEPER-1237
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
koa2 데이터api 중간부품 디자인 모델의 실현 방법모든 데이터베이스 읽기를 가정하면 httpapi 인터페이스 요청은 하나의 중간부품으로 중간부품을 플러그인으로 삼아 데이터를 얻을 위치를 삽입합니다. api.js db.js 직렬 연결 app.js 보기에는 매우 조화롭...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.