当前位置: 首页 > news >正文

政府建设网站搜索引擎优化的内容包括

政府建设网站,搜索引擎优化的内容包括,朝阳百姓网免费发布信息,企业组织架构深入理解Kafka核心设计与实践原理_03 03_消费者3.1消费者与消费者组3.2客户端开发3.2.1 必要的参数配置3.2.2 订阅主题与分区 草稿 03_消费者 与生产者对应的是消费者,应用程序可以通过KafkaConsumer来订阅主题,并从订阅的主题中拉取消息。不过在使用Ka…

深入理解Kafka核心设计与实践原理_03

  • 03_消费者
    • 3.1消费者与消费者组
    • 3.2客户端开发
      • 3.2.1 必要的参数配置
      • 3.2.2 订阅主题与分区

草稿

03_消费者

与生产者对应的是消费者,应用程序可以通过KafkaConsumer来订阅主题,并从订阅的主题中拉取消息。不过在使用KafkaConsumer消费消息之前需要先了解消费者和消费组的概念,否则无法理解如何使用 KafkaConsumer。本章首先讲解消费者与消费组之间的关系,进而再细致地讲解如何使用KafkaConsumer。

3.1消费者与消费者组

消费者(Consumer)负责订阅Kafka中的主题(Topic),并且从订阅的主题上拉取消息。与其他一些消息中间件不同的是:在Kafka的消费理念中还有一层消费组(Consumer Group)的概念,每个消费者都有一个对应的消费组。当消息发布到主题后,只会被投递给订阅它的每个消费组中的一个消费者。消费者与消费组这种模型可以让整体的消费能力具备横向伸缩性,我们可以增加(或减少)消费者的个数来提高(或降低)整体的消费能力。

对于消息中间件而言,一般有两种消息投递模式:点对点(P2P,Point-to-Point)模式和发布/订阅(Pub/Sub)模式。

点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息。发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题(Topic),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者从主题中订阅消息。主题使得消息的订阅者和发布者互相保持独立,不需要进行接触即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用。

Kafka 同时支持两种消息投递模式,而这正是得益于消费者与消费组模型的契合:· 如果所有的消费者都隶属于同一个消费组,那么所有的消息都会被均衡地投递给每一个消费者,即每条消息只会被一个消费者处理,这就相当于点对点模式的应用。· 如果所有的消费者都隶属于不同的消费组,那么所有的消息都会被广播给所有的消费者,即每条消息会被所有的消费者处理,这就相当于发布/订阅模式的应用。

消费组是一个逻辑上的概念,它将旗下的消费者归为一类,每一个消费者只隶属于一个消费组。每一个消费组都会有一个固定的名称,消费者在进行消费前需要指定其所属消费组的名称,这个可以通过消费者客户端参数group.id来配置,默认值为空字符串。消费者并非逻辑上的概念,它是实际的应用实例,它可以是一个线程,也可以是一个进程。同一个消费组内的消费者既可以部署在同一台机器上,也可以部署在不同的机器上。

3.2客户端开发

(1)配置消费者客户端参数及创建相应的消费者实例。
(2)订阅主题。
(3)拉取消息并消费。
(4)提交消费位移。
(5)关闭消费者实例。

3.2.1 必要的参数配置

  • bootstrap.servers:该参数的释义和生产者客户端 KafkaProducer 中的相同,用来 指 定 连 接 Kafka 集 群 所 需 的 broker 地 址 清 单,具 体 内 容 形 式 为host1:port1,host2:post,可以设置一个或多个地址,中间用逗号隔开,此参数的默认值为“”。注意这里并非需要设置集群中全部的broker地址,消费者会从现有的配置中查找到全部的Kafka集群成员。这里设置两个以上的broker地址信息,当其中任意一个宕机时,消费者仍然可以连接到Kafka集群上。
  • group.id:消费者隶属的消费组的名称,默认值为“”。如果设置为空,则会报出异常:Exception in thread "main"org.apache.kafka.common.errors.InvalidGroupIdException:The configured groupId is invalid。一般而言,这个参数需要设置成具有一定的业务意义的名称。
  • key.deserializer 和 value.deserializer:与生产者客户端 KafkaProducer中的key.serializer和value.serializer参数对应。消费者从broker端获取的消息格式都是字节数组(byte[])类型,所以需要执行相应的反序列化操作才能还原成原有的对象格式。这两个参数分别用来指定消息中key和value所需反序列化操作的反序列化器,这两个参数无默认值。注意这里必须填写反序列化器类的全限定名,比如示例中的org.apache.kafka.common.serialization.StringDeserializer,单单指定StringDeserializer是错误的。

注意到代码清单3-1中的initConfig()方法里还设置了一个参数client.id,这个参数用来设定KafkaConsumer对应的客户端id,默认值也为“”。如果客户端不设置,则KafkaConsumer会自动生成一个非空字符串,内容形式如“consumer-1”“consumer-2”,即字符串“consumer-”与数字的拼接。

3.2.2 订阅主题与分区

一个消费者可以订阅一个或多个主题,代码清单3-1中我们使用subscribe()方法订阅了一个主题,对于这个方法而言,既可以以集合的形式订阅多个主题,也可以以正则表达式的形式订阅特定模式的主题。subscribe的几个重载方法如下:
在这里插入图片描述
如果消费者采用的是正则表达式的方式(subscribe(Pattern))订阅,在之后的过程中,如果有人又创建了新的主题,并且主题的名字与正则表达式相匹配,那么这个消费者就可以消费到新添加的主题中的消息。如果应用程序需要消费多个主题,并且可以处理不同的类型,那么这种订阅方式就很有效。

在 subscribe 的重载方法中有一个参数类型是ConsumerRebalance-Listener,这个是用来设置相应的再均衡监听器的。

消费者不仅可以通过KafkaConsumer.subscribe()方法订阅主题,还可以直接订阅某些主题的特定分区,在KafkaConsumer中还提供了一个assign()方法来实现这些功能。
在这里插入图片描述
该方法只接受一个参数partitions,用来指定需要订阅的分区集合。这里补充说明一下TopicPartition类,在Kafka的客户端中,它用来表示分区。TopicPartition类只有2个属性:topic和partition,分别代表分区所属的主题和自身的分区编号,这个类可以和我们通常所说的主题—分区的概念映射
起来。

KafkaConsumer 中的partitionsFor()方法可以用来查询指定主题的元数据信息。

http://www.khdw.cn/news/45641.html

相关文章:

  • 网站漂浮广告怎么做好网站
  • 广安北京网站建设简述如何对网站进行推广
  • 中国网页设计欣赏seo任务
  • 营销型企业网站开发湖人排名最新
  • 广州的房地产网站建设长沙seo关键词
  • 网站开发者工具的网络选项乐陵seo外包
  • 做网站用的文本编辑器聚合搜索引擎接口
  • 郑州市做网站的网络推广计划书范文
  • wordpress门户建站免费建站
  • 中关村网站建设公司网站打开速度优化
  • 学做网站视频百度数据指数
  • 网站内容避免被采集域名怎么查
  • 做网站实际尺寸是多少上海app网络推广公司电话
  • wordpress rss小工具seo的定义是什么
  • 无锡网站制作网络推广平台有哪些?
  • 陇南做网站百度指数查询排行榜
  • 宁夏网站建设电话sem推广和seo的区别
  • 做互联网的网站google下载
  • 不用vip会员也能观看的软件seo排名首页
  • 网站建设方案书的内容市场营销策划ppt
  • 淘宝客网站的模板软文发布推广平台
  • 西安网站空间建材企业网站推广方案
  • wordpress首页分页函数seo是什么学校
  • 温州建设小学瓯江校区网站企业网站设计论文
  • 网站域名 英文seo网站推广的主要目的包括
  • 北京网站设计我选柚米亚马逊alexa
  • 网站开发调试iis站长统计app最新版本2023
  • 网站建设中网站功能描述书功能做一个微信小程序需要多少钱
  • 动态网站开发实例今天新闻头条最新消息
  • 做网站怎么挣钱赚钱网络营销招聘