
Kafka
文章平均质量分 94
消息中间件,Kafka集群部署源码:https://github.com/scorpiostudio/HelloKafka
天山老妖
多年私募基金量化IT工程师从业经验,专注于Linux/C++、Qt、Python、量化IT技术,具有丰富的中频、高频量化交易系统开发和实盘交易运维经验,熟悉CTP、盛立REM、易达YD、Xele期货柜台API,宽睿OES、华鑫Tora、中泰XTP股票柜台API。
QuantFabric开源:https://github.com/QuantFabric
展开
-
Hello Kafka(十二)——Python客户端
一、confluent-kafka1、confluent-kafka简介confluent-kafka是Python模块,是对librdkafka的轻量级封装,支持Kafka 0.8以上版本。本文基于confluent-kafka 1.3.0编写。GitHub地址:GitHub - confluentinc/confluent-kafka-python: Confluent's Kafka Python Client2、confluent-kafka特性(1)可靠。confluent原创 2022-02-24 09:26:34 · 1401 阅读 · 0 评论 -
Hello Kafka(十一)——RdKafka源码分析
一、RdKafka C源码分析1、Kafka OP队列RdKafka将与Kafka Broker的交互、内部实现的操作都封装成Operator结构,然后放入OP处理队列里统一处理。Kafka OP队列是线程间通信的管道。RdKafka队列定义在rdkafka_queue.h文件中,队列相关操作封装在rdsysqueue.h文件中。(1)Kafka OP队列typedefstructrd_kafka_q_srd_kafka_q_t;structrd_kafka_q_s{...原创 2022-02-24 09:25:59 · 3258 阅读 · 2 评论 -
Hello Kafka(十)——C++客户端
一、C++ API1、数据结构RdKafka::DeliveryReportCb:Delivery Report回调类RdKafka::PartitionerCb:Partitioner回调类RdKafka::PartitionerKeyPointerCb:带key指针的Partitioner回调类RdKafka::EventCb:Event回调类RdKafka::Event:Event类RdKafka::ConsumeCb:Consume回调类RdKafka::R原创 2022-02-24 09:21:53 · 2310 阅读 · 0 评论 -
Hello Kafka(九)——C客户端
一、Librdkafka简介1、librdkafka简介librdkafka是C语言实现的ApacheKafka的高性能客户端,提供C++接口。librdkafka专为现代硬件而设计,尝试将内存复制保持在最小,可以让用户决定是需要高吞吐量还是低延迟的服务,当前可支持每秒超过100万的消息生产和300万每秒的消息消费。Github地址:https://github.com/edenhill/librdkafka2、librdkafka安装yum install librdkafka.原创 2022-02-24 09:21:11 · 3595 阅读 · 0 评论 -
Hello Kafka(八)——Confluent Kafka简介
一、Confluent Kafka简介1、Confluent Kafka简介2014年,Kafka的创始人Jay Kreps、NahaNarkhede和饶军离开LinkedIn创立Confluent公司,专注于提供基于Kafka的企业级流处理解决方案,并发布了Confluent Kafka。Confluent Kafka分为开源版和企业版,企业版收费。2、Confluent Kafka特性Confluent Kafka开源版特性如下:(1)Confluent Kafka Connecto原创 2022-02-24 09:19:40 · 9409 阅读 · 0 评论 -
Hello Kafka(七)——Kafka集群监控
一、Kafka监控指标1、Kafka主机监控指标主机监控是监控Kafka集群Broker所在的节点机器的性能。常见的主机监控指标包括:(1)机器负载(Load)(2)CPU使用率(3)内存使用率,包括空闲内存(Free Memory)和已使用内存(Used Memory)(4)磁盘I/O使用率,包括读使用率和写使用率网络(5)I/O使用率(6)TCP连接数(7)打开文件数(8)inode使用情况2、JVM监控指标Kafka Broker进程是一个普通的Java原创 2022-02-24 09:19:01 · 3216 阅读 · 0 评论 -
Hello Kafka(六)——Kafka集群部署
一、Kafka集群部署方案规划1、操作系统选择通常,生产环境应该将Kafka集群部署在Linux操作系统上,原因如下:(1)Kafka客户端底层使用了Java的selector,selector在Linux上的实现机制是epoll,而在Windows平台上的实现机制是select,因此Kafka部署在Linux上能够获得更高效的I/O性能。(2)网络传输效率的差别。Kafka需要在磁盘和网络间进行大量数据传输,在Linux部署Kafka能够享受到零拷贝(Zero Copy)技术所带来的快速数原创 2022-02-24 09:17:30 · 2014 阅读 · 0 评论 -
Hello Kafka(五)——Kafka管理
一、Kafka工具脚本简介1、Kafka工具脚本简介Kafka默认提供了很多个命令行脚本,用于实现各种各样的功能和运维管理。默认情况下,不加任何参数或携带--help运行Kafka shell脚本根据,会得到脚本的使用方法说明。connect-standalone.sh用于启动单节点的Standalone模式的Kafka Connect组件。connect-distributed.sh用于启动多节点的Distributed模式的Kafka Connect组件。kafka-acls.sh脚原创 2022-02-24 09:16:52 · 4473 阅读 · 0 评论 -
Hello Kafka(四)——Kafka高级功能
一、Kafka无消息丢失配置1、Kafka消息丢失简介Kafka只针对已提交消息(committed message)做有限度的持久化保证。当Kafka的若干个Broker成功地接收到一条消息并写入到日志文件后,会通知生产者程序相应消息已成功提交。多少个Broker成功保存消息算是已提交,可以由Producer参数或Broker端参数指定。有限度的持久化保证是指Kafka不可能保证在任何情况下都做到不丢失消息,Kafka不丢消息的前提条件是保存消息的N个Kafka Broker 中至少有1个原创 2022-02-24 09:14:34 · 1506 阅读 · 0 评论 -
Hello Kafka(三)——Kafka核心技术
一、生产者压缩算法1、Kafka消息压缩压缩(compression)是用时间换空间的经典trade-off思想,使用CPU时间换磁盘空间或网络I/O传输量,以较小的CPU开销带来更少的磁盘占用或更少的网络I/O传输。Kafka有两类消息格式,V1版本和V2版本,V2 版本在Kafka 0.11.0.0中正式引入。Kafka的消息层次都分为两层:消息集合(message set)以及消息(message)。消息集合中包含若干条日志项(record item),而日志项才是真正封装消息数据的实原创 2022-02-24 09:07:51 · 978 阅读 · 0 评论 -
Hello Kafka(二)——Kafka架构
一、Kafka架构简介1、Kafka架构简介2、RecordRecord即Kafka消息,是Kafka处理的主要对象。3、TopicTopic是承载Kafka消息数据的逻辑容器,用于区分具体的业务,但在物理上,不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存在一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存储在何处。4、PartitionTopic被分割为一个或多个Partition,Partition是一个物理.原创 2022-02-24 09:06:35 · 837 阅读 · 0 评论 -
Hello Kafka(一)——Kafka简介
一、Apache Kafka简介1、Apache Kafka简介Apache Kafka是一款开源的消息引擎系统,同时也是分布式流处理平台。消息引擎系统是一组在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递的规范。2、Kafka设计目标Kafka的设计目标如下:(1)以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。(2)高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。(3)支持Kafka原创 2022-02-24 09:05:16 · 1256 阅读 · 0 评论