中间件
文章平均质量分 82
林寻星辰
这个作者很懒,什么都没留下…
展开
-
RPC框架dubbo的学习
Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。原创 2023-02-21 19:12:28 · 833 阅读 · 12 评论 -
面试题(二十二)消息队列与搜索引擎
参考答案推模式:推模式是服务器端根据用户需要,由目的、按时将用户感兴趣的信息主动发送到用户的客户端。对用户要求低,方便用户获取需要的信息;及时性好,服务器端及时地向客户端推送更新动态信息,吞吐量大。不能确保发送成功,推模式采用广播方式,只有服务器端和客户端在同一个频道上,推模式才有效,用户才能接收到信息;没有信息状态跟踪,推模式采用开环控制技术,一个信息推送后的状态,比如客户端是否接收等,无从得知;针对性较差。推送的信息可能并不能满足客户端的个性化需求。原创 2023-02-12 16:58:19 · 450 阅读 · 1 评论 -
RabbitMQ部署指南
我们在Centos7虚拟机中使用Docker来安装。原创 2023-01-01 16:25:29 · 356 阅读 · 0 评论 -
RabbitMQ 其他知识点
用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等。原创 2022-12-09 17:24:53 · 86 阅读 · 0 评论 -
RabbitMQ之发布确认
可以看到,发送了两条消息,第一条消息的 RoutingKey 为 "key1",第二条消息的 RoutingKey 为。"key2",两条消息都成功被交换机接收,也收到了交换机的确认回调,但消费者只收到了一条消息,因为。有了 mandatory 参数和回退消息,我们获得了对无法投递消息的感知能力,有机会在生产者的消息。但有时候,我们并不知道该如何处理这些无法路由的消息,最多打个日志,然。后触发报警,再来手动处理。处理失败的消息,可是这些不可路由消息根本没有机会进入到队列,因此无法使用死信队列来保存消息。原创 2022-12-09 16:49:47 · 1938 阅读 · 0 评论 -
RabbitMQ之延迟队列
延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。这些场景都有一个特点,需要在某个事件发生之后或者之前的指定时间点完成某一项任务,如:发生订单生成事件,在十分钟之后检查该订单支付状态,然后将未支付的订单进行关闭;看起来似乎使用定时任务,一直轮询数据,每秒查一次,取出需要被处理的数据,然后处理不就完事了吗?如果数据量比较少,确实可以这样做,比如:对于“如果账单一周内未支付则进原创 2022-12-07 13:52:30 · 2618 阅读 · 0 评论 -
RabbitMQ之死信队列
先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中.还有比如说: 用户原创 2022-12-07 09:05:17 · 124 阅读 · 0 评论 -
RabbitMQ学习笔记之交换机
在上一节中,我们创建了一个工作队列。我们假设的是工作队列背后,每个任务都恰好交付给一个消费者(工作进程)。在这一部分中,我们将做一些完全不同的事情-我们将消息传达给多个消费者。这种模式称为 ”发布/订阅”.为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消息,第二个程序是消费者。其中我们会启动两个消费者,其中一个消费者接收到消息后把日志存储在磁盘另外一个消费者接收到消息后把消息打印在屏幕上,事实上第一个程序发出的日志消息将广播给所有消费 者RabbitMQ 消息传递模原创 2022-12-06 18:14:27 · 497 阅读 · 0 评论 -
RabbitMQ学习笔记之发布确认
生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消 息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会在将消息写入磁盘之后发出,broker 回传给生产者的确认消息中 delivery-tag 域包含了确认消息的序列号,此外 broker 也可以设置basic.ack 的m原创 2022-12-05 21:30:50 · 108 阅读 · 0 评论 -
RabbitMQ学习笔记之Work Queues
工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。在这个案例中我们会启动两个工作线程,一个消息发送线程,我们来看看他们两个工作线程是如何工作的。3.1.2. 启动两个工作线程设置可以轮询运行3.1.4. 结果展示通过程序执行发现生产者总共发送 4 个消息,消费者 1 和消费者 2 分别分原创 2022-12-05 08:15:54 · 196 阅读 · 0 评论 -
RabbitMQ学习笔记之快速入门
目录创建一个maven项目2.1. 依赖2.2. 消息生产者2.3. 消息消费者将用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者,介绍 Java API 中的一些细节。在下图中,“ P”是我们的生产者,“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区2.2. 消息生产者运行结果:运行结果原创 2022-12-04 15:53:28 · 123 阅读 · 0 评论 -
RabbitMQ学习笔记
目录尚硅谷mq视频学习笔记1.1. MQ 的相关概念1.1.1. 什么是MQ1.1.2. 为什么要用MQ1.1.3. MQ 的分类1.ActiveMQ2.Kafka3.RocketMQ4.RabbitMQ1.1.4. MQ 的选择1.Kafka2.RocketMQ3.RabbitMQ1.2. RabbitMQ1.2.1. RabbitMQ 的概念1.2.2. 四大核心概念1.2.3. RabbitMQ 核心部分1.2.4. 各个名词介绍1.2.5. 安装安装包安装(比较麻烦)docker安装(比较快捷方便)原创 2022-12-04 14:11:47 · 401 阅读 · 0 评论