the beanstalkd client of java be based netty4
beanstalk4j是beanstalkd的java版本的客户端,基于netty4开发,作为消息中间件,分为消息提供者provider和消息消费者consumer,为了简便,beanstalkd中
的每个tube对应netty中的一个channel
消息提供者示例:
Set<String> servers = new HashSet<>();
servers.add("192.168.209.132:11300");
servers.add("192.168.209.133:11300");
servers.add("192.168.209.134:11300");
BeanstalkProvider provider1 = new DefaultBeanstalkProvider(servers, "beanstalks1");
long id = provider1.put(1024, 0, 3600, ("beanstalks1 test" + i).getBytes("UTF-8"));
...
provider1.quit();
消息消费者:
Set<String> servers = new HashSet<>();
servers.add("192.168.209.132:11300");
servers.add("192.168.209.133:11300");
servers.add("192.168.209.134:11300");
BeanstalkConsumer consumer1 = new DefaultBeanstalkConsumer(servers, "beanstalks1");
while (true) {
Job job = consumer1.reserve(500L);
}
...
consumer1.quit();
无论是消息提供者还是消息消费者,最后都需要调用quit()用来释放资源。
使用AIO实现了beanstalk协议,操作方式同netty4的实现方式。 消息提供者示例:
Set<String> servers = new HashSet<>();
servers.add("192.168.209.132:11300");
servers.add("192.168.209.133:11300");
servers.add("192.168.209.134:11300");
BeanstalkProvider provider1 = new AioBeanstalkProvider(servers, "beanstalks1_aio");
...
provider1.quit();
消息消费者示例:
Set<String> servers = new HashSet<>();
servers.add("192.168.209.132:11300");
servers.add("192.168.209.133:11300");
servers.add("192.168.209.134:11300");
BeanstalkConsumer consumer1 = new AioBeanstalkConsumer(servers, "beanstalks1_aio");
...
consumer1.quit();