胜博发娱乐

首页 > 正文

『互联网架构』kafka集群搭建和使用(117)

www.cn-ee.net2019-07-27
?

  原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

  原文链接地址:『互联网架构』kafka集群原理(117)

  之前主要是理论说了kafka的原理,kafka相关的三个比较重要的配置文件server,consumer,Producer的详细配置,以及kafka消息的存储形式,主要是保存在zookeeper上。应该按照之前的文档单实例的kafka都搭建成功了。这次主要说说集群的搭建。

  源码:源码/『互联网架构』kafka集群搭建和使用(117)

  

  (一)kafka集群的搭建

  查看主题

  

  搭建集群

  单个节点挂了就挂了,为了让项目高可用必须搭建多节点。在生产环境肯定不能使用单节点肯定是使用多节点。到目前为止,我们都是在一个单节点上运行broker,这并没有什么意思。对于kafka来说,一个单独的broker意味着kafka集群中只有一个接点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。为了有更好的理解,现在我们在一台机器上同时启动三个broker实例,搭建伪分布。其实搭建多台也是一样的。

  首先,我们需要建立好其他2个broker的配置文件

  config/server-1.properties

  config/server-2.properties:

  broker.id属性在kafka集群中必须要是唯一的。我们需要重新指定port和log目录,因为我们是在同一台机器上运行多个实例。如果不进行修改的话,

  

  

  目前我们已经有一个zookeeper实例和一个broker实例在运行了,现在我们只需要在启动2个broker实例。

  

  

  

  

备份因子设置为3,因为有3个节点的集群,不允许设置大概3的。

  

  查看集群的主题

  

  现在已经有了集群,并且创建了一个3个备份因子的topic,但是到底是哪一个broker在为这个topic提供服务呢(因为我们只有一个分区,所以肯定同时只有一个broker在处理这个topic)?

  Topic: 主题的名称

  PartitionCount: 因为创建的时候就创建了一个分区,目前显示1

  ReplicationFactor: 备份因子是3个

  Partition:分区在这个主题的编号

  Leader:编号为1的broker.id,这个主题对外提供读写的节点的是编号为1的节点。

  Replicas:副本编号1,2,0

  Isr:已经同步的副本1,2,0

  

  删除一个Leader节点查看描述

  

  

  

  删除了broker.id=1的节点,剩余2个节点0和2,进行选举leader。目前的leader变成了2,副本还是3个,活着已同步的节点没有1了。

  

备份因子设置为2,重新启动broker.id=1,有3个节点的集群,分区设置2。

  

  

  

  

  查看主题的情况my-test2,2个分区,2个备份因子。2个分区每个分区有个leader。一定要明白leader是分区的leader,不是节点的leader。

  

  单播消费

消息只能被某一个消费者消费的模式,类似queue模式,只需让所有消费者在同一个消费组里即可

  分别在两个客户端执行如下消费命令,然后往主题里发送消息,结果只有一个客户端能收到消息

  多播消费

消息只能被同一个消费组下的某一个消费者消费的特性,要实现多播只要保证这些消费者属于不同的消费组即可。我们再增加一个消费者,该消费者属于testGroup-2消费组,结果两个客户端都能收到消息。如果2个消费者都属于一个消费组,只能有一个收到。

  (二)kafka-java客户端调用

  官方文档

  

  

  host文件中加入kafka的host

  

  消费者类

  生产者,分为同步和异步两种方式

  pom文件

  (三)kafka的选举一个图足够了

  

  PS:kafka消息不会丢失,只会定期删除。java源码不太负责,直接看官网的api就可以了。消费的方式是通过偏移量来进行的。

  

  96

  IT人故事会

  B67c298d f020 4f89 aac6 0710bc0709ec

  2019.07.24 09:19

  字数 1228

  原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

  原文链接地址:『互联网架构』kafka集群原理(117)

  之前主要是理论说了kafka的原理,kafka相关的三个比较重要的配置文件server,consumer,Producer的详细配置,以及kafka消息的存储形式,主要是保存在zookeeper上。应该按照之前的文档单实例的kafka都搭建成功了。这次主要说说集群的搭建。

  源码:源码/『互联网架构』kafka集群搭建和使用(117)

  

  (一)kafka集群的搭建

  查看主题

  

  搭建集群

  单个节点挂了就挂了,为了让项目高可用必须搭建多节点。在生产环境肯定不能使用单节点肯定是使用多节点。到目前为止,我们都是在一个单节点上运行broker,这并没有什么意思。对于kafka来说,一个单独的broker意味着kafka集群中只有一个接点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。为了有更好的理解,现在我们在一台机器上同时启动三个broker实例,搭建伪分布。其实搭建多台也是一样的。

  首先,我们需要建立好其他2个broker的配置文件

  config/server-1.properties

  config/server-2.properties:

  broker.id属性在kafka集群中必须要是唯一的。我们需要重新指定port和log目录,因为我们是在同一台机器上运行多个实例。如果不进行修改的话,

  

  

  目前我们已经有一个zookeeper实例和一个broker实例在运行了,现在我们只需要在启动2个broker实例。

  

  

  

  

备份因子设置为3,因为有3个节点的集群,不允许设置大概3的。

  

  查看集群的主题

  

  现在已经有了集群,并且创建了一个3个备份因子的topic,但是到底是哪一个broker在为这个topic提供服务呢(因为我们只有一个分区,所以肯定同时只有一个broker在处理这个topic)?

  Topic: 主题的名称

  PartitionCount: 因为创建的时候就创建了一个分区,目前显示1

  ReplicationFactor: 备份因子是3个

  Partition:分区在这个主题的编号

  Leader:编号为1的broker.id,这个主题对外提供读写的节点的是编号为1的节点。

  Replicas:副本编号1,2,0

  Isr:已经同步的副本1,2,0

  

  删除一个Leader节点查看描述

  

  

  

  删除了broker.id=1的节点,剩余2个节点0和2,进行选举leader。目前的leader变成了2,副本还是3个,活着已同步的节点没有1了。

  

备份因子设置为2,重新启动broker.id=1,有3个节点的集群,分区设置2。

  

  

  

  

  查看主题的情况my-test2,2个分区,2个备份因子。2个分区每个分区有个leader。一定要明白leader是分区的leader,不是节点的leader。

  

  单播消费

消息只能被某一个消费者消费的模式,类似queue模式,只需让所有消费者在同一个消费组里即可

  分别在两个客户端执行如下消费命令,然后往主题里发送消息,结果只有一个客户端能收到消息

  多播消费

消息只能被同一个消费组下的某一个消费者消费的特性,要实现多播只要保证这些消费者属于不同的消费组即可。我们再增加一个消费者,该消费者属于testGroup-2消费组,结果两个客户端都能收到消息。如果2个消费者都属于一个消费组,只能有一个收到。

  (二)kafka-java客户端调用

  官方文档

  

  

  host文件中加入kafka的host

  

  消费者类

  生产者,分为同步和异步两种方式

  pom文件

  (三)kafka的选举一个图足够了

  

  PS:kafka消息不会丢失,只会定期删除。java源码不太负责,直接看官网的api就可以了。消费的方式是通过偏移量来进行的。

  

  原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

  原文链接地址:『互联网架构』kafka集群原理(117)

  之前主要是理论说了kafka的原理,kafka相关的三个比较重要的配置文件server,consumer,Producer的详细配置,以及kafka消息的存储形式,主要是保存在zookeeper上。应该按照之前的文档单实例的kafka都搭建成功了。这次主要说说集群的搭建。

  源码:源码/『互联网架构』kafka集群搭建和使用(117)

  

  (一)kafka集群的搭建

  查看主题

  

  搭建集群

  单个节点挂了就挂了,为了让项目高可用必须搭建多节点。在生产环境肯定不能使用单节点肯定是使用多节点。到目前为止,我们都是在一个单节点上运行broker,这并没有什么意思。对于kafka来说,一个单独的broker意味着kafka集群中只有一个接点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。为了有更好的理解,现在我们在一台机器上同时启动三个broker实例,搭建伪分布。其实搭建多台也是一样的。

  首先,我们需要建立好其他2个broker的配置文件

  config/server-1.properties

  config/server-2.properties:

  broker.id属性在kafka集群中必须要是唯一的。我们需要重新指定port和log目录,因为我们是在同一台机器上运行多个实例。如果不进行修改的话,

  

  

  目前我们已经有一个zookeeper实例和一个broker实例在运行了,现在我们只需要在启动2个broker实例。

  

  

  

  

备份因子设置为3,因为有3个节点的集群,不允许设置大概3的。

  

  查看集群的主题

  

  现在已经有了集群,并且创建了一个3个备份因子的topic,但是到底是哪一个broker在为这个topic提供服务呢(因为我们只有一个分区,所以肯定同时只有一个broker在处理这个topic)?

  Topic: 主题的名称

  PartitionCount: 因为创建的时候就创建了一个分区,目前显示1

  ReplicationFactor: 备份因子是3个

  Partition:分区在这个主题的编号

  Leader:编号为1的broker.id,这个主题对外提供读写的节点的是编号为1的节点。

  Replicas:副本编号1,2,0

  Isr:已经同步的副本1,2,0

  

  删除一个Leader节点查看描述

  

  

  

  删除了broker.id=1的节点,剩余2个节点0和2,进行选举leader。目前的leader变成了2,副本还是3个,活着已同步的节点没有1了。

  

备份因子设置为2,重新启动broker.id=1,有3个节点的集群,分区设置2。

  

  

  

  

  查看主题的情况my-test2,2个分区,2个备份因子。2个分区每个分区有个leader。一定要明白leader是分区的leader,不是节点的leader。

  

  单播消费

消息只能被某一个消费者消费的模式,类似queue模式,只需让所有消费者在同一个消费组里即可

  分别在两个客户端执行如下消费命令,然后往主题里发送消息,结果只有一个客户端能收到消息

  多播消费

消息只能被同一个消费组下的某一个消费者消费的特性,要实现多播只要保证这些消费者属于不同的消费组即可。我们再增加一个消费者,该消费者属于testGroup-2消费组,结果两个客户端都能收到消息。如果2个消费者都属于一个消费组,只能有一个收到。

  (二)kafka-java客户端调用

  官方文档

  

  

  host文件中加入kafka的host

  

  消费者类

  生产者,分为同步和异步两种方式

  pom文件

  (三)kafka的选举一个图足够了

  

  PS:kafka消息不会丢失,只会定期删除。java源码不太负责,直接看官网的api就可以了。消费的方式是通过偏移量来进行的。

  

热门浏览
热门排行榜
热门标签
日期归档