当前位置: 首页 > news >正文

wordpress 提速太原百度网站快速优化

wordpress 提速,太原百度网站快速优化,建站平台详细教程,微商城网站建设新闻目录 一、引言 二、延迟插件安装 2.1. 下载插件 2.2. 安装插件 2.3. 确认插件是否生效 三、核心代码 四、运行效果 五、总结 一、引言 上一章我们讲到通过死信队列组合消息过期时间来实现延迟消息,但相对而言这并不是比较好的方式。它的代码实现相对来说比…

目录

一、引言

二、延迟插件安装

2.1. 下载插件

2.2. 安装插件 

2.3. 确认插件是否生效

三、核心代码

 四、运行效果

五、总结 


一、引言

上一章我们讲到通过死信队列组合消息过期时间来实现延迟消息,但相对而言这并不是比较好的方式。它的代码实现相对来说比较繁琐,而且关键是RabbitMQ提供死信队列的初衷并不是让我们用来发送延迟消息的,而是为了作为兜底方案,来接收没有消费的死信的,以便于定位问题。那么本章节我们就开始讲解通过延迟消息插件来实现延迟消息。

延迟消息插件可以将普通交换机改造为支持延迟消息功能的交换机,当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。

这个插件可以将普通交换机改造为支持延迟消息功能的交换机,当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。

发送消息时需要通过消息头x-delay来设置过期时间:

二、延迟插件安装

在Mac上安装RabbitMQ延迟消息插件时,确保你已经安装了RabbitMQ并且它正在运行,操作步骤如下(Linux安装步骤和方法类似,此处不做赘述):

2.1. 下载插件

从RabbitMQ官方GitHub仓库或者通过以下命令直接下载,我这里是最新版本:

wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.0.2/rabbitmq_delayed_message_exchange-4.0.2.ez

2.2. 安装插件 

将下载的插件拷贝到RabbitMQ的plugins目录,使用RabbitMQ插件管理命令安装下载的插件:

sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange

如果你的RabbitMQ是以Docker容器的方式运行的,你可以将插件下载步骤和安装步骤合并为一个Docker命令,例如:

docker run -d --name rabbitmq -e RABBITMQ_PLUGINS='rabbitmq_delayed_message_exchange' rabbitmq:3-management

这个命令会启动一个带有RabbitMQ管理插件的容器,并且会自动安装延迟消息插件。

2.3. 确认插件是否生效

安装成功后,RabbitMQ的浏览器界面上,exchange交换机在创建时,Type多了x-delayed-message选项。

请注意,具体的RabbitMQ版本和插件版本可能会更新,因此请根据实际情况下载相应的版本。 

三、核心代码

package com.example.publisher;import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.test.context.SpringBootTest;import java.nio.charset.StandardCharsets;/*** 生产者*/
@Slf4j
@SpringBootTest
class PublisherApplicationTests {@Resourceprivate RabbitTemplate rabbitTemplate;@Testvoid test() {String content = "生活不易,所以保持足够的努力,对自己要有信心,积极地去面对工作生活的挑战!";Message message = MessageBuilder.withBody(content.getBytes(StandardCharsets.UTF_8)).build();message.getMessageProperties().setDelayLong(10000L);rabbitTemplate.convertAndSend("delay.direct","delay", message);}
}
package com.example.consumer;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;import java.nio.charset.StandardCharsets;/*** 消费者*/
@Slf4j
@Component
public class SimpleListener {@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "delay.queue", durable = "true"),exchange = @Exchange(name = "delay.direct", delayed = "true"),key = "delay"))public void listener1(Message message) throws Exception {String msg = new String(message.getBody(), StandardCharsets.UTF_8); ;System.out.println("延迟消息:人生是个不断攀登的过程【" + msg + "】");}
}

 四、运行效果

我们可以看到消息在延时10秒后消费

 

五、总结 

虽然延迟插件让我们在消息延迟发送的代码实现上已经非常简洁,但是在使用延迟消息中还有一个问题就是延迟消息比较损耗性能,我们在RabbitMQ上使用延迟消息时,它的内部就会维护一个时钟,每当我们定义一个新的延迟消息它就会创建一个新的时钟。如果一个任务的延迟时间特别长,比如一小时甚至一天,将非常耗性能。所以延迟消息比较适用于延迟的时间比较短的场景,比如10分钟未支付取消订单。

但是我们如果直接设定10分钟后发送延迟消息,也不是最优解,我们将在下一章,对延迟消息做近一步的优化!

http://www.ds6.com.cn/news/104893.html

相关文章:

  • 网站图片分辨率线上推广渠道
  • 腾讯企业邮箱网页版登录入口官网重庆网站seo服务
  • 重庆沙坪坝房价东莞网络推广优化排名
  • 马鞍山政府网站建设网址查询ip地址
  • 做报告的网站seo搜索引擎优化是通过优化答案
  • 做美国市场哪个网站好最新疫情消息
  • java如何进行网站开发网络营销有什么方式
  • 陕西网站建设的内容全球搜索引擎排名2022
  • 建立了公司网站深圳整合营销
  • 怎么做网站站长视频长沙网站推广 下拉通推广
  • 大淘客网站推广位怎么做网络推广项目
  • 旅游网站开发东莞关键词排名提升
  • 北京网站建设seo优化百度推广优化公司
  • 网站开发需要学哪些培训课程安排
  • 网站建设发展历程ppt沧州网站seo
  • 网站建设 柳州百度一下官网首页百度
  • 网站怎么优化排名seo主管招聘
  • 长沙望城区政府门户网站seo程序专员
  • 企业管理软件erp佛山做优化的网络公司
  • 建立独立域名的网站怎样才算是自己的什么是seo文章
  • 苏州新区网站制作建设推南昌百度快速排名提升
  • 美术对网站开发有用吗四川seo推广
  • 磁贴式网站模板打开百度首页
  • 新网站怎么做seo 风享如何注册网站
  • 美的地产集团官方网站建设事件营销的案例有哪些
  • 企业管理六大体系华为seo诊断及优化分析
  • 网站建设 关于我们谷歌seo公司
  • 国内免费顶级域名网站域名关键词查询
  • flash做网站的论文百度2022年版本下载
  • 哪些网站是用asp.net做的日本樱花免m38vcom费vps