nothing to say...
随笔分类 - MQ
消息队列 Message Queue
摘要:
一、前言 由于工作原因使用到了 Kafka,而现有的代码并不能满足性能需求,所以需要开发高效读写 Kafka 的工具,本文是一个 Python Kafka Client 的性能测试记录,通过本次测试,可以知道选用什么第三方库的性能最高,选用什么编程模型开发出来的工具效率最高。 二、第三方库性能测试
阅读全文

摘要:
python 发送kafka python 发送kafka大体有三种方式 1 发送并忘记(不关注是否正常到达,不对返回结果做处理) 1 import pickle 2 import time 3 from kafka import KafkaProducer 4 5 producer = Kafka
阅读全文

摘要:
1. kafka-python的安装 pip3 install kafka-python 2.kafka-python的基本使用 最简单使用实例 1.消费端 from kafka import KafkaConsumer consumer = KafkaConsumer('my_topic', gr
阅读全文

摘要:
在官方文档详细列出了kafka-python的API接口https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html 对于生成者我们着重于介绍一个send方法,其余的方法提到的时候会说明,在官方文档中有许多可配置参数可
阅读全文

摘要:
kafka系列文章之python-api的使用。 在使用kafka-python时候需要注意,一定要版本兼容,否则在使用生产者会报 无法更新元数据的错误。 在本片测试中java版本为如下,kafka版本为0.10.0,kafka-python版本为1.3.1,目前最新的版本为1.4.4 [root@
阅读全文

摘要:
单线程生产者 说是单线程,其实并不是,你启动一个生产者其实是2个线程,后台有一个IO线程用于真正发送消息出去,前台有一个线程用于把消息发送到本地缓冲区。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2
阅读全文

摘要:
# 系统相关 # broker的全局唯一编号,不能重复,和zookeeper的myid是一个意思 broker.id=0 # broker监听IP和端口也可以是域名 listeners=PLAINTEXT://172.16.48.163:9092 # 这个配置方式和listeners相同,主要用于K
阅读全文

摘要:
主题管理 创建主题 1 kafka-topics.sh --bootstrap-server 172.16.100.10:9092 --create --topic TestCCC --partitions 3 --replication-factor 3 列出所有主题 1 2 3 4 kafka-
阅读全文

摘要:
消费者组与消费者偏移量 消费者组 具有相同组ID的消费者就属于同一个消费者组,它有如下特点: 一个组可以有多个消费者 主题中的消息只能被同一个组中的一个消费者消费 一个主题可以被多个消费者组消费 消费者组的概念主要是为了实现点对点队列模式和发布订阅模式,它是如何实现的呢? 队列模式:所有消费者属于同
阅读全文

摘要:
消息分区策略 这里不是说Kafka的主题为什么要分区,而是说在分区的结构下,如何让具有某种特点的消息发送到特定分区。 这里有一个很明显的问题,就是主题分区,那么生产者发送的消息到底被发送到了哪个分区呢?一般我们都知道有轮询机制或者是随机机制,这两种机制都比较好理解。而且Kafka也都支持,在新版本中
阅读全文

摘要:
无消息丢失配置 我们有时候听到开发说消息丢了。遇到这种情况你要想找这个消息通常是去生产者的日志里去看是否发送了这条消息以及去Kafka日志里去找是否有这条消息,不过这都是事后措施,通常来说我们如果要求不丢失消息,那么我们要怎么做呢? 但是从上图可以看出来这里面涉及三方,生产者、broker和消费者。
阅读全文

摘要:
主题、分区与副本 基本概念 主题、分区和副本的关系 主题是一个逻辑概念,代表了一类消息,实际工作中我们使用主题来区分业务,而主题之下并不是消息,而是分区,分区是一个物理概念,它是磁盘上的一个目录,目录中是保存消息的日志段文件。分区的目的是为了提高吞吐量,实现主题的负载均衡,一个主题至少有一个分区;而
阅读全文

摘要:
日志 这里所说的日志是用来记录生产者向主题发送消息而产生的日志,但日志中记录的并不是消息而是record,因为Kafka并不是将原始消息直接写入日志的,而是把消息和其他元数据封装在一个record里写入日志,我们把这个record叫做消息集合。 这些日志信息放在配置文件的log.dirs指定的目录中
阅读全文

摘要:
Kafka集群部署 容量规划 操作系统的选择 操作系统来说优先选择Linux因为它支持的IO模型并支持零拷贝技术,而且主要是因为Kafka社区对Linux上的更新比较迅速,所以生产环境建议使用Linux系统。 磁盘的选择和磁盘容量 磁盘的话机械硬盘和SSD均可,因为kafka是顺序读写的。至于是否需
阅读全文

摘要:
kafka的一些术语与版本对比
阅读全文
