diff --git a/net/src/test/java/com/zfoo/net/core/provider/ProviderTest.java b/net/src/test/java/com/zfoo/net/core/provider/ProviderTest.java index bbad811a..126579a9 100644 --- a/net/src/test/java/com/zfoo/net/core/provider/ProviderTest.java +++ b/net/src/test/java/com/zfoo/net/core/provider/ProviderTest.java @@ -39,7 +39,7 @@ public class ProviderTest { * RPC教程: * 1.首先必须保证启动zookeeper * 2.启动服务提供者,startProvider0,startProvider1,startProvider2 - * 3.启动服务消费者,startSyncRandomConsumer,startAsyncRandomConsumer,startConsistentSessionConsumer + * 3.启动服务消费者,startSyncRandomConsumer,startAsyncRandomConsumer,startConsistentHashConsumer, startCachedConsistentHashConsumer * 4.每个消费者都是通过不同的策略消费,注意区别 */ @Test @@ -108,8 +108,8 @@ public class ProviderTest { * 一致性hash算法消费方式 */ @Test - public void startConsistentSessionConsumer() { - var context = new ClassPathXmlApplicationContext("provider/consumer_consistent_session_config.xml"); + public void startConsistentHashConsumer() { + var context = new ClassPathXmlApplicationContext("provider/consumer_consistent_hash_config.xml"); SessionUtils.printSessionInfo(); var ask = new ProviderMessAsk(); @@ -126,4 +126,25 @@ public class ProviderTest { ThreadUtils.sleep(Long.MAX_VALUE); } + /** + * 缓存的一致性hash算法消费方式 + */ + @Test + public void startCachedConsistentHashConsumer() { + var context = new ClassPathXmlApplicationContext("provider/consumer_cached_consistent_config.xml"); + SessionUtils.printSessionInfo(); + + var ask = new ProviderMessAsk(); + ask.setMessage("Hello, this is the consumer!"); + var atomicInteger = new AtomicInteger(0); + + for (int i = 0; i < 1000; i++) { + ThreadUtils.sleep(1000); + NetContext.getConsumer().asyncAsk(ask, ProviderMessAnswer.class, 100).whenComplete(answer -> { + logger.info("消费者请求[{}]收到消息[{}]", atomicInteger.incrementAndGet(), JsonUtils.object2String(answer)); + }); + } + + ThreadUtils.sleep(Long.MAX_VALUE); + } } diff --git a/net/src/test/resources/provider/consumer_consistent_session_config.xml b/net/src/test/resources/provider/consumer_cached_consistent_config.xml similarity index 100% rename from net/src/test/resources/provider/consumer_consistent_session_config.xml rename to net/src/test/resources/provider/consumer_cached_consistent_config.xml diff --git a/net/src/test/resources/provider/consumer_consistent_hash_config.xml b/net/src/test/resources/provider/consumer_consistent_hash_config.xml new file mode 100644 index 00000000..f319ebf2 --- /dev/null +++ b/net/src/test/resources/provider/consumer_consistent_hash_config.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + +