Kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线,所 有 topic 的分区副本分配和 leader 选举等工作。Controller 的管理工作都是依赖于 Zookeeper 的。
在Kafka集群(Cluster)中,一个Kafka节点就是一个Broker,消息由Topic来承载,可以存储在1个或多个Partition中。发布消息的应用为Producer、消费消息的应用为Consumer,多个Consumer可以促成Consumer Group共同消费一个Topic中的消息。
文章主要介绍以docker容器的方式部署kafka集群。上述配置文件中的server.x,数字x对应到data/myid文件中的值。三台机器x的值分别就是1,2,3。参数详细说明请参考 官网文档 。
kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。
ApacheKafka是一套开源的消息系统,它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式,分区化,可复制的提交日志服务。现在,LinkedIn公司有三个同事离职创业,继续开发kafka。
可以是服务器集群,比如:底层服务器虚拟化,各个节点组成的集群。也可以是应用程序,比如一个web网站,部署多个节点,通过nginx去配置反向代理,这也是一个集群。又或者是redis、zookeeper、kafka等都可以部署集群模式。
由于最近项目要上腾讯云,不得不对腾讯云CKafka进行压测,评估kafka的处理性能是否满足项目需求。
简的回答是:适合。详细的回答是:根据你的应用和具体的虚拟机来决定。比较直观的一个场景是,在云服务器上做性能测试。所有的云端机器比如EC2,都是虚拟机,只要用了云,就跟底层硬件说再见了。