RabbitMQ学习笔记04

  • 01 过期时间TTL
    • 队列ttl
    • 消息ttl
  • 02 死信队列
  • 03 RabbitMQ内存磁盘的监控
  • RabbitMQ集群搭建
    • CentOS搭建rabbitmq集群
    • docker搭建rabbitmq集群

01 过期时间TTL

过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。

第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。
第二种方法是对消息进行单独设置,每条消息TTL可以不同。

如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列, 消费者将无法再收到该消息。

队列ttl

配置ttl队列

@Configuration
public class TTLRabbitMQConfiguration {//交换机@Beanpublic DirectExchange ttlDirectExchange(){return new DirectExchange("ttl_direct_exchange", true, false);}//队列@Beanpublic Queue directTtlQueue(){//设置过期时间Map<String, Object> args = new HashMap<>();args.put("x-message-ttl", 5000); //注意这里一定是一个int类型return new Queue("ttl.direct.queue", true, false, false, args);}//绑定@Beanpublic Binding directTTLSmsBinding(){return BindingBuilder.bind(directTtlQueue()).to(ttlDirectExchange()).with("ttl");}}

生产者方法

public void makeOrderTtl(int userId, int productId, int num) {//1.根据商品id查询库存是否充足//2.保存订单String orderId = UUID.randomUUID().toString();System.out.println("订单生产成功" + orderId);//3.通过MQ来完成消息的分发String exchangeName = "ttl_direct_exchange";String routingKey = "ttl";/*分发方法* param1 交换机* param2 Routing key/队列名称* param3 消息内容* */rabbitTemplate.convertAndSend(exchangeName, routingKey, orderId);

运行生产者模块的测试发送消息给ttl队列
从Web端可以看到5秒后消息过期消失

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

消息ttl

新增普通队列

@Beanpublic Queue directTtlMessageQueue(){return new Queue("ttl.message.direct.queue", true);}@Beanpublic Binding directTTLMessageBinding(){return BindingBuilder.bind(directTtlMessageQueue()).to(ttlDirectExchange()).with("ttlMessage");}

生产方法

public void makeOrderTtlMessage(int userId, int productId, int num) {//1.根据商品id查询库存是否充足//2.保存订单String orderId = UUID.randomUUID().toString();System.out.println("订单生产成功" + orderId);//3.通过MQ来完成消息的分发String exchangeName = "ttl_direct_exchange";String routingKey = "ttlMessage";//给消息设置过期时间MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {@Overridepublic Message postProcessMessage(Message message) throws AmqpException {message.getMessageProperties().setExpiration("5000");//这里是String类型message.getMessageProperties().setContentEncoding("UTF-8");return message;}};/*分发方法* param1 交换机* param2 Routing key/队列名称* param3 消息内容* */rabbitTemplate.convertAndSend(exchangeName, routingKey, orderId, messagePostProcessor);}

注:设置过期的消息,过期后不会移入死信队列,但设置了ttl的队列中过期的消息可以集中转移到死信队列

02 死信队列

DLX,全称为Dead-Letter-Exchange , 可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列。
消息变成死信,可能是由于以下的原因:

  • 消息被拒绝
  • 消息过期
  • 队列达到最大长度

DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。当这个队列中存在死信时,Rabbitmq就会自动地将这个消息重新发布到设置的DLX上去,进而被路由到另一个队列,即死信队列。
要想使用死信队列,只需要在定义队列的时候设置队列参数x-dead-letter-exchange指定交换机即可。

死信队列和交换机配置

@Configuration
public class DeadRabbitMQConfiguration {//交换机@Beanpublic DirectExchange deadDirectExchange(){return new DirectExchange("dead_direct_exchange", true, false);}//队列@Beanpublic Queue deadQueue(){return new Queue("dead.direct.queue", true);}//绑定@Beanpublic Binding deadBinding(){return BindingBuilder.bind(deadQueue()).to(deadDirectExchange()).with("dead");}}

只是普通交换机和普通队列,将其指定为死信队列和死信交换机需要在ttl队列配置中指定
在这里插入图片描述
配置这两个参数

//队列@Beanpublic Queue directTtlQueue(){//设置过期时间Map<String, Object> args = new HashMap<>();args.put("x-message-ttl", 5000); //注意这里一定是一个int类型args.put("x-dead-letter-exchange", "dead_direct_exchange");args.put("x-dead-letter-routing-key", "dead");return new Queue("ttl.direct.queue", true, false, false, args);}

在这里插入图片描述
报错原因:队列一旦创建过,修改其参数不会覆盖,所以需要删掉队列重新创建
在这里插入图片描述
过期时间后,ttl.direct.queue中的消息就会被投放到死信队列中

设置ttl.direct.queue最大消息长度,超过长度后拒绝消息,从而投放到私信队列中

//队列@Beanpublic Queue directTtlQueue(){//设置过期时间Map<String, Object> args = new HashMap<>();//args.put("x-message-ttl", 5000); //注意这里一定是一个int类型args.put("x-max-length", 5);args.put("x-dead-letter-exchange", "dead_direct_exchange");args.put("x-dead-letter-routing-key", "dead");return new Queue("ttl.direct.queue", true, false, false, args);}

循环发十一条消息

 @Testpublic void testTtlDirect(){for (int i = 0; i < 11; i++)orderService.makeOrderTtl(1, 1, 12);}

结果:
在这里插入图片描述
被拒绝的六条消息被转发到了死信队列

03 RabbitMQ内存磁盘的监控

RabbitMQ的内存警告
当内存使用超过配置的阈值或者磁盘空间剩余空间对于配置的阈值时,RabbitMQ会暂时阻塞客户端的连接,并且停止接收从客户端发来的消息,以此避免服务器的崩溃,客户端与服务端的心态检测机制也会失效。
在这里插入图片描述
在这里插入图片描述
OverView中,显示内存137MB,若达到735M,就会警告。
持久化:将内存中的数据同步到磁盘的过程。
爆红之后消息队列无法再接收消息。

RabbitMQ的内存控制
参考帮助文档:https://www.rabbitmq.com/configure.html
当出现警告的时候,可以通过配置去修改和调整
命令的方式:

rabbitmqctl set_vm_memory_high_watermark <fraction>
rabbitmqctl set_vm_memory_high_watermark absolute 50MB

fraction/value 为内存阈值。默认情况是:0.4/2GB,代表的含义是:当RabbitMQ的内存超过40%时,就会产生警告并且阻塞所有生产者的连接。通过此命令修改阈值在Broker重启以后将会失效,通过修改配置文件方式设置的阈值则不会随着重启而消失,但修改了配置文件一样要重启broker才会生效。

配置文件的方式:
配置文件:/etc/rabbitmq/rabbitmq.conf

#默认
#vm_memory_high_watermark.relative = 0.4
# 使用relative相对值进行设置fraction,建议取值在04~0.7之间,不建议超过0.7.
vm_memory_high_watermark.relative = 0.6
# 使用absolute的绝对值的方式,但是是KB,MB,GB对应的命令如下
vm_memory_high_watermark.absolute = 2GB

RabbitMQ的内存换页
在某个Broker节点及内存阻塞生产者之前,它会尝试将队列中的消息换页到磁盘以释放内存空间,持久化和非持久化的消息都会写入磁盘中,其中持久化的消息本身就在磁盘中有一个副本,所以在转移的过程中持久化的消息会先从内存中清除掉。
默认情况下,内存到达的阈值是50%时就会换页处理。
也就是说,在默认情况下该内存的阈值是0.4的情况下,当内存超过0.40.5=0.2时,会进行换页动作。
默认情况下,内存到达的阈值是50%时就会换页处理。
也就是说,在默认情况下该内存的阈值是0.4的情况下,当内存超过0.4
0.5=0.2时,会进行换页动作。
可以通过设置 vm_memory_high_watermark_paging_ratio 来进行调整。

vm_memory_high_watermark.relative = 0.4
vm_memory_high_watermark_paging_ratio = 0.7(设置小于1的值)

RabbitMQ的磁盘预警
当磁盘的剩余空间低于确定的阈值时,RabbitMQ同样会阻塞生产者,这样可以避免因非持久化的消息持续换页而耗尽磁盘空间导致服务器崩溃。
默认情况下:磁盘预警为50MB的时候会进行预警。表示当前磁盘空间第50MB的时候会阻塞生产者并且停止内存消息换页到磁盘的过程。
这个阈值可以减小,但是不能完全的消除因磁盘耗尽而导致崩溃的可能性。比如在两次磁盘空间的检查空隙内,第一次检查是:60MB ,第二检查可能就是1MB,就会出现警告。
通过命令修改:

rabbitmqctl set_disk_free_limit  <disk_limit>
rabbitmqctl set_disk_free_limit memory_limit  <fraction>
disk_limit:固定单位 KB MB GB
fraction :是相对阈值,建议范围在:1.0~2.0之间。(相对于内存)

通过配置文件修改:

disk_free_limit.relative = 3.0
disk_free_limit.absolute = 50mb

RabbitMQ集群搭建

RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的。
在实际使用过程中多采取多机多实例部署方式,为了便于同学们练习搭建,有时候你不得不在一台机器上去搭建一个rabbitmq集群,本章主要针对单机多实例这种方式来进行开展。

主要参考官方文档:https://www.rabbitmq.com/clustering.html

CentOS搭建rabbitmq集群

安装RabbitMQ

新建路径:

[root@iZ8vbhcwtixrzhsn023sghZ ~]# mkdir /usr/rabbitmq -p
[root@iZ8vbhcwtixrzhsn023sghZ ~]# cd /usr/rabbitmq/

Erlang安装

wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
yum install -y erlang

安装scoat

yum install -y socat

安装rabbitmq

 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.13/rabbitmq-server-3.8.13-1.el8.noarch.rpmrpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm

启动rabbitmq

# 启动服务
> systemctl start rabbitmq-server
# 查看服务状态
> systemctl status rabbitmq-server
# 停止服务
> systemctl stop rabbitmq-server
# 开机启动服务
> systemctl enable rabbitmq-server

查看rabbitmq是否正常运行

ps aux|grep rabbitmq

在这里插入图片描述
停掉rabbitmq

假设有两个rabbitmq节点,分别为rabbit-1, rabbit-2,rabbit-1作为主节点,rabbit-2作为从节点。

启动第一个节点rabbit-1

sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &

在这里插入图片描述
启动第二个节点rabbit-2

sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &

在这里插入图片描述
再次查看rabbitmq进程
在这里插入图片描述
将rabbit-1作为主节点

#停止应用
> sudo rabbitmqctl -n rabbit-1 stop_app
#目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
> sudo rabbitmqctl -n rabbit-1 reset
#启动应用
> sudo rabbitmqctl -n rabbit-1 start_app

将rabbit-2作为从节点

# 停止应用
> sudo rabbitmqctl -n rabbit-2 stop_app
# 目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
> sudo rabbitmqctl -n rabbit-2 reset
# 将rabbit2节点加入到rabbit1(主节点)集群当中【Server-node服务器的主机名】
> sudo rabbitmqctl -n rabbit-2 join_cluster rabbit-1@'Server-node'
# 启动应用
> sudo rabbitmqctl -n rabbit-2 start_app

对rabbitmq操作用rabbitmqctl指令,-n后面跟节点名字

在这里插入图片描述
验证集群状态

sudo rabbitmqctl cluster_status -n rabbit-1

在这里插入图片描述
Web查看
默认是关闭Web图形界面的,打开

rabbitmq-plugins enable rabbitmq_management

给两个集群节点设置账号密码

rabbitmqctl -n rabbit-1 add_user admin admin
rabbitmqctl -n rabbit-1 set_user_tags admin administrator
rabbitmqctl -n rabbit-1 set_permissions -p / admin ".*" ".*" ".*"rabbitmqctl -n rabbit-2 add_user admin admin
rabbitmqctl -n rabbit-2 set_user_tags admin administrator
rabbitmqctl -n rabbit-2 set_permissions -p / admin ".*" ".*" ".*"

docker搭建rabbitmq集群

创建映射数据卷目录

[root@iZ8vbhcwtixrzhsn023sghZ ~]# cd /
[root@iZ8vbhcwtixrzhsn023sghZ /]# mkdir rabbitmqcluster
[root@iZ8vbhcwtixrzhsn023sghZ /]# cd rabbitmqcluster/
[root@iZ8vbhcwtixrzhsn023sghZ rabbitmqcluster]# mkdir rabbitmq01 rabbitmq02 rabbitmq03

创建并运行三个rabbitmq节点容器

docker run -d --hostname rabbitmq01 --name rabbitmqcluster01 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:managementdocker run -d --hostname rabbitmq02 --name rabbitmqcluster02 -p 5673:5672 --link rabbitmqcluster01:rabbitmq01 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:managementdocker run -d --hostname rabbitmq03 --name rabbitmqcluster03 -p 5674:5672 --link rabbitmqcluster01:rabbitmq01 --link rabbitmqcluster02:rabbitmq02  -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:management

启动容器成功后,可以访问
http://(服务器ip):15672
http://(服务器ip):15673
http://(服务器ip):15674
Web管理界面

容器节点加入集群

进入第一个rabbitmq节点容器

docker exec -it rabbitmqCluster01 bash

完成重启清除历史数据操作

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

在这里插入图片描述
进入第二个节点容器执行如下命令:

[root@iZ8vbhcwtixrzhsn023sghZ rabbitmqcluster]# docker exec -it rabbitmqCluster02 bash
root@rabbitmq02:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq02 ...
root@rabbitmq02:/# rabbitmqctl reset
Resetting node rabbit@rabbitmq02 ...
root@rabbitmq02:/# rabbitmqctl join_cluster rabbit@rabbitmq01
Clustering node rabbit@rabbitmq02 with rabbit@rabbitmq01
root@rabbitmq02:/# rabbitmqctl start_app
Starting node rabbit@rabbitmq02 ...completed with 3 plugins.
root@rabbitmq02:/# exit
exit

然后是第三个节点:

[root@iZ8vbhcwtixrzhsn023sghZ ~]# docker exec -it rabbitmqCluster03 bash
root@rabbitmq03:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq03 ...
root@rabbitmq03:/# rabbitmqctl reset
Resetting node rabbit@rabbitmq03 ...
root@rabbitmq03:/# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
Clustering node rabbit@rabbitmq03 with rabbit@rabbitmq01
root@rabbitmq03:/# rabbitmqctl start_app
Starting node rabbit@rabbitmq03 ...completed with 3 plugins.
root@rabbitmq03:/# exit
exit

在这里插入图片描述

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 为了搞大创我都干了啥之MaskRCNN环境配置

    先搬运一下自己的文章。参考了很多巨佬的文章。 http://yourcarina.com/?id13 一、软件以及文件准备&#xff1a; 主要参考文章a&#xff1a;『深度应用』一小时教你上手MaskRCNNKeras开源实战&#xff08;Windows&amp;Linux&#xff09; https://www.baidu.com/link?…...

    2024/5/2 3:45:03
  2. 数仓 Kerberos 的部署

    文章目录Kerberos概述什么是KerberosKerberos术语Kerberos认证原理Kerberos安装安装Kerberos相关服务初始化KDC数据库修改管理员权限配置文件启动Kerberos相关服务创建Kerberos管理员用户Kerberos使用概述Kerberos数据库操作Kerberos认证操作Kerberos概述 什么是Kerberos Ker…...

    2024/4/20 2:52:20
  3. 中国乙烯-丙烯酸酯橡胶(AEM)市场调研报告(2022版)

    内容简介&#xff1a; AEM具有优异的耐热性能、耐液体性能、耐寒性能、耐臭氧性能和动态性能。 AEM主要应用于汽车配件领域&#xff0c;如前后曲轴油封、前后主轴油封、动力转向泵密封件、传动泵密封件、水泵密封胶、发动机气门阀杆油封、CVJ防尘罩、涡轮增压器胶管、动力转向…...

    2024/4/13 20:16:26
  4. 【django云服务器部署流程(1)】django+uwsgi+nginx:准备工作

    写在前面&#xff1a;近期参加比赛需要制作小程序&#xff0c;本人负责后端&#xff0c;所以在学习django的搭建和部署&#xff0c;前期还算顺利&#xff0c;但是在使用华为云(学校申请的代金券用不完了)的云耀云服务器部署的时候&#xff0c;静态文件没法在网页访问到&#xf…...

    2024/4/25 23:26:25
  5. [蓝桥杯]DS1302时钟芯片学习笔记

    目录1、DS1302简介1.1功能1.2通信方式1.3电路连接图2、DS1302通信时序3、编写读取函数3.1地址3.2BCD码与十进制互换3.2代码1、DS1302简介 1.1功能 DS1302滴充电计时芯片包含实时时钟/日历和31字节的静态RAM。它通过一个简单的串行接口与一个微处理器进行通信。实时时钟/日历提…...

    2024/5/5 4:25:07
  6. BIO、NIO、AIO 有什么区别?

    BIO&#xff1a;线程发起IO请求&#xff0c;不管内核是否准备好IO操作&#xff0c;从发起请求起&#xff0c;线程一直阻塞&#xff0c;直到操作完成。 NIO&#xff1a;线程发起IO请求&#xff0c;立即返回&#xff1b;内核在做好IO操作的准备之后&#xff0c;通过调用注册的回调…...

    2024/4/13 20:16:31
  7. QLV转MP4

    前段时间我一直在找TX的QLV转MP4软件&#xff0c;后来找到一款软件,分享给大家 https://ylsx.lanzouo.com/b030or8fi 密码:ffyu 时间&#xff1a;2022.1.31&#xff08;亲测有效&#xff09;...

    2024/4/13 20:16:21
  8. C51单片机输出pwm信号

    C51单片机&#xff0c;内部并没有输出pwm信号的模块只能通过&#xff0c;把软件写到硬件里面&#xff0c;实现输出pwm信号。 Pwm信号的产生方法很简单 任意引脚 void main(1){ while(1) { P0_0 1; P0_0 0; …...

    2024/5/5 9:34:15
  9. Techrxiv 预印本网站导入noteexpress/endnote

    techrxiv网站中&#xff0c;如果直接点cite&#xff0c;是不大好导入noteexpress的&#xff0c;点击exports&#xff0c;导出为bibtex等格式才好导入。...

    2024/5/5 6:38:28
  10. Context还有哪些你不知道的?,2021Android者未来的出路在哪里

    可以看到&#xff0c;代码很简单&#xff0c;只需要调用getApplication()方法就能拿到我们自定义的Application的实例了&#xff0c;打印结果如下所示&#xff1a; 那么除了getApplication()方法&#xff0c;其实还有一个getApplicationContext()方法&#xff0c;这两个方法看上…...

    2024/4/25 5:31:09
  11. 如何安全的从ubuntu16.04升级到18.04?

    如何安全的从ubuntu16.04升级到18.04&#xff1f;...

    2024/4/15 2:57:42
  12. 通用接口开放平台设计与实现——(13)消息服务端之消息处理器

    前面我们介绍了服务端的消息处理链条上各处理器的配置&#xff0c;这部分实际相当于技术框架&#xff0c;今天我们来介绍下处理具体业务消息的处理器。 ​ 处理框架由几个主要的部分组成&#xff1a; 1.消息主题&#xff1a;我们根据业务需求&#xff0c;将事件转换为消息主题…...

    2024/4/19 21:00:41
  13. java实现泛型动态数组源码小分享

    &#x1f64b;‍♀️日常小分享&#xff0c;欢迎参考 package com.xmonster.demo2;import java.util.Arrays;public class DynamicArray<E> {private static final int DEFAULT_CAPACITY 10;private int size;private Object[] elementData;public DynamicArray(){this…...

    2024/4/20 2:42:13
  14. ConstraintLayout2,金三银四大厂面经总结

    start next 如果start状态与该基本布局相对应&#xff0c;则previous的状态则应该表示为轮播项目向右移动一个。 例如&#xff0c;假设我们有5个视图&#xff1a;处于开始状态的A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E。 start时&#xff0c;B&#xff0c…...

    2024/5/1 12:48:51
  15. mvc设计模式与三层架构

    mvc与三层架构 1.什么是mvc设计模式 写Java Web项⽬时会发现&#xff0c;一个中型或者大型项目随着代码的增多&#xff0c;会发现&#xff1a;代码既可以写在src目录下&#xff0c;也可以写在WebContent目录下。src下可以建很多包&#xff0c;WebContent下可以建很多文件夹。…...

    2024/4/13 20:16:21
  16. 优先级队列(堆)、java 对象的比较

    一、二叉树的顺序存储 存储方式 使用数组保存二叉树结构&#xff0c;方式即将二叉树用层序遍历方式放入数组中。 一般只适合表示完全二叉树&#xff0c;因为非完全二叉树会有空间的浪费。 这种方式的主要用法就是堆的表示 下标关系 已知双亲(parent)的下标&#xff0c;则&…...

    2024/4/16 10:33:45
  17. vue3.0 从入门到入土---复习 组件高级上

    目录 watch 侦听器 组件的生命周期 组件之间的数据共享 vue 3.x 中全局配置 axios 总结 watch 侦听器 1. 什么是 watch 侦听器 watch 侦听器允许开发者监视数据的变化&#xff0c;从而针对数据的变化做特定的操作。例如&#xff0c;监视用户名的变化并发 起请求&#xf…...

    2024/5/5 9:16:28
  18. 【ROM IP】 Vivado ROM IP核调用实验

    ROM IP核调用实验 1. ROM IP核简介 ROM是只读存储器&#xff08;read only memory&#xff09;的简称&#xff0c;是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦存储资料就无法再将其改变或删除&#xff0c;且资料不会因为电源关闭而消失。 2. ROM IP核的配置…...

    2024/5/5 11:22:09
  19. Python3数据结构

    Python3数据结构数字 Number数字类型转换数字运算字符串 str字符串的查询字符串大小写转换字符串对齐字符串拆分、切片字符串判断相关字符串其他操作格式化字符串输出字符串编码列表 list列表的特点列表的创建列表元素的查询列表元素的增加列表元素的删除列表元素的排序知识点总…...

    2024/4/24 23:55:48
  20. STM32实现软件I2C通信

    目录 I2C协议 1. 空闲状态 2. 开始信号 3. 停止信号 4. 应答信号ACK 5. 数据的有效性 6. 数据传输 I2C的实现 IIC_Init II2_START​ IIC_Stop​ IIC_Wait_Ack​ IIC_Ack IIC_NAck ​ IIC_Send_Byte IIC_Read_Byte 通过I2C操作24C02 初始化 写一个字节 ​读…...

    2024/5/5 6:42:28

最新文章

  1. 【千帆平台】使用AppBuilder零代码创建应用,Excel表格数据转为Markdown格式文本

    欢迎来到《小5讲堂》 这是《千帆平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言创建应用应用名称应用描述应用头像角色指令组件能力开场白推…...

    2024/5/8 14:32:07
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 浅聊什么是Redis?

    需求&#xff1a;MySQL面临大量的查询&#xff0c;即读写操作&#xff0c;因此类比CPU&#xff0c;给数据加缓存&#xff0c;Redis诞生。应用程序从MySQL查询的数据&#xff0c;在Redis设置缓存&#xff08;记录在内存中&#xff0c;无需IO操作&#xff09;&#xff0c;后再需要…...

    2024/5/6 10:30:50
  4. mydumper和myloader对MySQL数据备份和恢复

    安装教程省略 一、mydumper数据备份 mydumper -u root -p 123456 -P 3306 -B db1 -o /data/20240329root&#xff1a;数据库用户名 123456&#xff1a;密码 3306&#xff1a;端口 db1&#xff1a;数据库库名 /data/20240329&#xff1a;导出的备份文件存放位置 导出的数据文…...

    2024/5/5 8:40:45
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57