一、消息如何保障100%的投递成功?

1、什么是生产端的可靠性投递?

  保障消息的成功发出

  保障MQ节点的成功接收

  发送端收到MQ节点(Broker)确认应答

  完善的消息进行补偿机制(如网络问题没有返回确认应答)

2、可靠性投递的解决方案

方案一:消息入库,对消息状态进行打标(变更消息状态)。     

1.生产者将业务数据和消息入库,并设置消息状态为0,即初始待投递(可能涉及多个数据库,业务库,消息库等)

2.生产者将消息发送至MQ节点(Broker)

3.Broker向生产者发送确认

4.生产者收到Broker确认后修改消息状态为1,即消息投递成功

5.系统定时任务扫描未投递成功的消息(消息状态为0)

6.生产者将未投递的消息重发给Broker,并记录消息重发次数

7.当重发次数大于3(阈值自定义)时,此时修改消息状态为2,即消息投递失败。对于投递失败的消息启动补偿机制或者人工去处理失败消息。

存在的问题:在高并发场景下,每次要对业务数据和消息数据入库,数据库会遇到瓶颈,所以会采用方案二。

方案二:消息的延迟投递,做二次确认,回调检查。

在高并发的场景下,少做一次数据库持久操作,提高系统处理能力,故将业务和消息的持久化拆开。所以在高并发的场景下,消息就不要入库了,延迟投递,可以不保证首次100%的成功,但是一定要保证性能。

    

0.先将业务数据入库(一定等到业务数据入库之后再发送消息,Upstream serivce上游服务

1.生产者第一次向MQ节点(Broker)发送消息

2.生产者第二次向MQ节点(Broker)发送check延迟消息,一般按自己业务设为2min-5min

3.Consumer消费者从MessageQueue获取消息

4.Consumer成功消费消息后,会Broker发送确认消息(设其队列名为ConsumerQueueConfirm)

5.Callback Service服务监听ConsumerQueueConfirm,并将成功消费的消息入库MSG DB。

6.同时Callback Service服务监听checkdetailQueue(处理第2步发送check延迟消息),并去MSG DB查询该消息是否被成功消费。如果查询不到check message,则Callback Service服务向Upstream Service服务发送RPC请求,让其重发消息,设置重发次数,达到重发次数后,设置其为消费失败

7.人工处理因网络闪断或者业务问题产生的未成功消费消息,使系统消息投递几乎达到100%

 

二、如何保证消息的幂等性

首先,无论是RabbitMQ、RocketMQ还是kafka,都有可能出现消息的重复发送,这个是MQ无法保障的。

幂等性:就是相同条件下对一个业务的操作,不管操作多少次,结果都是一样。

消息的幂等性:就是即使我们收到多条一样的消息,永远也不会重复消费,即消息只会被消费一次。

例如:向支付宝发起支付请求,无论是由于网络问题无法收到请求结果而重新发起请求,或是前端的操作抖动而造成重复提交情况。支付宝只能扣一次钱。

1、RabbitMQ可能导致出现非幂等性的情况

1.可靠性消息投递机制:consumer回复confirm出现网络闪断,producer没有收到ack,定时任务轮询可能就会重新发送消息,这样consumer就会收到两条消息

2.MQ Broker与消费端传输消息的过程出现网络抖动

3.消费端故障或异常

2、解决方案

方案一:令牌机制,即唯一ID + 指纹码

原理就是利用数据库主键去重,业务完成后插入主键标识,使用ID进行分库分表算法路由,从单库的幂等性到多库的幂等性

1.这里唯一ID一般就是业务表的主键,比如商品ID

2.指纹码:每次操作都要生成指纹码,可以用时间戳+业务编号+...组成,目的是保证每次操作都是正常的

   

整体流程:

每次操作都生产一个唯一标记(统一ID生成服务),通过客户端传给服务器端,服务器端通过这个标记去查询数据库里面是否有该唯一标记,如果有就是重复消费了。

1.需要一个统一ID生成服务,为了保证可靠性,上游服务也要有个本地ID生成服务,然后发送消息给Broker

2.需要ID规则路由组件去监听消息,先入库,如果入库成功,证明没有重复,然后发给下游,如果发现库里面有了这条消息,就不发给下游

好处:整体实现相对简单

坏处:高并发下有数据库写入的性能瓶颈。

优化:跟进id进行分库分表进行算法的路由分压分流。

方案二:利用Redis的原子性去实现。

利用redis的原子操作,做个操作完成的标记,Redis的实现性能比较好,而且Redis一般使用集群,不用担心某台机器挂掉了,影响服务。但是也存在一些的问题:

我们是否需要进行数据落库,如果落库的话,怎么保证缓存和storage的一致性、事务,关键解决的问题是数据库和Redis操作如何做到原子性?如果不进行落库,那么都存储到缓存中,如何设置定时同步策略?

 

三、confirm确认消息

1、理解Confirm消息确认机制

  消息的确认:是指生产者投递消息后,如果Broker收到消息,则会给生产者一个应答。

  生产者进行接收应答,用来确定这条消息是否正常的发送到Broker,这种方式也是消息的可靠性投递的核心保障。

      

2、如何实现Confirm确认消息?

在生产端

    第一步:在channel上开启确认模式:channel.confirmSelect()

    第二步:在channel上添加确认监听:addConfirmListener,监听成功和失败的返回结果,根据具体的结果对消息进行重新发送、或者记录日志等后续处理。

3、代码实现

1.生产端的代码

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.ConfirmListener;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;public class Producer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setHost("localhost");connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4.指定消息的投递模式:确认模式channel.confirmSelect();//5.发布消息String exchangeName = "test_confirm_exchange";String routingKey = "test.confirm";String msg = "hello rabbitmq consumer, test_direct-message: confirm";for (int i = 0; i < 2; i++) {/**参数:exchange -将消息发布到的交换机, 若为空字符串时,使用默认的交换机routingKey -路由键mandatory -如果要设置“强制性”标志,则为trueprops -消息的其他属性-路由标头等body -消息正`文*/channel.basicPublish(exchangeName, routingKey, false, null, msg.getBytes());}//6.添加确认监听,来监听消息中间件的确认消息。channel.addConfirmListener(new ConfirmListener() {//当消息中间件接收到消息后,要执行的函数// deliveryTag表示是Broker给每条消息指定的唯一ID(从1开始)// multiple表示是否接收所有的应答消息,比如multiple=true时,发送100条消息成功过后,我们并不会收到100次handleAck方法调用。@Overridepublic void handleAck(long deliveryTag, boolean multiple) throws IOException {System.out.println("----ack----");System.out.println("deliveryTag:"+ deliveryTag +" multiple:" + multiple);}//消息中间件出现异常(比如队列满了)后,要执行的函数@Overridepublic void handleNack(long deliveryTag, boolean multiple) throws IOException {System.out.println("-----no ack----");System.out.println("deliveryTag:"+ deliveryTag +" multiple:" + multiple);}});//7.释放资源channel.close();connection.close();}
}

2.消费端的代码

import com.rabbitmq.client.*;
import java.io.IOException;public class Consumer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);connectionFactory.setHost("127.0.0.1");//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4. 创建消息队列和direct交换机,并通过channel让交换机跟消息队列进行绑定String queueName = "test_confirm_queue";String exchangeName="test_confirm_exchange";String exchangeType="direct";String routingKey="test.confirm";/**参数:queue -队列名称durable -如果我们声明一个持久队列,则为true(该队列将在服务器重启后保留下来)exclusive -如果我们声明一个排他队列,则为true(仅限此连接)autoDelete -如果我们声明一个自动删除队列,则为true(服务器将在不再使用它时将其删除)arguments -队列的其他属性(构造参数)*/channel.queueDeclare(queueName, true, false, false, null);/**参数:exchange -交易所名称type -交易所类型durable -如果我们声明持久交换,则为true(该交换将在服务器重启后保留下来)autoDelete -如果服务器在不再使用交换机时应删除该交换机,则为truearguments -用于交换的其他属性(构造参数)*/channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null);/**参数:queue -队列名称exchange -交易所名称routingKey -用于绑定的路由键*/channel.queueBind(queueName, exchangeName, routingKey);//5.通过channel把消费者和消息队列进行关联,获取消息进行处理/**参数:queue -队列名称autoAck-如果服务器应考虑一旦传递已确认的消息,则为true;如果服务器应该期望显式确认,则为falsecallback -消费者对象的接口*/boolean autoAck = true;channel.basicConsume(queueName, autoAck, new DefaultConsumer(channel) {/**参数:consumerTag-与消费者相关联的消费者标签envelope -消息的打包数据properties -消息的内容头数据body -消息正文(客户端特定的不透明字节数组)*/@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,byte[] body) throws IOException {System.out.println("------------consumer message-----------");System.out.println("sonsumerTag:" + consumerTag);System.out.println("envelope:" + envelope);System.out.println("properties:" + properties);System.out.println("msg:" + new String(body));}});}
}

    

四、Return消息机制

1、理解Return消息机制

Return Listener用于处理一些不可路由的消息。

1.我们的消息生产者,通过指定一个Exchange和Routingkey,把消息送到某一个队列中,然后我们的消费者监听队列,进行消息处理操作。

2.但是在某些情况下,如果我们在发送消息的时候,当前的exchange不存在或者指定的路由key路由不到,这个时候我们需要监听这种不可达的消息,就要使用return listener。

在发送消息的basicPublish方法中有一个关键的配置项:

Mandatory:如果为true,则监听会接收到路由不可达的消息,然后进行后续处理,

          如果为false,那么broker端自动删除该消息。(默认false)

2、代码实现

在生产端,在channel上添加监听:addReturnListener,并指定mandatory为true。

1.生产端的代码

import com.rabbitmq.client.*;
import java.io.IOException;public class Producer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setHost("localhost");connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4.添加return监听channel.addReturnListener(new ReturnListener() {/*** relaycode:表示中间件响应给浏览器的状态码* relayText:表示状态码对应的文本。* exchange:表示消息发布时对应的交换机名* routingKey:表示的是路由键* basicProperties:表示消息的属性,* bytes:个表示消息的内容*/@Overridepublic void handleReturn(int relaycode, String relayText, String exchange, String routingKey,AMQP.BasicProperties basicProperties, byte[] bytes) throws IOException {System.out.println("----------------handle return ----------------");System.out.println("状态码:"+relaycode);System.out.println("信息:"+relayText);System.out.println("交换机:"+exchange);System.out.println("路由键:"+routingKey);System.out.println("属性:"+basicProperties);System.out.println("消息内容:"+new String(bytes));}});//5.发布消息String exchangeName = "test_return_exchange2";String routingKey = "test.return.#";String routingKeyError="test.returnerror.#";String msg = "hello rabbitmq consumer, test_return-message: return";for (int i = 0; i < 2; i++) {/**参数:exchange -将消息发布到的交换机, 若为空字符串时,使用默认的交换机routingKey -路由键mandatory -如果为true,则监听会接收到路由不可达的消息,然后进行后续处理,如果为false,那么broker端自动删除该消息。(默认false)props -消息的其他属性-路由标头等body -消息正`文*/channel.basicPublish(exchangeName, routingKey, true, null, msg.getBytes());channel.basicPublish(exchangeName, routingKeyError, true, null, msg.getBytes());}//6.释放资源
//        channel.close();
//        connection.close();}
}

2.消费端的代码

import com.rabbitmq.client.*;
import java.io.IOException;public class Consumer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);connectionFactory.setHost("127.0.0.1");//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4. 创建消息队列和direct交换机,并通过channel让交换机跟消息队列进行绑定String queueName = "test_return_queue2";String exchangeName="test_return_exchange2";String exchangeType="topic";String routingKey="test.return.#";channel.queueDeclare(queueName, true, false, false, null);channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null);channel.queueBind(queueName, exchangeName, routingKey);//5.通过channel把消费者和消息队列进行关联,获取消息进行处理channel.basicConsume(queueName, true, new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,byte[] body) throws IOException {System.out.println("------------consumer message-----------");System.out.println("sonsumerTag:" + consumerTag);System.out.println("envelope:" + envelope);System.out.println("properties:" + properties);System.out.println("msg:" + new String(body));}});}
}

    

五、RabbitMQ消费端自定义监听器

      我们使用自定义的Consumer更加的方便,解耦性更强,在实际工作中也最常用。 实现也计较简单,新建一个类继承DefaultConsumer,并重写其中一个handleDelivery方法即可。

1、代码实现,将四的例子中消费端使用自定义监听器使用,生产端不改变。

1.消费端自定义监听器,继承DefaultConsumer

import com.rabbitmq.client.*;
import java.io.IOException;/***  自定义消费端自定义监听器*/
public class MyConsumer extends DefaultConsumer {private Channel channel;public MyConsumer(Channel channel) {super(channel);this.channel = channel;}@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("------------consumer message-----------");System.out.println("sonsumerTag:" + consumerTag);System.out.println("envelope:" + envelope);System.out.println("properties:" + properties);System.out.println("msg:" + new String(body));}
}

2.消费端的代码

import com.rabbitmq.client.*;public class Consumer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);connectionFactory.setHost("127.0.0.1");//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4. 创建消息队列和direct交换机,并通过channel让交换机跟消息队列进行绑定String queueName = "test_return_queue2";String exchangeName="test_return_exchange2";String exchangeType="topic";String routingKey="test.return.#";channel.queueDeclare(queueName, true, false, false, null);channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null);channel.queueBind(queueName, exchangeName, routingKey);//5.通过channel把消费者和消息队列进行关联,获取消息进行处理channel.basicConsume(queueName, true, new MyConsumer(channel));}
}

六、消费端限流

1、什么要对消费端限流

如果是高并发的场景下,RabbitMQ服务器上收到成千上万条消息,那么当打开消费者客户端时,会出现:这些巨量的消息必定会瞬时全部推送过来,但是我们单个客户端无法同时处理这么多数据,导致消费端消费不过来甚至挂掉都有可能。

当数据量特别大的时候,我们对生产端限流肯定是不科学的,因为有时候并发量就是特别大,有时候并发量又特别少,我们无法约束生产端,这是用户的行为。所以我们应该对消费端限流,用于保持消费端的稳定,当消息数量激增的时候很有可能造成资源耗尽,以及影响服务的性能,导致系统的卡顿甚至直接崩溃。

注意:在非自动确认的模式下,可以采用限流模式。RabbitMQ 提供了一种 qos(服务质量保证)功能机制来控制一次消费消息数量,即在非自动确认消息的前提下,如果一定数目的消息(通过基于 consume 或者 channel 设置 Qos 的值)未被确认前,不进行消费新的消息。

2、理解限流的 API方法

    限流设置 - basicQos(prefetchSize,prefetchCount,global)

prefetchSize:0,单条消息大小限制,0代表不限制消息大小

prefetchCount:一次性消费的消息数量。会告诉 RabbitMQ 不要同时给一个消费者推送多于 N 个消息,即一旦有 N 个消息还没有 ack,则该 consumer 将 block 掉,直到有消息 ack。

global:true/false 是否将上面设置应用于 channel,简单点说,就是上面限制是 channel 级别的还是 consumer 级别。当设置为 false 时生效,设置为 true 时没有了限流功能,因为 channel 级别尚未实现。

注意:

1.不能设置自动签收功能(autoAck = false)

2.如果消息没被手动确认,就不会再给消费端发送消息,目的就是给消费端减压

 

3、代码实现消费端限流

生产端代码改变不多,主要操作集中在消费端。

1)设置具体的限流大小以及数量:channel.basicQos(0, 4, false);

2)关闭自动 ack:将 autoAck 设置为 false。channel.basicConsume(queueName, false, consumer);

3)在 handleDelivery 消费方法中手工ACK - basicAck()。void basicAck(Integer deliveryTag,boolean multiple)

手工ACK,调用这个方法就会主动回送给Broker一个应答,表示这条消息我处理完了,你可以给我下一条了。参数multiple表示是否批量签收,由于demo我是一次处理两条消息,所以设置为true。

1.生产端的代码

import com.rabbitmq.client.*;
import java.io.IOException;public class Producer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setHost("localhost");connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4.发布消息String exchangeName = "test_qos_exchange";String routingKey = "test.qos.#";String msg = "hello rabbitmq consumer, test_qos-message: qos";for (int i = 0; i < 5; i++) {/**参数:exchange -将消息发布到的交换机, 若为空字符串时,使用默认的交换机routingKey -路由键mandatory -如果为true,则监听会接收到路由不可达的消息,然后进行后续处理,如果为false,那么broker端自动删除该消息。(默认false)props -消息的其他属性-路由标头等body -消息正文*/channel.basicPublish(exchangeName, routingKey, false, null, (msg + i).getBytes());}//5.释放资源channel.close();connection.close();}
}

2.消费端的代码

import com.rabbitmq.client.*;public class Consumer {public static void main(String[] args) throws Exception {//1.创建工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setVirtualHost("/");connectionFactory.setPort(5672);connectionFactory.setHost("127.0.0.1");//默认情况下为“ guest” /“ guest”,仅限本地主机连接connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");//2.通过工厂创建connectionConnection connection = connectionFactory.newConnection();//3.创建channel对象Channel channel = connection.createChannel();//4. 创建消息队列和direct交换机,并通过channel让交换机跟消息队列进行绑定String queueName = "test_qos_queue";String exchangeName = "test_qos_exchange";String exchangeType = "topic";String routingKey = "test.qos.#";channel.queueDeclare(queueName, true, false, false, null);channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null);channel.queueBind(queueName, exchangeName, routingKey);//5.通过channel把消费者和消息队列进行关联,获取消息进行处理// 设置限流,并autoAck设置为 falsechannel.basicQos(0, 2, false);channel.basicConsume(queueName, false, new MyConsumer(channel));}
}

3.消费端自定义监听器,继承DefaultConsumer

import com.rabbitmq.client.*;import java.io.IOException;/*** 自定义消费端自定义监听器*/
public class MyConsumer extends DefaultConsumer {private Channel channel;public MyConsumer(Channel channel) {super(channel);this.channel = channel;}@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("------------consumer message-----------");System.out.println("sonsumerTag:" + consumerTag);System.out.println("envelope:" + envelope);System.out.println("properties:" + properties);System.out.println("msg:" + new String(body));try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}//手动签收消息channel.basicAck(envelope.getDeliveryTag(), true);}
}

    

从图中发现 Unacked值一直都是 2 ,每过 5 秒 消费一条消息即 Ready 和 Total 都减少 2,而 Unacked的值在这里代表消费者正在处理的消息,通过demo发现了消费者一次性最多处理 2 条消息,达到了消费者限流的预期功能。

这里对RabbitMQ高级特性,做一整理,有些图来自网络,重点在知识点的掌握上。

参考文章:

RabbitMQ系列(四)--消息如何保证可靠性传输以及幂等性

RabbitMQ 消费端限流、TTL、死信队列

 

—— Stay Hungry. Stay Foolish. 求知若饥,虚心若愚。

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

相关文章

  1. 二叉树中的列表

    leetcode 二叉树中的列表 给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。 如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。 一直向下的路径的意思是:从树中某个…...

    2024/3/25 14:54:05
  2. 自动化读取文件夹名称写入word文档

    朋友需求:需求:获取文件夹里所有文件的名字 将文件名字保存到 docx 文件中实现:我们需要获取某文件夹里边所有文件的名字,那文件夹实际上是在我们的操作系统中的,所以我们可以使用 python 对接操作系统的模块来实现——os模块。需要注意的是,你千万别给我 pip install os…...

    2024/3/27 12:49:19
  3. 乐扣T71 OJ:14简化路径 c++

    问题描述 : 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参…...

    2024/3/26 15:47:33
  4. mysql8下载

    mysql8下载 官网地址:https://www.centos.org/download/选择下载镜像下载dvd...

    2024/3/25 15:01:45
  5. SAP云和本地版的后台配置关联

    上期介绍了S4HC整体配置传输机制以及操作,本期文章针对“OP顾问如何快速熟悉S4HC后台配置” 进行解答。众所周知OP版本基本是T-code(代码)的时代,而S4HC是文字时代,不过既然都是SAP,那就是一家人,表面看上去没啥关系,血缘关系还是在的。我们进入S4HC系统,找到“管理您…...

    2024/3/27 6:43:21
  6. Vue之间的组件通信

    Vue之间的组件通信参考:https://segmentfault.com/a/1190000019208626?utm_source=tag-newestvue.js最强大的功能之一就是组件,不同的组件之间的作用域是相互独立的:而组件之间常用的几种通信方式包括: props/$emit$emit/$onVuex$attrs/$listenersprovide/inject$parent/$…...

    2024/3/25 17:52:25
  7. 计算机网络(网络层)

    第四章 网络层 实现端到端的数据传输。路径选择、路由及逻辑寻址。 网络层两种服务 虚电路服务:逻辑上的连接、按照存储转发方式传送、并不是真正建立了一条物理连接。 数据报服务:无连接的、尽最大努力交付、网络层不提供服务质量的承诺。 尽最大努力交付:网络的造价大大降…...

    2024/3/25 17:55:50
  8. Spring学习笔记-监听器

    今天我们来聊一聊Spring的监听器,来了解Spring的监听器是如何使用的,以及使用原理,接下来从监听器的使用以及原理分析两部分来详细说明:监听器实现 直接上代码,做一个简易的实现,我们需要几个类,首先是我们的配置类,监听器类以及测试类;监听器类:需要实现Application…...

    2024/3/27 4:54:15
  9. 微信公众号开发详解【目的、定位、起名、功能、准备工作、注册流程、后台功能】

    学习网址:https://www.bilibili.com/video/BV1hJ411g7VS【微信公众号——零基础全面系统教学】目 录P1 创办公众号的目的P2 公众号定位1、公众号定位2、如何找到自己的兴趣爱好3、微小宝---公众号助手P3 公众号名字的几种类型1、公众号如何起名字2、公众号名字的几种类型3、…...

    2024/3/26 20:08:26
  10. qt重写qgraphicitem实现拖动缩放旋转斜切矩形,即visionpro中的卡尺的功能

    如上图所示,绘制矩形之后,可以按住中间缩放、然后按住右侧中间进行旋转,按住右下角进行缩放,按住下方中间进行斜切矩形。 整体都是仿照visionpro里面的矩形卡尺制作的。 至于拖动、缩放、旋转功能可详见我的博客:https://blog.csdn.net/weixin_43935474/article/details/1…...

    2024/3/27 5:00:42
  11. 园区域网的三种经典方案

    屌丝专用方案 1、标准的三层架构 核心层 汇聚层 接入层 2、用到的技术VLAN 生成树协议 虚拟网关 链路聚合 DHCP3、优点 成本低 4、缺点不能解决单一VLAN的负载均衡问题 链路利用率低 不能做到最优,只能做到相对较优土豪专用方案一、解决单一VLAN负载均衡的技术:iStack堆叠技术…...

    2024/3/27 5:03:29
  12. 基于Markdown格式足球出租平台的电子书生成工具大比拼

    基于Markdown格式Hga0308文件,一直使用的是Wordpress的markdown插件,由于各种遗留原因,一直没有转换到直接使用静态站点的方式。博客文章之间一般来说多是独立篇章,少有关联,即便是写一个系列文章,数量也不会太多。因此,用博客形式来组织书籍章节是不大合适的。“术业有…...

    2024/3/27 5:11:43
  13. 7-23 还原二叉树

    题目描述 7-23 还原二叉树 (25分) 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 输入格式: 输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。 输出格式…...

    2024/3/27 5:16:29
  14. 统计字符串中字符出现次数

    最近好多同学忙着找工作,其中分享出来一道算法题,是找出重复次数最多的元素,忽然想起来教主教过的统计字符串中字符出现次数的算法。记录一下。思路(只统计ASCII码包含的字符):ASCII码表一共128个字符。创建一个大小为128的int类型数组array。遍历字符串中的字符,将字符…...

    2024/3/28 16:05:39
  15. vue开发者工具vue-devtools-4.1.4_0.crx谷歌插件下载及安装

    1.vue开发者工具vue-devtools-4.1.4_0.crx谷歌插件下载及安装...

    2024/3/28 9:25:21
  16. 2019.8.31

    2019.8.31 for(int i=0;i<strings.size();i++){String s = strings.get(i);if(i>0 && currentCollator.compare(s, strings.get(i-1)) == 0){sortedWords.append("= ");}sortedWords.append(s + "\n");}...

    2024/3/28 9:29:20
  17. 如何利用Netcat进行黑客攻击第1部分:基础知识

    如何利用Netcat进行黑客攻击第1部分:基础知识注: 本文章为翻译文章,文章的原地址在末尾。本来是想自己写一些关于netcat的使用,在google中发现了这篇文章。于是便用本人拙劣的英文水平翻译过来,方便各位大佬查阅,当然,里边还会有我自己一些小私货。 那么开始吧^_ ^Netcat…...

    2024/3/28 9:33:59
  18. Shell 简单的JumpServer

    简单的JumpServer跳板主机,作用:安全 业务服务器不允许直接连接,通过允许从跳板机连接 业务服务器不允许root用户直接登录所有主机准备远程管理用户:alias 物理机可以使用alias用户登录 other server密码认证 密钥认证密钥认证:ssh-keygen ssh-copy-id web1防止Ctrl + C加…...

    2024/3/21 21:07:15
  19. eurake双机部署(eurake真机部署)

    在网上,书上查阅的资料大多数都是单机模拟部署eurake。经过多次实验后感觉真机有所不同。 贴一下配置 server:port: 8000 eureka:client:register-withEureka: truefetch-registry: true spring:application:name: seesea-eurekacloud:inetutils:timeout-seconds: 10profiles:…...

    2024/3/21 12:30:35
  20. Kafka的实现原理

    如果对kafka的基础知识了解不深,可以看下我的Kafka的基础知识入门,今天这篇博客是来讲解kafka的实现原理,需要有一定的kafka的前置知识,不然可能会很迷茫。从前面的整个演示过程来看,只要不是超大规模的使用kafka,那么基本上没什么大问题,否则,对于 kafka本身的运维的挑…...

    2024/3/26 0:33:15

最新文章

  1. 必须进行App测试吗?专业第三方软件测试机构分享移动App测试好处

    在这个移动互联网时代&#xff0c;移动应用程序App已经成为人们生活中必不可少的一部分。然而&#xff0c;随着市场上App数量不断增加&#xff0c;质量的好坏成为用户选择的重要标准。因此&#xff0c;在发布之前&#xff0c;一个必不可少的步骤就是对移动App进行软件测试。 移…...

    2024/3/28 18:13:17
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. KubeSphere简单介绍及安装使用

    KubeSphere 概述 官网地址&#xff1a;https://kubesphere.io/zh/ 什么是 kubesphere KubeSphere 是一个开源的多云容器管理平台&#xff0c;旨在简化企业级 k8s 集群的部署、管理和运维。它提供了一个可视化的管理界面&#xff0c;帮助用户更轻松地管理和监控 k8s 集群&…...

    2024/3/28 15:38:34
  4. 供应链攻击揭秘:识别、防范与应对

    供应链攻击是网络安全领域的一种新兴威胁&#xff0c;它利用供应链中的漏洞对目标进行攻击。本文将介绍供应链攻击的概念、类型、危害&#xff0c;并通过具体案例阐述其影响&#xff0c;同时探讨如何防范供应链攻击&#xff0c;以提高人们对供应链攻击的认识和防范意识。 一、引…...

    2024/3/27 20:16:09
  5. python之自动化(django)

    1、安装 我用的是pip install Django 在命令行中安装 然后django-admin startproject autotext&#xff08;在命令行中&#xff09; 这句话是创建一个django 项目 然后切换到你所创建项目的目录下 输入&#xff1a; python manage.py runserver 当你出现以下错误时 You…...

    2024/3/27 10:44:38
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/3/28 16:59:55
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/3/28 4:39:34
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/3/28 5:03:31
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/3/27 10:27:59
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/3/27 3:29:54
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/3/28 9:07:44
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/3/28 18:09:48
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/3/27 3:03:23
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/3/28 9:58:22
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/3/28 10:24:59
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/3/27 0:22:43
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/3/27 8:17:26
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/3/28 17:15:47
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/3/28 8:42:54
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/3/28 8:14:39
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/3/27 15:45:39
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/3/27 21:26:55
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/3/28 8:24:01
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/3/28 5:29:22
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/3/28 9:26:43
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

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

    2022/11/19 21:17:18
  27. 错误使用 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,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
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  45. 如何在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