同步操作将从 dearHaoGeGe/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
如果用户位于与broker不同的数据中心,则可能需要调优套接口缓冲区大小,以对长网络延迟进行摊销。
1)Kafka持久化日志,这些日志可以被重复读取和无限期保留。
2)Kafka是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性。
3)Kafka支持实时的流式处理。
RabbitMQ接收到消息后可以不消费,在消息确认消费之前,可以做以下两件事:
拒绝消息消费,使用channel.basicReject(消息编号, true) 方法,消息会被分配给其他订阅者;
设置为死信队列,死信队列是用于专门存放被拒绝的消息队列。
由于TCP连接的创建和销毁开销较大,且并发数受系统资源限制,会造成性能瓶颈。
RabbitMQ使用信道的方式来传输数据。
信道是建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。
kafka不能脱离zookeeper单独使用,因为kafka使用zookeeper管理和协调kafka的节点服务器。
Kafka Manager:应该算是最有名的专属Kafka监控框架了,是独立的监控系统。
Kafka Monitor:LinkedIn开源的免费框架,支持对集群进行系统测试,并实时监控测试结果。
CruiseControl:是LinkedIn公司开源的监控框架,用于实时监测资源使用率,以及提供常用运维操作等。无UI界面,只提供REST API。
JMX 监控:由于Kafka提供的监控指标都是基于JMX的,因此,市面上任何能够集成JMX的框架都可以使用,比如Zabbix和Prometheus。
已有大数据平台自己的监控体系:像Cloudera提供的CDH大数据平台等。
JMXTool:社区提供的命令行工具,能够实时监控JMX指标。此工具属于面试时加分项,知道的比较很少,而且会给人一种你对Kafka工具非常熟悉的感觉。关注Java精选公众号,面试题持续更新。如果暂时不了解它的用法,可以在命令行以无参数方式执行一下kafka-run-class.sh kafka.tools.JmxTool,学习下它的用法。
Apache Kafka与传统的消息传递技术相比优势之处在于:
快速:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作。
可伸缩:在一组机器上对数据进行分区和简化,以支持更大的数据。
持久:消息是持久性的,并在集群中进行复制,以防止数据丢失。
设计:它提供了容错保证和持久性。
kafka使用seek(TopicPartition, long)指定新的消费位置。
用于查找服务器保留的最早和最新的offset 的特殊的方法也可用。seekToBeginning(Collection)和seekToEnd(Collection)
RabbitMQ使用ack消息确认的方式保证每个消息都能被消费,开发者可根据自己的实际业务,选择channel.basicAck()方法手动确认消息被消费。
将auto.commit.offset设为false,然后在处理一批消息后commitSync()或者异步提交commitAsync()即:
ConsumerRecords<> records = consumer.poll();
for(ConsumerRecord<> record : records){
try{
consumer.commitSync();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。