[每周一更]-(第123期):模拟面试|消息队列面试思路解析
文章目录
- 22|消息队列:消息队列可以用来解决什么问题?
- 1. 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?
- 2. 你用的是哪个消息队列?为什么使用它而不用别的消息队列?
- 3. 为什么你一定要用消息队列?不用行不行?不用有什么缺点?
- 4. 在对接多个下游的时候,直接用 RPC 调用行不行?为什么?
- 5. 为什么说使用消息队列可以提高性能?
- 6. 为什么说使用消息队列可以提高扩展性?
- 7. 为什么说使用消息队列可以提高可用性?
- 8. 为什么秒杀场景中经常用消息队列?怎么用的?
- 9. 订单超时取消可以怎么实现?
- 10. 你了解事件驱动吗?
- 11. 什么是 SAGA 事务?怎么利用事件驱动来设计一个 SAGA 事务框架?
- 23|延迟消息:怎么在 Kafka 上支持延迟消息?
- 1. 什么是延迟消息?你有没有用过?可以用来解决什么问题?
- 2. Kafka 支不支持延迟消息?为什么 Kafka 不支持?
- 3. RabbitMQ 支不支持延迟消息?怎么支持的?
- 4. RabbitMQ 的延迟消息解决方案有什么缺点?让你来改进,你会怎么办?
- 5. 什么是死信队列?什么是消息 TTL?
- 6. 如果要让 Kafka 支持延迟消息你会怎么做?你有几种方案?各有什么优缺点?
- 方法一:分区延迟
- 方法二:延迟轮询
- 方法三:借助 Redis/Zookeeper 等存储
- 7. 在你的延迟消息队列方案里面,时间有多精确?比如说我希望在 10:00:00 发出来,你能保证这个一定恰好在这个时刻发出来吗?误差有多大?你能进一步提高时间精确性吗?
- 8. 在分区设置不同延迟时间的方案里,能不能支持随机延迟时间?
- 9. 在分区设置不同延迟时间的方案里,如果要是发生了 rebalance,会有什么后果?
- 10. 当你从准备转发消息到业务 topic(biz_topic)的时候失败了,有什么后果?怎么办?
- 11. 在你使用 MySQL 支持延迟消息的方案里,你怎么解决性能问题?
- 12. 如果要分库分表来解决 MySQL 的性能问题,你会怎么分库分表?是分库还是分表?
- 13. 如果要是不同业务 topic 的并发量有区别,你分库分表怎么解决这种负载不均匀的问题?
- 14. 如果延迟消息还要求有序性,该怎么办?
- 15. 如果你已经将消息转发到了 biz_topic 上,但是更新数据库状态失败了怎么办?
- 16. 除了用 MySQL,可以考虑用别的中间件来实现延迟消息吗?
- 24|消息积压:业务突然增长,导致消息消费不过来怎么办?
- 1. 一个分区可以有多个消费者吗?一个消费者可以消费多个分区吗?
- 2. 你业务里面的消息有多少个分区?你怎么计算出来的?它能撑住多大的读写压力?
- 3. 你遇到过消息积压吗?怎么发现的?为什么会积压?最后怎么解决的?
- 4. 为什么会出现消息积压?只要我容量规划好,肯定不会有消息积压,对不对?
- 5. 消息积压可以考虑怎么解决?
- 6. 增加消费者数量能不能解决消息积压问题?
- 7. 能不能通过限制发送者,让他们少发一点来解决消息积压问题?
- 8. 现在我发现分区数量不够了,但是运维又不准我增加新的分区,该怎么办?
- 9. 异步消费有什么缺陷?
- 10. 你怎么解决异步消费的消息丢失问题?你的方案会引起重复消费吗?
- 11. 在异步消费一批消息的时候,要是有部分消费失败了,怎么办?要不要提交?
- 25|消息顺序:保证消息有序,一个 topic 只能有一个 partition 吗?
- 1. 消息在 Kafka 分区上是怎么存储的?
- 2. 什么是有序消息?用于解决什么问题?
- 3. Kafka 上的消息是有序的吗?为什么?
- 4. 要想在 Kafka 上保证消息有序,应该怎么做?
- 5. 什么是全局有序?要保证全局有序,在 Kafka 上可以怎么做?
- 6. 要保证消息有序,一个 topic 只能有一个 partition 吗?
- 7. 异步消费的时候怎么保证消息有序?
- 8. 在你使用的多分区方案中,有没有可能出现分区间负载不均衡的问题?怎么解决?
- 9. 增加分区有可能让你的消息失序吗?怎么解决?
- 10. 你还知道哪些消息队列是支持有序消息的?
- 11. 要做到跨 topic 的消息也有序,难点在哪里?
- 26|消息不丢失:生产者收到写入成功响应后消息一定不会丢失吗?
- 1. 什么是 ISR?什么是 OSR?
- 2. 一个分区什么情况下会被挪进去 ISR,什么时候又会被挪出 ISR?
- 3. 生产者的 acks 参数有什么含义?你用的是多少?
- 4. 怎么根据业务选择合适的 acks 参数?
- 5. 消息丢失的场景有哪些?
- 6. 你遇到过消息丢失的问题吗?是什么原因引起的?你怎么排查的?最终怎么解决的?
- 7. 当生产者收到发送成功的响应之后,消息就肯定不会丢失吗?
- 8. acks 设置为 all,消息就一定不会丢失吗?
- 9. 什么是事务消息?Kafka 支持事务消息吗?
- 10. 怎么在 Kafka 上支持事务消息?
- 11. 什么是本地消息表?拿来做什么的?
- 12. 你是怎么保证你在执行了业务操作之后,消息一定发出去了?
- 13. 怎么保证生产者收到发送成功的响应之后,消息一定不会丢失?需要调整哪些参数?
- 14. 什么是 unclean 选举?有什么问题?你用的 Kafka 允许 unclean 选举吗?
- 15. 在你设计的回查方案里面,你怎么知道应该回查哪个接口?你这个能同时支持 HTTP 和 RPC 吗?能方便扩展到别的协议吗?
- 16. 你的回查机制有没有可能先收到提交消息?再收到准备消息?怎么保证两者的顺序?
- 17. 如果你已经把消息发到了业务 topic 上,但是你标记已发送失败了,怎么办?
- 27|重复消费:高并发场景下怎么保证消息不会重复消费?
- 1. 什么是布隆过滤器?
- 2. 什么是 bit array?
- 3. 为什么说尽量把消费者设计成幂等的?
- 4. 什么场景会造成重复消费?
- 5. 什么是恰好一次语义,Kafka 支持恰好一次语义吗?
- 6. 利用唯一索引来实现幂等的方案里,你是先插入数据到唯一索引,还是先执行业务?为什么?
- 7. 如果先插入唯一索引成功了,但是业务执行失败了,怎么办?
- 8. 如果不能使用本地事务,你怎么利用唯一索引来实现幂等?中间可能会有什么问题?你怎么解决?
- 9. 利用唯一索引来解决幂等问题,有什么缺陷?
- 10. 高并发场景下,怎么解决幂等问题?
- 11. 在你的高并发幂等方案里面,为什么要引入 Redis?
- 12. Redis 里面的 Key 过期时间该怎么确定?
- 13. 布隆过滤器 + Redis + 唯一索引里面,去掉布隆过滤器行不行?去掉 Redis 呢?去掉唯一索引呢?
- 14. 布隆过滤器 + Redis + 唯一索引方案中能不能使用本地布隆过滤器?怎么用?
- 15. 布隆过滤器 + Redis + 唯一索引有什么缺陷?
- 28|架构设计:如果让你设计一个消息队列,你会怎么设计架构
- 1. Kafka 为什么要引入分区?只有 topic 行不行?
- 2. Kafka 为什么要强调把 topic 的分区分散在不同的 broker 上?
- 3. Kafka 为什么要引入消费者组概念?只有消费者行不行?
- 4. Kafka 为什么要引入 topic?
- 5. 如果让你来设计一个消息队列,你会怎么设计架构?
- 6. 在你的设计里面,你能支持延迟消息吗?
- 7. 在你的设计里面,怎么保证消息有序?
- 8. 在你的设计里面,会出现消息丢失的问题吗?
- 9. 在你的设计里面,什么场景会引起重复消息?
- 10. 在你的设计里面,你觉得性能瓶颈可能出现在哪里?
- 11. 在你的设计里面,你还可以考虑怎么提高性能?
- 29|高性能:Kafka 为什么性能那么好
- 1. 为什么 Kafka 性能那么好?
- 2. 为什么零拷贝性能那么好?
- 3. 写磁盘一定很慢吗?顺序写为什么很快?
- 4. 批量操作为什么快?节省了什么资源?
- 5. 什么是上下文切换?为什么上下文切换慢?
- 6. 分区过多有什么问题?topic 过多有什么问题?
- 7. 分区有什么好处?
- 8. 实际中使用批量发送之类的技术,可能出现什么问题?怎么解决?
- 9. 什么是 page cache ?为什么要引入 page cache?
- 30|Kafka 综合运用:怎么在实践中保证 Kafka 高性能?
- 1. 什么是交换区?
- 2. 如果来不及发送,那么性能瓶颈可能在哪里?
- 3. 怎么优化发送者的发送性能?
- 4. 批次发送的时候,多大的批次才是最合适的?
- 5. 使用压缩有什么优缺点?怎么选择合适的压缩算法?
- 6. 怎么优化 broker?
- 7. 怎么优化 broker 所在的操作系统?
- 8. 什么是 TCP 读写缓冲区?怎么调优?
- 9. 哪些参数可以影响 Kafka 的主从同步?你优化过吗?
- 10. 你有优化过 Kafka 的 JVM 吗?怎么优化的?
22|消息队列:消息队列可以用来解决什么问题?
- 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?
- 你用的是哪个消息队列?为什么使用它而不用别的消息队列?
- 为什么你一定要用消息队列?不用行不行?不用有什么缺点?
- 在对接多个下游的时候,直接用 RPC 调用行不行?为什么?
- 为什么说使用消息队列可以提高性能?
- 为什么说使用消息队列可以提高扩展性?
- 为什么说使用消息队列可以提高可用性?
- 为什么秒杀场景中经常用消息队列?怎么用的?
- 订单超时取消可以怎么实现?
- 你了解事件驱动吗?
- 什么是 SAGA 事务?怎么利用事件驱动来设计一个 SAGA 事务框架?
1. 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?
- 异步:将非关键任务异步处理。例如在电商平台中,用户下单后,需要发送订单确认短信,此类操作可以异步处理而不影响订单的主流程。
- 削峰:在高并发场景下,可以通过消息队列实现削峰填谷。例如秒杀活动期间,用户请求集中涌入,消息队列可以将请求排队,逐步发送给下游服务,避免服务崩溃。
- 解耦:实现不同系统间的解耦。比如,订单服务和库存服务之间通过消息队列传递信息,而不直接依赖。这样即使库存服务出现问题,订单服务依旧可以正常下单,将库存信息异步更新。
2. 你用的是哪个消息队列?为什么使用它而不用别的消息队列?
常见的消息队列有 RabbitMQ、Kafka、ActiveMQ、RocketMQ 等。选择消息队列通常取决于需求:
- RabbitMQ:适合复杂的路由和消息确认机制。
- Kafka:擅长处理高吞吐量的数据流,适用于日志和流数据处理。
- RocketMQ:高性能、低延迟,且支持事务消息,适合金融等场景。
3. 为什么你一定要用消息队列?不用行不行?不用有什么缺点?
消息队列的使用并不是必需的,但它能显著改善系统的性能、可用性和扩展性。
不用消息队列会导致:
- 耦合度高:服务之间紧密耦合,单个服务的变化会影响整个系统。
- 性能受限:系统无法削峰,短时间内大量请求会压垮服务。
- 扩展困难:无法轻松地增加或减少系统模块。
4. 在对接多个下游的时候,直接用 RPC 调用行不行?为什么?
直接用 RPC 调用多个下游服务可以实现,但会引入以下问题:
- 并发压力大:多服务依赖会增加系统复杂度。
- 性能受限:如果下游服务响应慢,会导致整体调用时间变长。
- 失败影响大:下游任一服务不可用,都会影响整体流程。
消息队列可以将调用解耦,各个下游服务根据自己的处理能力消费消息,从而减少影响。
5. 为什么说使用消息队列可以提高性能?
消息队列提供异步处理,避免主服务等待耗时的操作,且通过异步削峰填谷处理高并发请求,从而提高整体系统性能。
6. 为什么说使用消息队列可以提高扩展性?
消息队列允许各个系统模块独立扩展,而不需要改变其他模块的实现。比如,增加新的消费者或调整消费者数量,可以应对不断变化的业务需求。
7. 为什么说使用消息队列可以提高可用性?
使用消息队列,即使下游服务短时间内不可用,消息依然可以被保存在队列中。当下游服务恢复时,消息可以被继续消费,确保数据不丢失,提高系统的可靠性。
8. 为什么秒杀场景中经常用消息队列?怎么用的?
在秒杀场景中,消息队列用于削峰填谷。用户的秒杀请求进入消息队列,按顺序排队处理,从而避免流量高峰直接冲击数据库和业务服务,防止系统崩溃。可以设置消费者按一定速度读取消息来进行库存判断和订单创建。
9. 订单超时取消可以怎么实现?
可以使用延迟消息队列来实现订单超时取消。例如,当订单创建后,消息队列中的延迟消息在一段时间后触发检查,如果订单仍未支付,则自动取消订单。
10. 你了解事件驱动吗?
事件驱动是一种异步编程模式,事件发生时触发处理。消息队列是事件驱动的重要组成,可以在不同服务间传递事件,实现解耦和异步处理。
11. 什么是 SAGA 事务?怎么利用事件驱动来设计一个 SAGA 事务框架?
SAGA 事务是一种分布式事务管理模式,分为一系列的子事务,每个子事务要么成功要么补偿。
设计 SAGA 事务框架:可以使用事件驱动的方式,每个子事务完成时,通过消息队列通知下一个事务开始执行。如某子事务失败,发布回滚事件,按逆序触发补偿操作。这样,确保在分布式环境中保持数据一致性。
23|延迟消息:怎么在 Kafka 上支持延迟消息?
- 什么是延迟消息?你有没有用过?可以用来解决什么问题?
- Kafka 支不支持延迟消息?为什么 Kafka 不支持?
- RabbitMQ 支不支持延迟消息?怎么支持的?
- RabbitMQ 的延迟消息解决方案有什么缺点?让你来改进,你会怎么办?
- 什么是死信队列?什么是消息 ttl?
- 如果要让 Kafka 支持延迟消息你会怎么做?你有几种方案?各有什么优缺点?
- 在你的延迟消息队列方案里面,时间有多精确?比如说我希望在 10:00:00 发出来,你能保证这个一定恰好在这个时刻发出来吗?误差有多大?你能进一步提高时间精确性吗?
- 在分区设置不同延迟时间的方案里,能不能支持随机延迟时间?
- 在分区设置不同延迟时间的方案里,如果要是发生了 rebalance,会有什么后果?
- 当你从准备转发消息到业务 topic(biz_topic)的时候失败了,有什么后果?怎么办?
- 在你使用 MySQL 支持延迟消息的方案里,你怎么解决性能问题?
- 如果要分库分表来解决 MYSQL 的性能问题,你会怎么分库分表?是分库还是分表?
- 如果要是不同业务 topic 的并发量有区别,你分库分表怎么解决这种负载不均匀的问题?
- 如果延迟消息还要求有序性,该怎么办?
- 如果你已经将消息转发到了 biz_topic 上,但是更新数据库状态失败了怎么办?
- 除了用 MySQL,可以考虑用别的中间件来实现延迟消息吗?
1. 什么是延迟消息?你有没有用过?可以用来解决什么问题?
延迟消息是一种在特定延迟时间后再发送给消费者的消息。常见的应用场景有订单超时取消、定时提醒、延迟执行任务等。
2. Kafka 支不支持延迟消息?为什么 Kafka 不支持?
Kafka 不原生支持延迟消息,因为 Kafka 的设计目标是高吞吐量和低延迟,为了保持性能,它采取的是顺序投递和即时处理的消息消费模型。
3. RabbitMQ 支不支持延迟消息?怎么支持的?
RabbitMQ 支持延迟消息,通过TTL(消息的生存时间)和死信队列实现。在消息的 TTL 到期后,未消费的消息会进入死信队列,在死信队列中可以设置为延迟消息投递给指定的消费者。
4. RabbitMQ 的延迟消息解决方案有什么缺点?让你来改进,你会怎么办?
RabbitMQ 的 TTL + 死信队列方式有以下缺点:
- 资源占用高:过多的延迟消息会占用内存。
- 缺乏精确性:每个消息的精确延迟控制不够。
改进方案可以是利用定时任务检查并消费到期消息,或者增加一个控制消息投递时间的插件,如 RabbitMQ Delayed Message Plugin。
5. 什么是死信队列?什么是消息 TTL?
- 死信队列:消息在原队列因超时、被拒绝或超出重试次数等情况转发到的特殊队列。
- 消息 TTL:消息的存活时间,到达 TTL 后,未被消费的消息将被移至死信队列或丢弃。
6. 如果要让 Kafka 支持延迟消息你会怎么做?你有几种方案?各有什么优缺点?
在 Kafka 中实现延迟消息,可以考虑以下几种方案:
方法一:分区延迟
在多个分区中设置不同的延迟等级,消费端控制不同分区的消息投递时间。
- 优点:简单实现。
- 缺点:延迟精度有限,不适合需要精确延迟的场景。
方法二:延迟轮询
消费者定期轮询,过滤超过设定延迟时间的消息进行消费。
- 优点:延迟控制较精确。
- 缺点:高频轮询可能影响性能。
方法三:借助 Redis/Zookeeper 等存储
将需要延迟的消息存入 Redis,记录到期时间,利用定时任务检查并投递。
- 优点:适合高精度控制。
- 缺点:实现复杂,增加了外部依赖。
7. 在你的延迟消息队列方案里面,时间有多精确?比如说我希望在 10:00:00 发出来,你能保证这个一定恰好在这个时刻发出来吗?误差有多大?你能进一步提高时间精确性吗?
延迟消息的精确度取决于轮询频率。一般来说,误差在秒级别,如果需要更高精度,可以通过增加轮询频率、调优消费间隔来控制。
8. 在分区设置不同延迟时间的方案里,能不能支持随机延迟时间?
无法支持完全的随机延迟时间。分区延迟方案的延迟是按固定时间段分配的,随机延迟可以考虑在每个分区基础上调整消费时间,但精度有限。
9. 在分区设置不同延迟时间的方案里,如果要是发生了 rebalance,会有什么后果?
发生 rebalance 时,消息分配将重新调整,可能导致消息的延迟被打乱、重复消费或不按时消费的情况。
10. 当你从准备转发消息到业务 topic(biz_topic)的时候失败了,有什么后果?怎么办?
如果失败,消息将丢失。可以通过幂等机制和重试策略来保证消息转发的可靠性。也可以利用事务机制,确保消息的转发成功后才提交。
11. 在你使用 MySQL 支持延迟消息的方案里,你怎么解决性能问题?
MySQL 中可以使用分片或分表的方式减少表中的数据量,降低单次查询压力,并定期删除已消费的历史记录。索引优化也有助于提高查询效率。
12. 如果要分库分表来解决 MySQL 的性能问题,你会怎么分库分表?是分库还是分表?
可采用分表方式,将延迟任务数据按时间分片,比如按天、小时等分片。对高并发的场景,还可以进行分库处理。
13. 如果要是不同业务 topic 的并发量有区别,你分库分表怎么解决这种负载不均匀的问题?
可以根据不同业务类型分表,合理分配各表的读写比例,保证分库分表后负载均衡。还可以通过动态扩容方式适应不同业务负载。
14. 如果延迟消息还要求有序性,该怎么办?
可采用单一分区实现顺序消费,或者通过队列优先级控制消息消费顺序,确保延迟消息按序处理。
15. 如果你已经将消息转发到了 biz_topic 上,但是更新数据库状态失败了怎么办?
可以使用重试机制,在更新失败后,重新更新状态表。若多次失败,可以进入死信队列,通过人工或补偿任务处理。
16. 除了用 MySQL,可以考虑用别的中间件来实现延迟消息吗?
可以考虑使用 Redis、RabbitMQ 等。Redis 的有序集合(zset)可以控制到期时间,RabbitMQ 的 TTL 和死信队列也可以实现延迟消息。
24|消息积压:业务突然增长,导致消息消费不过来怎么办?
- 一个分区可以有多个消费者吗?一个消费者可以消费多个分区吗?
- 你业务里面的消息有多少个分区?你怎么计算出来的?它能撑住多大的读写压力?
- 你遇到过消息积压吗?怎么发现的?为什么会积压?最后怎么解决的?
- 为什么会出现消息积压?只要我容量规划好,肯定不会有消息积压,对不对?
- 消息积压可以考虑怎么解决?
- 增加消费者数量能不能解决消息积压问题?
- 能不能通过限制发送者,让他们少发一点来解决消息积压问题?
- 现在我发现分区数量不够了,但是运维又不准我增加新的分区,该怎么办?
- 异步消费有什么缺陷?
- 你怎么解决异步消费的消息丢失问题?你的方案会引起重复消费吗?
- 在异步消费一批消息的时候,要是有部分消费失败了,怎么办?要不要提交?
1. 一个分区可以有多个消费者吗?一个消费者可以消费多个
相关文章:

[每周一更]-(第123期):模拟面试|消息队列面试思路解析
文章目录 22|消息队列:消息队列可以用来解决什么问题?1. 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?2. 你用的是哪个消息队列?为什么使用它而不用别的消息队列?3. 为什么你一定要用消息队列?不用行不行?不用有什么缺点?4. 在对接多…...

游戏引擎学习第12天
视频参考:https://www.bilibili.com/video/BV1yom9YnEWY 这节没讲什么东西,主要是改了一下音频的代码 后面有介绍一些alloc 和malloc,VirtualAlloc 的东西 _alloca 函数(或 alloca)分配的是栈内存,它的特点是: 生命周…...

深入理解Flutter生命周期函数之StatefulWidget(一)
目录 前言 1.为什么需要生命周期函数 2.开发过程中常用的生命周期函数 1.initState() 2.didChangeDependencies() 3.build() 4.didUpdateWidget() 5.setState() 6.deactivate() 7.dispose() 3.Flutter生命周期总结 1.调用顺序 2.函数调用时机以及主要作用 4.生…...

413: Quick Sort
解法: #include <bits/stdc.h> using namespace std; const int N1e55; int a[N]; int n;int main(int argc, char** argv) {cin>>n;for (int i0;i<n;i) cin>>a[i];sort(a,an);for (int i0;i<n;i) cout<<a[i]<<" "…...

vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
import axiosNew from axios;//给axios起个别名//创建常量实例 const instanceNew axiosNew.create({//axios中请求配置有baseURL选项,表示请求URL的公共部分,url baseUrl requestUrlbaseURL: baseURL,//设置超时时间为20秒timeout: 20000,headers: {…...

Pandas数据透视表:交叉分析与聚合计算
大家好,在数据分析中,数据透视表(Pivot Table)是一种强大的工具,用于交叉分析和聚合计算。Pandas库中的数据透视表功能,使我们能够在多维数据中快速生成汇总表、统计特定维度的聚合数据,帮助揭示…...

软件设计师考试大纲
文章目录 一 、考 试 说 明1. 考试目标2. 考试要求3. 考试科目设置 二、考 试 范 围考试科目1:计算机与软件工程知识1. 计算机系统基础知识1.1计算机内数据的表示及运算1.2 其他数学基础知识1.3 计算机硬件基础知识1.3.1 计算机系统的组成、体系结构分类及特性1.3.2 存储系统1.…...

一文说清C++类型转换操作符(cast operator)
一 前言 大家在编程时,一定会遇到要做类型转换的应用场景。 但是,C风格的类型转换太强大,太危险,它允许将一个给定类型转换成我们想要的任何其他类型。 所以在C中,提供了一些更安全和更明确的类型转换操作符ÿ…...

MOSFET电路栅源极GS之间并联电容后,MOS炸管原因分析
1、前言 在介绍,在进行MOSFET相关的电路设计时,可能会遇到MOSFET误导通的问题,为了解决此问题,我们提出了两种方法,一种是增大MOSFET栅极串联电阻的阻值,另外一种是在MOSFET栅-源极之间并联一个电容&#…...

gitHub常用操作
gitHub常用操作 1、把项目拉下来2、添加上游仓库3、进入分支4、从上游仓库拉取更新 1、把项目拉下来 在对应项目的右上角点击fork,fork下来:将远程仓库复制到个人仓库 在创建好的分支文件夹下使用 git clone自己远程仓库下的http地址(fork…...

[项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]
YOLOv5是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv5具有更高的…...

Java 垃圾回收机制(GC)概览
简介 Java垃圾收集、堆和运行时编译器默认选择 jdk1.9开始,默认使用G1收集器,GC Threads的最大数量受堆大小和可用CPU资源限制初始堆大小为物理内存的1/64最大堆大小为物理内存的1/4分层编译器,同时使用C1和C2 JVM 垃圾收集器可以为配置优…...

Kafka节点服役和退役
1 服役新节点 1)新节点准备 (1)关闭 bigdata03,进行一个快照,并右键执行克隆操作。 (2)开启 bigdata04,并修改 IP 地址。 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改完…...

Git如何简单使用
文章目录 GitGitlabGitLab和GitHub有什么区别?Gitlab简单使用Gitlab常用指令Git Git是一个分布式版本控制系统。 它用于记录文件的修改历史,方便多人协作开发软件等项目。例如一个软件开发团队,成员们会频繁修改代码,Git可以追踪每个人的修改内容、时间等信息。 主要功能…...

酒水分销积分商城小程序开发方案php+uniapp
酒水分销积分商城小程序开发,开发语言后端php,前端uniapp。核心功能模块:酒水商城、积分商城、二级分销、抽奖、优惠券。可以二开或定制。协助部署搭建。...

MTU-内核态(数据链路层或网络接口上能够传输的最大数据包大小)
MTU(最大传输单元,Maximum Transmission Unit)是网络中用于表示数据链路层或网络接口上能够传输的最大数据包大小。 1. 工作原理 MTU 决定了一个数据包(包括头部和数据部分)的最大长度。它影响到数据的传输ÿ…...

React的基础API介绍(一)
目录 useEffect1. 替代生命周期方法2. 副作用管理3. 依赖项数组4. 多次使用5. 与闭包配合6. 支持异步操作7. 减少样板代码 注意事项useEffetct是如何拿到变量count最新的值?1. 每次渲染都会创建新的函数作用域2. 闭包捕获最新的状态值3. useEffect 的执行时机 useLa…...

【Electron】总结:如何创建Electron+Element Plus的项目
我将结合官网手册与AI问到的信息,直接给出步骤,与命令。 一、准备环境 首先在C盘Users,你的登录的账号名文件夹下,编辑.npmrc文件。添加镜像地址。 如果使用了yarn,则是.yarnrc。可以全部都配置。 npm install -g …...

从依托指标字典到 NoETL 自动化指标平台,指标口径一致性管理的进阶
今天,我们一起来梳理和盘点下不同代际指标平台如何实现指标口径一致性管理: 第一代:指标口径登记与管理 第一代指标平台聚焦于指标口径的登记与管理,依托指标字典实现企业指标口径的有效检索与管理功能。 此阶段,业…...

嵌入式面试题练习 - 2024/11/15
欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导 1.设有定义char *p[]{"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是() A *p[1] 3 B *(p[1] 3) C *(p[3] 1) D p[3] […...

分析http话术异常挂断原因
用户反馈在与机器人通话时,自己明明有说话,但是通话还是被挂断了,想知道原因。 分析日志 我们根据用户提供的freeswitch日志分析:发现是因为超时导致话术执行hangup动作,结束了通话。 从这一行向上分析日志ÿ…...

云岚到家 秒杀抢购
目录 秒杀抢购业务特点 常用技术方案 抢券 抢券界面 进行抢券 我的优惠券列表 活动查询 系统设计 活动查询分析 活动查询界面显示了哪些数据? 面向高并发如何提高活动查询性能? 如何保证缓存一致性? 数据流 Redis数据结构设计 如…...

【WPF】Prism库学习(一)
Prism介绍 1. Prism框架概述: Prism是一个用于构建松耦合、可维护和可测试的XAML应用程序的框架。它支持WPF、.NET MAUI、Uno Platform和Xamarin Forms等多个平台。对于每个平台,Prism都有单独的发布版本,并且它们在不同的时间线上独立开发。…...

0 -vscode搭建python环境教程参考(windows)
引用一篇非常详细的vscode搭建python环境教程 链接:vscode安装以及配置Python基本环境 以下是VSCode和PyCharm的对比 个人更建议使用VSCode Visual Studio Code (VSCode) Visual Studio Code 是由微软开发的一款免费、开源的轻量级代码编辑器。它支持多种编程语…...

Uniapp 引入 Android aar 包 和 Android 离线打包
需求: 原生安卓 apk 要求嵌入到 uniapp 中,并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你,从 apk 到 aar,以及打包冲突到如何运行,期间我所遇到的问题都会 一 一 进行说明,相关版本以我文章内为…...

10款高效音频剪辑工具,让声音编辑更上一层楼。
音频剪辑在音频,视频,广告制作,游戏开发,广播等领域中都有广泛的应用。通过音频剪辑,创作者可以通将不同的音频片段进行剪切、拼接、混音等操作,创作出风格各异的音乐作品。如果你也正在为音频创作而努力的…...

Javascript——设计模式(一)
Javascript常见设计模式-CSDN博客 设计模式专栏内容总结-CSDN博客 C#编程思想——设计模式-CSDN博客 设计模式概述及其作用 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式的主要目的是为…...

Hybird和WebView
在移动端Hybrid开发模式下,iOS和Android应用都可以通过一种共享代码的方式,利用Web技术(HTML、CSS、JavaScript)和原生应用的功能进行开发。这种方式的主要优点是减少了开发成本,因为大部分代码可以共享,同…...

c++实现中缀表达式 转换为后缀表达式
使用栈来计算后缀表达式的值: 9(3 - 1)*310/2; 后缀表达式:所有的符号都是在运算数字的后面出现: 9 3 1 – 3 * 10 2 / 规则: 中缀表达式转后缀表达式: 1.从左到右遍历中缀表达式的每个数字和符号,若是数字就打印同时入栈数…...

Cisco FMC重置SmartLicense到Evaluatin mode步骤
1 科普: what is FMC full name is Firepower Management Center, 是思科FirePower防火墙的统一管理平台. 能管理ASA不? no,只能管理FTD模式的墙。这里的FTD包括物理机firepower系列运行的FTD,以及FTDv(虚拟化版本&a…...