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

衡阳县建设局网站计算机办公软件培训班

衡阳县建设局网站,计算机办公软件培训班,我要自学网网站开发,上海网站建设聚众网络本章承接kafka一内容,文章在本人博客主页都有,可以自行点击浏览。 幂等性 请求执行多次,但执行的结果是一致的。 如果,某个系统是不具备幂等性的,如果用户重复提交了某个表格,就可能会造成不良影响。例如…

本章承接kafka一内容,文章在本人博客主页都有,可以自行点击浏览。

幂等性

请求执行多次,但执行的结果是一致的。

如果,某个系统是不具备幂等性的,如果用户重复提交了某个表格,就可能会造成不良影响。例如:用户在浏览器上点击了多次提交订单按钮,会在后台生成多个一模一样的订单。

kafka幂等性

在生产者生产消息时,如果出现retry时,有可能会一条消息被发送了多次,如果Kafka不具备幂等性的,就有可能会在partition中保存多条一模一样的消息。

配置

props.put("enable.idempotence",true);

原理

为了实现生产者的幂等性,Kafka引入了 Producer ID(PID)和 Sequence Number的概念。

 PID:每个Producer在初始化时,都会分配一个唯一的PID,这个PID对用户来说,是透明的。

 Sequence Number:针对每个生产者(对应PID)发送到指定主题分区的消息都对应一个从0开始递增的Sequence Number。

如果同一个生产者,发送的消息序列号一致了,那么消息就已经存在了。

消费者组Rebalance机制

Rebalance再均衡

Kafka中的Rebalance称之为再均衡,是Kafka中确保Consumer group下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。

Rebalance触发的时机有:

  1. 消费者组中consumer的个数发生变化。例如:有新的consumer加入到消费者组,或者是某个consumer停止了。
  2. 订阅的topic个数发生变化。消费者可以订阅多个主题,假设当前的消费者组订阅了三个主题,但有一个主题突然被删除了,此时也需要发生再均衡。
  3. 订阅的topic分区数发生变化

坏处

  1. 发生Rebalance时,consumer group下的所有consumer都会协调在一起共同参与,Kafka使用分配策略尽可能达到最公平的分配
  2. Rebalance过程会对consumer group产生非常严重的影响,Rebalance的过程中所有的消费者都将停止工作,直到Rebalance完成

消费者分区分配策略

range范围分配

Range范围分配策略是Kafka默认的分配策略,它可以确保每个消费者消费的分区数量是均衡的。

注意:Rangle范围分配策略是针对每个Topic的。

轮询分配

RoundRobinAssignor轮询策略是将消费组内所有消费者以及消费者所订阅的所有topic的partition按照字典序排序(topic和分区的hashcode进行排序),然后通过轮询方式逐个将分区以此分配给每个消费者。

粘性分配

没有重新分配的时候和轮询一样,当消费者挂掉的时候,发生重新分配,尽可能保留之前的分配不变,将挂点的消费者上绑定的分区平均分配到没挂掉的消费者上面。由于rebalance发生,导致消费者需要重新消费之前正在处理的分区,导致不必要的系统开销。(例如:某个事务正在进行就必须要取消了)

副本机制

副本的目的就是冗余备份,当某个Broker上的分区数据丢失时,依然可以保障数据可用。因为在其他的Broker上的副本是可用的。

producer的ACKs参数

对副本关系较大的就是,producer配置的acks参数了,acks参数表示当生产者生产消息的时候,写入到副本的要求严格程度。它决定了生产者如何在性能和可靠性之间做取舍。

确认机制说明
acks=0生产者在成功写入消息之前不会等待任何来自服务器的响应,消息有丢失的风险,但是速度最快
acks=1(默认值)只要集群首领节点收到消息,生产者就会收到一个来自服务器的成功响应
acks=all只有当所有参与赋值的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应

Kafka的数据存储形式

  1.  一个topic由多个分区组成
  2.  一个分区(partition)由多个segment(段)组成
  3.  一个segment(段)由多个文件组成(log、index、timeindex)

​​​​​​​Kafka配额限速机制(Quotas)

生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络IO饱和。有了配额(Quotas)就可以避免这些问题。Kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。

​​​​​​​限制producer端速率

为所有client id设置默认值,以下为所有producer程序设置其TPS不超过1MB/s,即1048576‬/s,命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'producer_byte_rate=1048576' --entity-type clients --entity-default

运行基准测试,观察生产消息的速率

bin/kafka-producer-perf-test.sh --topic test --num-records 500000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 acks=1

结果:

50000 records sent, 1108.156028 records/sec (1.06 MB/sec)

​​​​​​​限制consumer端速率

对consumer限速与producer类似,只不过参数名不一样。

为指定的topic进行限速,以下为所有consumer程序设置topic速率不超过1MB/s,即1048576/s。命令如下:

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --add-config 'consumer_byte_rate=1048576' --entity-type clients --entity-default

运行基准测试:

bin/kafka-consumer-perf-test.sh --broker-list node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 --topic test --fetch-size 1048576 --messages 500000

结果为:

MB.sec:1.0743

​​​​​​​取消Kafka的Quota配置

使用以下命令,删除Kafka的Quota配置

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'producer_byte_rate' --entity-type clients --entity-default

bin/kafka-configs.sh --zookeeper node1.itcast.cn:2181 --alter --delete-config 'consumer_byte_rate' --entity-type clients --entity-default

http://www.yayakq.cn/news/449859/

相关文章:

  • 做网站自己装服务器即墨网站推广
  • 新乡seo网站推广工具网站后台和移动开发
  • 着陆页设计网站国内网站开发培训学校网站
  • 做电商的网站wordpress.org账号
  • 浙江省网站集约化建设通知直接IP做网站
  • 如何建设网站论坛成都到深圳物流公司
  • 网站建设结构驻马店360网站建设
  • 如何查询网站域名备案百度推广有用吗
  • 上海 外贸网站大学生做简历的网站
  • app与手机网站的区别自己搭建服务器做网站要多久
  • 网站项目建设策划书沙坪坝网站建设
  • 重庆网站建设 公司黄骅港务局
  • 给自己的爱人做网站太仓网站建设教程
  • 大连建站免费模板茂名手机网站建设公司名录
  • 中国各大网站开发语言最好网站建设公司
  • 网站制作报价维持地建网络专业做网站app的公司有哪些
  • 秀米网站怎么做推文河北网络建站
  • 英语不行如何编程做网站wordpress4.3.1下载
  • 禅城南庄网站制作网站开发 商标注册
  • 苏州网站优化公司虾皮网站有的做吗
  • 做百度网站每年的费用多少关于网站运营
  • 科技工作室网站模板类似淘宝网站建设费用
  • 猪八戒网做网站如何付款河北seo公司
  • 销售的产品是帮别人做网站wordpress仿dz
  • 深圳网站制作公司资讯汕头市住监局官网
  • 四川鸿业建设集团公司网站湖南邵阳网
  • 东莞微网站建设服务西安seo关键词查询
  • 国外网站大牛不懂英语可以做吗电子商务网站建设目的
  • 报表网站建设比较好的微网站开发平台
  • 专业网站设计立找亿企邦中国建设银行官方网站下载安装