Apache kafka是分布式发布-订阅消息系统。
与传统的消息系统相比,具有以下特点:
·它被设计为一个分布式系统,易于向外扩展
·它同时为发布和订阅提供高吞吐量
·支持多订阅者,失败时能自动平衡消费者
·消息持久化
架构
它的架构包括以下组建:
·话题(topic)是特定类型的消息流。消息是字节的有效负载,话题是消息的分类名。
·生产者(producer)是能够发送消息到话题的任何对象。
·已发布的消息保存在一组服务器中,他们被成为代理(Broker)或者kafka集群。
·消费者可以订阅一个或多个话题,并从broker拉数据,从而消费这些已发布的消息。
生产者可以选择自己喜欢的方法对消息内容编码。为了提高效率,生产者可以在一个发送请求中发布一组数据。
创建生产者并发送消息的事例代码
producer=new Producer(...);
message=new Message("test message".getBytes());
set=new MessageSet(message);
producer.send("topic1",set);
消费者示例代码
streams[] = Consumer.createMessageStreams(“topic1”, 1)
for (message : streams[0]) {
bytes = message.payload();
// do something with the bytes
}