Kafka 作为流处理平台的特点
流处理就是连续、实时、并发和以逐条记录的方式处理数据的意思。Kafka 是一个分布式流处理平台,它的高吞吐量、低延时、高可靠性、容错性、高可扩展性都使得 Kafka 非常适合作为流式平台。
- 它是一个简单的、轻量级的 Java 类库,能够被集成到任何 Java 应用中
- 除了 Kafka 之外没有任何其他的依赖,利用 Kafka 的分区模型支持水平扩容和保证顺序性
- 支持本地状态容错,可以执行非常快速有效的有状态操作
- 支持 eexactly-once 语义
- 支持一次处理一条记录,实现 ms 级的延迟
Apache Kafka 是消息引擎系统,也是一个分布式流处理平台。
作为流处理平台,Kafka 与其他主流大数据流式计算框架相比,优势在哪里呢?(1)更容易实现端到端的精确一次,如果使用 Spark、Flink 从 Kafka 中读取消息处理后再写入 Kafka 中,计算结果可能写入多次,因为无法控制 Kafka 语义处理。如果所有数据流转和计算都在 kafka 内完成,那么可以实现精确一次的处理语义。(2) 一个用于搭建实时流处理的客户端库而非是一个完整的功能系统。双刃剑,不是用于搭建一个复杂系统。
Kafka 可接收的消息最大默认多少字节,如何修改
Kafka 可以接收的最大消息默认为 1000000 字节,如果想调整它的大小,可在 Broker 中修改配置参数:Message.max.bytes 的值。
但要注意的是,修改这个值,还要同时注意其他对应的参数值是正确的,否则就可能引发一些系统异常。首先这个值要比消费端的
fetch.Message.max.bytes(默认值 1MB,表示消费者能读取的最大消息的字节数)参数值要小才是正确的设置,否则 Broker 就会因为消费端无法使用这个消息而挂起。
Kafka 是否支持多租户隔离
多租户技术(multi-tenancy technology)是一种软件架构技术,它是实现如何在多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。
通过配置哪个主题可以生产或消费数据来启用多租户,也有对配额的操作支持。管理员可以对请求定义和强制配额,以控制客户端使用的 Broker 资源。
kafka 默认的端口号是多少?
Kafka 默认的端口号是 9092。这个端口号用于 Kafka 代理(Broker)与客户端(如生产者和消费者)之间的通信。
以下是一些常见的 Kafka 端口号及其用途:
- 9092:Kafka 代理的默认端口号,用于与客户端进行通信。
- 2181:Zookeeper 的默认端口号,用于 Kafka 集群的协调和管理。
- 9093:Kafka 代理的备用端口号,通常用于 SSL 或 SASL 加密通信。
需要注意的是,这些端口号可以在 Kafka 配置文件(server.properties)中进行修改,以适应不同的部署环境和需求。