最进学习了kafka 的消息队列机制,参考尚硅谷和网上的教程,对kafka的做简单的使用和封装,现在记录如下:
kafka是在企业开发中很常见的消息队列实现(消息队列的模式使得通信的双方从关注通信的过程中解放出来,消息队列中的一些常见的好处包括但是不限于:解耦,缓冲,异步通信,容错等等),kafka一般用于缓存数据,这是一个分布式的消息队列。联系生产者(producer)和消费者(consumer)之间的是topic,集群中的实例(服务器)被称为broker。无论是集群还是消费者他们都需要使用zookeeper。
几个概念:
producer
consumer
broker
partition
topic
consumer Group
offset
对一个kafka模块进行的封装的应该从开发的需要出发,将一些常用的重复性的工作进行封装或者对kafka本身提供的操作进行二次的封装:
一些简单的技巧是将生产者和消费者分别进行封装,这两个子模块在分成客户端和配置文件两个部分。
生产者写入流程可以表示成入如下的图:
一个生产者客户端的封装过程如下:
封装一个自定义的config对象,其实是对java.util.Properties封装,这个类对象中一般来说需要设置的参数有:
- kafka集群的地址
- KEY和VALUE的序列化方法
- ACK机制,
其余的一般来说作为优化的对象
写法一:
Properties props = new Properties();
//设置kafka集群的地址
props.put("bootstrap.servers", "hadoop01:9092,hadoop02:9092,had