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

个人做商城网站大概多少钱阜新网站seo

个人做商城网站大概多少钱,阜新网站seo,网站的制作方法,国外便宜的云服务器RabbitMQ队列详细属性 1、队列的属性介绍1.1、Type:队列类型1.2、Name:队列名称1.3、Durability:声明队列是否持久化1.4、Auto delete: 是否自动删除1.5、Exclusive:1.6、Arguments:队列的其他属性&#xf…

RabbitMQ队列详细属性

  • 1、队列的属性介绍
    • 1.1、Type:队列类型
    • 1.2、Name:队列名称
    • 1.3、Durability:声明队列是否持久化
    • 1.4、Auto delete: 是否自动删除
    • 1.5、Exclusive:
    • 1.6、Arguments:队列的其他属性,例如指定DLX(死信交换机等);
  • 2、队列的属性代码验证
    • 2.1、Auto delete
      • 2.1.1、RabbitConfig配置类(关键代码)
      • 2.1.2、发送消息
      • 2.1.3、接收消息
      • 2.1.4、启动类
      • 2.1.5、配置文件application.yml
      • 2.1.6、配置文件pom.xml
      • 2.1.7、测试
    • 2.2、Arguments参数属性之x-overflow和x-max-length
      • 2.2.1、RabbitConfig配置类
      • 2.2.2、其他代码同上
      • 2.2.3、测试
    • 2.3、Arguments参数属性之x-single-active-consumer
      • 2.3.1、消费者
      • 2.3.2、RabbitConfig配置类
      • 2.3.3、测试
    • 2.4、Arguments参数属性之x-max-length-bytes
    • 2.5、Arguments参数属性之x-max-priority
      • 2.5.1、设置优先级
      • 2.5.2、测试

1、队列的属性介绍

在这里插入图片描述

1.1、Type:队列类型

在这里插入图片描述

1.2、Name:队列名称

就是一个字符串,随便一个字符串就可以;

1.3、Durability:声明队列是否持久化

声明队列是否持久化,代表队列在服务器重启后是否还存在,默认值为true;

1.4、Auto delete: 是否自动删除

如果为true,当没有消费者连接到这个队列的时候,队列会自动删除;默认为false

1.5、Exclusive:

exclusive属性的队列只对首次声明它的连接可见,并且在连接断开时自动删除;
基本上不设置它,设置成false

1.6、Arguments:队列的其他属性,例如指定DLX(死信交换机等);

1、x-expires:Number
当Queue(队列)在指定的时间未被访问,则队列将被自动删除;
在指定时间内,队列未被使用(没有被消费者访问),就会自动删除该队列。
在这里插入图片描述

2、x-message-ttl:Number
发布的消息在队列中存在多长时间后被取消(单位毫秒);
消息发送到队列中后,在指定时间后会过期。
在这里插入图片描述

3、x-overflow:String
设置队列溢出行为,当达到队列的最大长度时,消息会发生什么,有效值为Drop Head或Reject Publish;
默认值是Drop Head,即如果队列满了,会从头部开始删除消息,继续接收新的消息
Reject Publish拒绝发布,如果队列满了,就不再接收新的消息了。

在这里插入图片描述

4、x-max-length:Number
队列所能容下消息的最大长度,当超出长度后,新消息将会覆盖最前面的消息,类似于Redis的LRU算法;

在这里插入图片描述

5、 x-single-active-consumer:默认为false
激活单一的消费者,也就是该队列只能有一个消息者消费消息;
如果设置该值为true,那么只能设置一个消费者接收消息。

在这里插入图片描述

6、x-max-length-bytes:Number
限定队列的最大占用空间,当超出后也使用类似于Redis的LRU算法;

在这里插入图片描述

7、x-dead-letter-exchange:String
指定队列关联的死信交换机,有时候我们希望当队列的消息达到上限后溢出的消息不会被删除掉,而是走到另一个队列中保存起来;

8.x-dead-letter-routing-key:String
指定死信交换机的路由键,一般和6一起定义;

9.x-max-priority:Number
如果将一个队列加上优先级参数,那么该队列为优先级队列;
(1)给队列加上优先级参数使其成为优先级队列
x-max-priority=10【0-255取值范围】
(2)给消息加上优先级属性
通过优先级特性,将一个队列实现插队消费;
MessageProperties messageProperties=new MessageProperties();
messageProperties.setPriority(8);

10、x-queue-mode:String(理解下即可)
队列类型x-queue-mode=lazy懒队列,在磁盘上尽可能多地保留消息以减少RAM使用,如果未设置,则队列将保留内存缓存以尽可能快地传递消息;

在这里插入图片描述

11、x-queue-master-locator:String(用的较少)
在集群模式下设置队列分配到的主节点位置信息;
每个queue都有一个master节点,所有对于queue的操作都是事先在master上完成,之后再slave上进行相同的操作;
每个不同的queue可以坐落在不同的集群节点上,这些queue如果配置了镜像队列,那么会有1个master和多个slave。
基本上所有的操作都落在master上,那么如果这些queues的master都落在个别的服务节点上,而其他的节点又很空闲,这样就无法做到负载均衡,那么势必会影响性能;
关于master queue host 的分配有几种策略,可以在queue声明的时候使用x-queue-master-locator参数,或者在policy上设置queue-master-locator,或者直接在rabbitmq的配置文件中定义queue_master_locator,有三种可供选择的策略:
(1)min-masters:选择master queue数最少的那个服务节点host;
(2)client-local:选择与client相连接的那个服务节点host;
(3)random:随机分配;

2、队列的属性代码验证

2.1、Auto delete

在这里插入图片描述

2.1.1、RabbitConfig配置类(关键代码)

在这里插入图片描述

package com.power.config;import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitConfig {@Value("${my.exchangeName}")private String exchangeName;@Value("${my.queueName}")private String queueName;//创建交换机@Beanpublic DirectExchange directExchange(){return ExchangeBuilder.directExchange(exchangeName).build();}//创建队列@Beanpublic Queue queue(){return QueueBuilder.durable(queueName).autoDelete().build();}@Beanpublic Binding binding(DirectExchange exchangeName,Queue queueName){return BindingBuilder.bind(queueName).to(exchangeName).with("info");}
}

2.1.2、发送消息

package com.power.service;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.Date;@Service
@Slf4j
public class MessageService {@Resourceprivate RabbitTemplate rabbitTemplate;@Value("${my.exchangeName}")private String exchangeName;@Beanpublic void sendMsg(){Message message = MessageBuilder.withBody("hello world".getBytes()).build();rabbitTemplate.convertAndSend(exchangeName,"info",message);log.info("消息发送完毕,发送时间是:"+new Date());}
}

2.1.3、接收消息

package com.power.message;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
@Slf4j
public class ReceiveMessage {private static final String queueName="queue.queueProperties.01";@RabbitListener(queues={queueName})public void receiveMsg(Message message){log.info("接收到队列的消息:{}",new String(message.getBody()));}
}

2.1.4、启动类

package com.power;import com.power.service.MessageService;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.Resource;@SpringBootApplication
public class Application implements ApplicationRunner {@Resourceprivate MessageService messageService;public static void main(String[] args) {SpringApplication.run(Application.class);}@Overridepublic void run(ApplicationArguments args) throws Exception {messageService.sendMsg();}
}

2.1.5、配置文件application.yml

server:port: 8080
spring:application:name: rabbit_11_quque_properties01_autoDeleterabbitmq:host: 你的服务器IPport: 5672username: 你的账号password: 你的密码virtual-host: powermy:exchangeName: exchange.queueProperties.01queueName: queue.queueProperties.01

2.1.6、配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.power</groupId><artifactId>rabbit_11_quque_properties01_autoDelete</artifactId><version>1.0-SNAPSHOT</version><name>rabbit_11_quque_properties01_autoDelete</name><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.1.7、测试

启动服务:消息发送成功,接收消息成功
在这里插入图片描述登录rabbitmq后台,查看到有一个队列

在这里插入图片描述
此时我们停止服务,即断掉消费者和队列的联系,队列会自动删除。

在这里插入图片描述

2.2、Arguments参数属性之x-overflow和x-max-length

2.2.1、RabbitConfig配置类

在这里插入图片描述

package com.power.config;import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.HashMap;
import java.util.Map;@Configuration
public class RabbitConfig {@Value("${my.exchangeName}")private String exchangeName;@Value("${my.queueName}")private String queueName;//创建交换机@Beanpublic DirectExchange directExchange(){return ExchangeBuilder.directExchange(exchangeName).build();}//创建队列@Beanpublic Queue queue(){Map<String,Object> arguments = new HashMap<>();arguments.put("x-overflow","reject-publish");//队列的溢出行为,默认是删除头部,此处设置未拒绝发布(当队列满了之后,不再接收消息)arguments.put("x-max-length",5);//队列的最大长度return new Queue(queueName,true,false,false,arguments);}@Beanpublic Binding binding(DirectExchange directExchange,Queue queue){return BindingBuilder.bind(queue).to(directExchange).with("info");}
}

2.2.2、其他代码同上

2.2.3、测试

启动服务,登录rabbitmq后台。
我们发现当设置为arguments.put(“x-overflow”,“reject-publish”);和arguments.put(“x-max-length”,5);时,我们发现队列里只存放了5条消息。后边的678三条消息并没有进入队列。
在这里插入图片描述

2.3、Arguments参数属性之x-single-active-consumer

2.3.1、消费者

我们设置多个消费者,接收生产者发送的消息

package com.power.message;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;import java.util.Date;@Component
@Slf4j
public class ReceiveMessage {@RabbitListener(queues={"queue.properties.03"})public void receiveMsg1(Message message){byte[] body = message.getBody();String msg = new String(body);log.info("1监听到的消息是:"+msg+",接收的时间是:"+new Date());}@RabbitListener(queues={"queue.properties.03"})public void receiveMsg2(Message message){byte[] body = message.getBody();String msg = new String(body);log.info("2监听到的消息是:"+msg+",接收的时间是:"+new Date());}@RabbitListener(queues={"queue.properties.03"})public void receiveMsg3(Message message){byte[] body = message.getBody();String msg = new String(body);log.info("3监听到的消息是:"+msg+",接收的时间是:"+new Date());}}

2.3.2、RabbitConfig配置类

package com.power.config;import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.HashMap;
import java.util.Map;@Configuration
public class RabbitConfig {@Value("${my.exchangeName}")private String exchangeName;@Value("${my.queueName}")private String queueName;//创建交换机@Beanpublic DirectExchange directExchange(){return ExchangeBuilder.directExchange(exchangeName).build();}//创建队列@Beanpublic Queue queue(){Map<String,Object> arguments = new HashMap<>();return new Queue(queueName,true,false,false,arguments);}@Beanpublic Binding binding(DirectExchange directExchange,Queue queue){return BindingBuilder.bind(queue).to(directExchange).with("info");}
}

2.3.3、测试

启动服务,我们发现,当不设置该参数时,3个消费者都可以接收到消息

当设置了该参数时:只有一个消费者可以接收到消息
在这里插入图片描述

在这里插入图片描述

2.4、Arguments参数属性之x-max-length-bytes

如下图所示,修改RabbitConfig类,设置队列的x-max-length-bytes属性值为100

在这里插入图片描述

尝试发送100条消息
在这里插入图片描述
启动服务,登录rabbitmq后台:
可以看到队列中只有7条消息
在这里插入图片描述

2.5、Arguments参数属性之x-max-priority

2.5.1、设置优先级

给队列设置优先级
在这里插入图片描述
给队列中的消息设置优先级
在这里插入图片描述

2.5.2、测试

启动服务,登录rabbitmq后台

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.hkea.cn/news/971086/

相关文章:

  • 广东做网站公司广州从化发布
  • 能发外链的网站国际新闻今天最新消息
  • 做软件的网站关键词优化快速排名
  • 网站建设与管理简介网站链接交易
  • 英文网站建设教程网盘资源搜索神器
  • 做旅游网站的引言最新网络推广平台
  • 服务器上给网站做301跳转企业网站注册
  • 网站建设好做吗乐事薯片软文推广
  • wordpress 年月归档如何优化培训体系
  • 威海高区建设局网站长春做网络优化的公司
  • 安平做网站百度一下首页百度一下知道
  • 苏州建设网站市政中标项目如何做推广引流赚钱
  • 17网站一起做网店怎么下单来宾网站seo
  • 建设商务网站的目的天津seo网站排名优化公司
  • 阿里巴巴网站导航栏怎么做口碑营销策划方案
  • 线上做交互的网站百度app下载
  • 做暖暖欧美网站挖掘爱站网
  • 网站 风格百度推广公司
  • 林州网站建设公司站长工具关键词排名怎么查
  • 想给公司做个网站微信seo是什么意思
  • 网站做管制户外刀具营销推广方案模板
  • 淘宝客网站免费做seo网站关键词优化机构
  • 企业做网站建设的好处seo网站关键词优化
  • 一般网站用什么做的最新新闻国内大事件
  • 做线上网站需要钱吗互联网营销推广
  • 找个美工做淘宝网站需要多少钱南昌seo方案
  • 网站用户登录流程图外贸高端网站设计公司
  • 做搜狗手机网站优化软代写
  • wordpress页面背景颜色win7优化设置
  • 做分类信息网站代码百度搜索推广优化师工作内容