摘要:The Future of SQL: Databases Meet Stream Processing https://www.confluent.io/blog/databases-meet-stream-processing-the-future-of-sql/ 首先时代的改变,导致SQL所面对
阅读全文
摘要:https://www.confluent.io/blog/enabling-exactly-kafka-streams/ https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Tra
阅读全文
摘要:https://github.com/linkedin/cruise-control https://engineering.linkedin.com/blog/2017/08/open-sourcing-kafka-cruise-control mark
阅读全文
摘要:https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/connectors/kafka.html 使用的方式, DataStream stream = ...; FlinkKafkaProducer010Configuration myProducerConfig = FlinkKafkaProducer010....
阅读全文
摘要:ConsumerRecords records = consumer.poll(100); /** * Fetch data for the topics or partitions specified using one of the subscribe/assign APIs. It is an error to not have * subscribed ...
阅读全文
摘要:kafka 0.10.0.0 released Interceptors的概念应该来自flume 参考,http://blog.csdn.net/xiao_jun_0820/article/details/38111305 比如,flume提供的 Timestamp Interceptor Host Interceptor Static Interceptor Regex ...
阅读全文
摘要:关于我们为什么需要Schema Registry? 参考, https://www.confluent.io/blog/how-i-learned-to-stop-worrying-and-love-the-schema-part-1/ https://www.confluent.io/blog/schema-registry-kafka-stream-processing-yes-virg...
阅读全文
摘要:32, 33都是和时间相关的, KIP-32 - Add timestamps to Kafka message 引入版本,0.10.0.0 需要给kafka的message加上时间戳,这样更方便一些, 比如在做retention,rolling,或getMessageByTime的时候 在config里面可以配置, message.timestamp.type - This to...
阅读全文
摘要:listeners, Listener List - Comma-separated list of URIs we will listen on and their protocols. Specify hostname as 0.0.0.0 to bind to all interfaces. Leave hostname empty to bind to default in...
阅读全文
摘要:http://kafka.apache.org/protocol 翻译, http://colobu.com/2017/01/26/A-Guide-To-The-Kafka-Protocol/ 具体的协议看原文, Preliminaries Network Kafka uses a binary p
阅读全文
摘要:https://engineering.linkedin.com/blog/2016/05/open-sourcing-kafka-monitor https://github.com/linkedin/kafka-monitor https://github.com/Microsoft/Availability-Monitor-for-Kafka Design Ov...
阅读全文
摘要:https://engineering.linkedin.com/kafka/running-kafka-scale If data is the lifeblood of high technology, Apache Kafka is the circulatory system in use at LinkedIn. We use Kafka for moving every type o...
阅读全文
摘要:2.1 Producer API We encourage all new development to use the new Java producer. This client is production tested and generally both faster and more fu
阅读全文
摘要:Kafka 作为 high throughput 的消息中间件,以其性能,简单和稳定性,成为当前实时流处理框架中的主流的基础组件。 当然在使用 Kafka 中也碰到不少问题,尤其是 failover 的问题,常常给大家带来不少困扰和麻烦。 所以在梳理完 kafka 源码的基础上,尽量用通俗易懂的方式,把 Kafka 发生 failover 时的机制解释清楚,让大家在使用和运维中,做到心中有...
阅读全文
摘要:前面已经分析过kafka server的启动过程,以及server所能处理的所有的request,即KafkaApis 剩下的,其实关键就是controller,以及partition和replica的状态机 这里先看看controller在broker server的基础上,多做了哪些初始化和failover的工作 最关键的一句, private val contr...
阅读全文
摘要:startup 在onControllerFailover中被调用, /** * Invoked on successful controller election. First registers a broker change listener since that triggers all * state transitions for replicas. Initia...
阅读全文
摘要:startup 在onControllerFailover中被调用, initializePartitionState private def initializePartitionState() { for((topicPartition, replicaAssignment) // else, check if the leader for part...
阅读全文
摘要:在broker的配置中,auto.leader.rebalance.enable (false) 那么这个leader是如何进行rebalance的? 首先在controller启动的时候会打开一个scheduler, if (config.autoLeaderRebalanceEnable) { //如果打开outoLeaderRebalance,需要把partiton leade...
阅读全文
摘要:kafka apis反映出kafka broker server可以提供哪些服务,broker server主要和producer,consumer,controller有交互,搞清这些api就清楚了broker server的所有行为 handleOffsetRequest 提供对offset的查询的需求,比如查询earliest,latest offset是什么,或before某个时间戳的...
阅读全文
摘要:http://kafka.apache.org/documentation.html#configuration Broker Configs 4个必填参数, broker.id Each broker is uniquely identified by a non-negative integer id broker唯一标识,broker可以在不同的host或por...
阅读全文