随笔分类 -  消息中间件

摘要:1.创建Maven工程,pom.xml引入依赖: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>4.1.0</version> </dependency> 2.生产 阅读全文
posted @ 2022-02-09 14:48 47号Gamer丶 阅读(245) 评论(0) 推荐(0) 编辑
摘要:一、kafka 简介 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 1.1 kafka名词解释 pr 阅读全文
posted @ 2022-02-09 09:45 47号Gamer丶 阅读(67) 评论(0) 推荐(0) 编辑
摘要:在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 1、 定时任务有明确的触发时间,延时 阅读全文
posted @ 2020-10-29 17:01 47号Gamer丶 阅读(253) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ消息最终一致性解决方案 随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A 阅读全文
posted @ 2020-10-21 14:14 47号Gamer丶 阅读(4379) 评论(1) 推荐(1) 编辑
摘要:文章前言 众所周知,当遇到比较多数据不一致的问题时,大多数都是因为并发请求时,没及时处理的原因,提一个电商平台比较经常出现得高并发场景限时秒杀活动,他们是怎么来防止超卖呢?如何实现高并发秒杀呢?。本文模拟了高并发秒杀,并且防止了超卖,也模拟了纯数据库秒杀超卖得场景,本次模拟demo得框架技术为:Sp 阅读全文
posted @ 2020-10-09 18:18 47号Gamer丶 阅读(1237) 评论(0) 推荐(0) 编辑
摘要:配置文件application.properties: spring.application.name=spring-boot-rabbitmq spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.user 阅读全文
posted @ 2020-10-09 14:03 47号Gamer丶 阅读(1760) 评论(0) 推荐(0) 编辑
摘要:很多时候我们想定时去做某件事情的时候我们会首先想到定时任务,quartz是个不错的选择,但是也有缺点,假如配置在项目中,集群部署会有重复执行的问题,如果持久化在mysql中,解决了集群的问题,但是过于依赖mysql,耦合严重,当然还有日志量庞大、执行时间精度、过于耗费系统资源等等问题。所以这时候使用 阅读全文
posted @ 2020-10-09 11:49 47号Gamer丶 阅读(936) 评论(0) 推荐(0) 编辑
摘要:1.生产者丢数据 生产者的消息没有投递到MQ中怎么办?从生产者弄丢数据这个角度来看,RabbitMQ提供transaction和confirm模式来确保生产者不丢消息。transaction机制就是说,发送消息前,开启事物(channel.txSelect()),然后发送消息,如果发送过程中出现什么 阅读全文
posted @ 2020-10-09 11:17 47号Gamer丶 阅读(220) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud Stream是构建消息驱动的微服务应用程序框架。提供统一的接收发送管道以连接到消息代理。通过@EnableBinding注解开启SpringCloudStream的支持。通过@StreamListener注解,使其接收流处理的时间。 一、引入依赖包 <dependency> 阅读全文
posted @ 2020-09-29 21:58 47号Gamer丶 阅读(540) 评论(0) 推荐(0) 编辑
摘要:消息中间件的背景分析 场景分析 前面,我们可以使用阻塞队列+线程池来实现生产者消费者模式。比如说在一个应用中,A方法调用B方法去执行一些任务处理。我们可以同步调用。但是 如果这个时候请求比较多的情况下,同步调用比较耗时会导致请求阻塞。我们会使用阻塞队列加线程池 来实现异步任务的处理。 那么,问题来了 阅读全文
posted @ 2020-09-29 15:22 47号Gamer丶 阅读(269) 评论(0) 推荐(0) 编辑
摘要:如何处理所有的Replica不工作的情况 在ISR中至少有一个follower时,Kafka可以确保已经commit的数据不丢失,但如果某个Partition的所有Replica都宕机了,就无法保证数据不丢失了 1. 等待ISR中的任一个Replica“活”过来,并且选它作为Leader; 2. 选 阅读全文
posted @ 2020-09-28 21:54 47号Gamer丶 阅读(272) 评论(0) 推荐(0) 编辑
摘要:消息中间件能做什么 消息中间件主要解决的就是分布式系统之间消息传递的问题,它能够屏蔽各种平台以及协议之间的特性,实现应用程序之间的协同。举个非常简单的例子,就拿一个电商平台的注册功能来简单分析下,用 户注册这一个服务,不单单只是insert一条数据到数据库里面就完事了,还需要发送激活邮件、发送新人红 阅读全文
posted @ 2020-09-28 21:51 47号Gamer丶 阅读(840) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示