可以自己做视频网站吗,呼和浩特网站网站建设,互联网推广营销隐迅推我选,wordpress口令字典生产者
生产者负责创建消息#xff0c;然后将其投递到Kafka中。
负载均衡
轮询策略。随机策略。按照 key 进行hash。
Kafka 的默认分区策略#xff1a;如果指定了 key#xff0c;key 相同的消息会发送到同一个分区#xff08;分区有序#xff09;#xff1b;如果没有…生产者
生产者负责创建消息然后将其投递到Kafka中。
负载均衡
轮询策略。随机策略。按照 key 进行hash。
Kafka 的默认分区策略如果指定了 keykey 相同的消息会发送到同一个分区分区有序如果没有指定 key则使用轮询策略。
发送消息
acks指定了生产者在多少个分区副本收到消息的情况下才会认为消息写入成功。
三种方式并没有优劣之分而是要因地制宜的选择合适的策略。需要在性能和可靠性之间权衡。
发送消息有以下3种方式
发送并忘记。
acks 0。 生产者发送消息之后不会等待任何来自broker的响应。大多数情况下消息可以成功送达因为Kafka是高可用的而且生产者有自动尝试重发的机制。但是如果发生了不可重试的错误或超时那么消息将会丢失应用程序将不会收到任何信息或异常。 在其他配置环境相同的情况下acks 设置为0 可以达到最大的吞吐量。
异步发送
acks1默认值。 生产者发送消息之后只要分区的leader副本成功写入消息那么它就会收到来自服务端的成功响应。
如果消息无法写入leader副本比如在leader 副本崩溃、重新选举新的 leader 副本的过程中那么生产者就会收到一个错误的响应为了避免消息丢失生产者可以选择重发消息。如果消息写入leader副本并返回成功响应给生产者且在被其他follower副本拉取之前leader副本崩溃那么此时消息还是会丢失因为新选举的leader副本中并没有这条对应的消息。 acks设置为1是消息可靠性和吞吐量之间的折中方案。
同步发送
acks -1 或 acks all。 生产者在消息发送之后需要等待ISR中的所有副本都成功写入消息之后才能够收到来自服务端的成功响应。 在其他配置环境相同的情况下acks 设置为-1all可以达到最强的可靠性。但这并不意味着消息就一定可靠因为ISR中可能只有leader副本这样就退化成了acks1的情况。