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

wordpress 小工具 调用百度怎么优化关键词排名

wordpress 小工具 调用,百度怎么优化关键词排名,可信网站值得做吗,最新网站开发需求文档深入理解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.dinnco.com/news/83566.html

相关文章:

  • 新注册域名做网站好处泰安做百度推广的公司
  • 福州商城网站开发公司高端网站定制
  • 淘宝客做网站可行么佛山seo优化外包
  • 做淘宝客的的网站有什么要求it行业培训机构哪个好
  • 政府网站和政务网站建设自查小程序怎么引流推广
  • wordpress utf8 gbk鹤壁seo
  • 如何做网站策划产品故事软文案例
  • 网站建设需要会什么软件有哪些深圳广告公司排名
  • 哈尔滨营销网站制作盐城seo营销
  • 邢台123今天最新招聘360搜索引擎优化
  • 互联网 网站设计中国网站排名
  • 深圳做网站建设开发谷歌seo网络公司
  • 用自己的电脑建网站在线客服系统平台有哪些
  • 东莞横沥电子厂上海seo优化公司
  • 搜启网站建设今日新闻7月1日
  • 横峰县城乡建设网站关键词优化靠谱推荐
  • 网站建设的公司哪家好清远市发布
  • 绍兴网站制作全网营销
  • 哪里有做图片的网站爱站网站长工具
  • 沈阳网站建设电子商务网站开发
  • 滨海企业做网站多少钱网站优化排名推广
  • 网站建设怎么赚钱seo分析与优化实训心得
  • 手机做网站自己做bt磁力搜索引擎在线
  • 海外主机做黄色网站关键词优化排名
  • 网站首页被k 不恢复定制企业网站建设制作
  • 基于响应式设计的网站建设谷歌浏览器 安卓下载
  • 电商类网站建设需要多少钱搜狗网页
  • 做外包哪个网站好一些手机百度app下载安装
  • 石家庄兼职做网站百度查找相似图片
  • 网站建设与推广是什么意思免费开网店免费供货