Bruce 是 Apache Kafka 的生产者守护进程，它简化了客户端发送消息到 Kafka ，无需关注后端的 Kafka 集群。Bruce 主要处理：
Routing messages to the proper brokers, and spreading the load evenly across multiple partitions for a given topic
Waiting for acknowledgements, and resending messages as necessary due to communication failures or Kafka-reported errors
Buffering messages to handle transient load spikes and Kafka-related problems
Tracking message discards when serious problems occur; Providing web-based discard reporting and status monitoring interfaces
Batching and compressing messages in a configurable manner for improved performance
Bruce runs on each individual host that communicates with Kafka, receiving messages from local clients over a UNIX domain datagram socket. Clients write messages to Bruce's socket in a simple binary format. Once a client has written a message, no further interaction with Bruce is required. From that point onward, Bruce takes full responsibility for reliable message delivery. Bruce serves as a single intake point for a Kafka cluster, receiving messages from diverse clients regardless of what programming language a client is written in. Client code is currently available in C, C++, Java, Python, and PHP. Code contributions for clients in other programming languages are much appreciated. Technical details on how to send messages to Bruce are provided here. Bruce runs on Linux, and has been tested on CentOS versions 7 and 6.5, and Ubuntu versions 14.04.1 LTS and 13.10. Bruce requires at least version 0.8 of Kafka.
花下猫语：前两天，我偶然在一个知识星球（刘欣老师的“码农翻身”）里看到一篇主题，刘老师表示 Python 的类方法非要带个 self，而不像其它语言那样隐藏起来，这让人很不爽。我对此也有同感...