Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

一致性哈希是实现类,多个主机端口的远程接口,被注册到一个一致性哈希环上

Aperta
#19 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java

Direzione di ricerca

Start with version3/src/main/java/part1/Client/serviceCenter/balance/impl/ConsistencyHashBalance.java at line 18, focusing on the static SortedMap and how virtual nodes are registered. Reproduce the two-host scenario with UserServiceImpl and OrderServiceImpl, then verify that serial remote calls select the correct interface without a NullPointer or missing implementation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

question

https://github.com/youngyangyang04/RPC-Java/blob/a3c79b111176ab8b84151da63e715993dd126aad/version3/src/main/java/part1/Client/serviceCenter/balance/impl/ConsistencyHashBalance.java#L18
一致性哈希实现类,成员变量声明为static,若两个不同ip:port的主机,主机1注册一个UserServiceImpl,主机2注册一个OrderServiceImpl,如{OrderService->127.0.0.1:9999, UserService->127.0.0.1:4399},此时Client串行请求两个远程调用,有极大概率出现bug,主要原因就是由于声明为static的SortedMap<Integer, String>对象,将两个接口的VN放到了一个"一致性哈希环"上,导致某一个接口因为一致性哈希到了另一个接口上,导致NullPointer,因为负载给出的接口错了,一定是找不到方法的实现类。
不动当前结构,去掉一致性哈希实现类的所有static即可解决,只进行了简单的测试,for(100)是没有测出问题,这样的改进方法应该不是最好的,也不一定是完全没问题的。
123456789

Lingua principale
Java
Stelle
694
Fork
165
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di youngyangyang04/RPC-Java

Tutte le issue di youngyangyang04/RPC-Java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.