消息队列
文章平均质量分 95
JackSparrow414
认真对待问题、思考问题、解决问题
展开
-
Kafka(六)利用Kafka Connect+Debezium通过CDC方式将Oracle数据库的数据同步至PostgreSQL中以及实现缓存一致性
sourceConnector.jar,将源数据导入至Kafka的topic中sinkConnector.jar,将Kafka topic中的数据导入至目标源但是Kafka并没有提供特别丰富的connector,那么Debezium就出现了。你可以把Debezium简单理解成是CDC技术的一种实现,并提供了很多数据库的sourceConnector.jar和sinkConnector.jar。原创 2023-12-02 15:53:24 · 2200 阅读 · 2 评论 -
Kafka(五)消费者回调 +定时重试 + 理解Rebalance
至此为止,利用Kafka实现一个消息系统就基本完成了,所有关键的代码都在不同的博文中并进行了详细说明,说过想要体会完整的设计、实现思路,请移步源码仓库获取完整代码。下一篇关于Kafak的博文打算分享一下如何利用Kafka Connect将Oracle数据库的数据同步到Postgre SQL中。原创 2023-11-25 08:47:43 · 2218 阅读 · 0 评论 -
Kafka(四)消费者消费JSON消息+使用统一反序列化器+提升吞吐量
在生产者端,我们发送自定义的对象时,利用自定义序列化类将其序列化为JSON。在消费者端,我们同样需要自定义反序列类将JSON转为我们之前的对象@Override在处理消费者相关逻辑时,我们重点关系如何确保消息不重复消费以及如何增加消费者的吞吐量消费逻辑尽可能保证处理速度快,尽量减少耗时的逻辑。原创 2023-11-18 15:16:13 · 1613 阅读 · 0 评论 -
Kafka(三)生产者发送JSON消息+使用统一序列化器+提升吞吐量
消息格式为JSON, 使用Jackson将类序列化为JSON字符串@Override在实际编码过程中,可以参考官方写的Kafka权威指南对应章节书写,或者参考各大云服务厂商的Kafak的开发者文档。不过我建议还是看Kafka权威指南, 我看了阿里云和华为云的,虽然都号称兼容开源Kafka,但是发现其版本和开源版本之间存在一定的滞后性,许多最佳实践已经过时Kafka生产者端没什么特别的,主要是根据业务场景设计消息格式,以及如何尽可能的减小消息体积。原创 2023-11-13 20:23:42 · 3325 阅读 · 0 评论 -
Kafka(二)将邮件发送从业务系统中解耦之消息系统设计
当多个系统之间通过Kafka来解耦时,在系统设计初期,基本的要求都是相似的,只不过是消费消息时的业务逻辑可能不同。本文以业务系统和邮件系统解耦作为示例。业务系统需要发送邮件时,不在自身服务器上发送邮件, 不通过RPC的方式调用邮件系统,而是通过将发送邮件需求以消息的形式发送到Kafak, 邮件系统通过从Kafka中消费消息来发送邮件。通过这样的解耦有以下几点好处由于业务系统不直接调用邮件系统,所以不会将压力给到邮件系统,避免两个系统因大量的请求响应而出现的系统不稳定问题。原创 2023-11-04 19:34:25 · 943 阅读 · 3 评论 -
Kafka(一)使用Docker Compose安装单机Kafka+Kafka UI+Prometheus JMX Exporter
这里我们的配置是选择的是KRaft,因为Kafka官方已经计划在Kafak中移除Zookeeper。对于UI配置项没什么特别要说的,这里只是提一下,注意这里的docker-compose.yml中environment的写法,和上面的Kafka镜像中environment的写法不同,这是两种不同的写法。> 文档网址 > Compose examples 下面可以找打很多Kafak ui的compose文件示例,不仅对UI的配置很有帮助,而且对刚入门Kafka的同学,也提供了非常好的示例,原创 2023-09-30 14:43:33 · 10159 阅读 · 6 评论 -
RabbitMQ和Spring AMQP学习五(延迟队列)
文章目录RabbitMQ和Spring AMQP学习五(延迟队列)使用场景使用前准备选择方案安装插件编码声明延迟exchange查看控制台发送消息设置延迟时间简单验证示例代码参考RabbitMQ和Spring AMQP学习五(延迟队列)使用场景对于消息延迟队列的使用场景,网上大多数都是最最常见的场景,即订单超时未支付。实际上使用的场景很多,比如,一个教学系统,老师发作业,老师自定义发作业时间,只有到达定义的发布时间,才真正的进行发作业。这里就可以用到消息队列,即,教师设置发作业时间,将发作业事件推送进原创 2021-02-13 19:59:25 · 483 阅读 · 0 评论 -
Rabbit MQ和Spring AMQP学习四(JSON消息体)
文章目录Rabbit MQ和Spring AMQP学习四(JSON消息体)Jackson2JsonMessageConverter配置Producer端配置Consumer端配置Consumer端接收JSONRabbit MQ和Spring AMQP学习四(JSON消息体)实际应用场景中,消息的发送和接收大多数情况都是使用Java Object完成的。那么就涉及到两个问题,Producer如何发送Java对象,Consumer如何接收Java对象Jackson2JsonMessageConverter原创 2021-01-17 15:23:20 · 740 阅读 · 0 评论 -
Rabbit MQ 和Spring AMQP学习三(消息的可靠性)
文章目录Rabbit MQ 和Spring AMQP学习三(消息的可靠性)Producer端对于消息投递的可靠性可能会出现问题的地方解决措施如何确定消息能否到达对应的Exchange到达Exchange之后,如何确定消息可以到达对应的QueueExchange如何保证存储在其中的消息在分发之前不丢失Exchange发送消息给Queue时,如何保证Queue接收到Server端对于消息保存的可靠性Server端Broker的相关组件要可重新加载对于消息的可持久化Consumer端对于消息的消费的可靠性手动确认原创 2020-12-28 21:14:58 · 692 阅读 · 4 评论 -
RabbitMQ和Spring AMQP学习二(消息模型详解、Spring AMQP启动流程分析-超详细)
文章目录RabbitMQ和Spring AMQP学习二RabbitMQ消息模型BrokerConnectionChannel背景使用Java ClientSpring AMQP使用详解消息队列使用规范哪些配置该配置在生产者端?哪些配置该配置在消费者端?使用PoolChannelConnectionFactorymaxTotal设置为多少合适?Spring AMQP启动流程开启消费者线程初始化消费者RabbitAdmin声明Exchange、Queue、Binding扫描@RabbitListener注解完整原创 2020-12-20 21:58:46 · 731 阅读 · 0 评论 -
RabbitMQ和Spring AMQP学习一
文章目录RabbitMQ和Spring AMQP学习一下载和安装基本概念背景知识ProducerRouting KeyExchangeBindingQueue控制台的基本使用设置virtual hosts通过控制台发送消息(发送时报No method found for class [B==解决方法)Spring AMQP基本使用配置Exchange、Queue、Binding消费者监听消息队列,以便随时消费任务生产者向Exchange发送消息小技巧RabbitMQ和Spring AMQP学习一下载和安原创 2020-12-20 21:23:53 · 252 阅读 · 0 评论