2022年8月8日
摘要: 在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果? 项目中缓存是如何使用的? 为啥要用缓存?=>用缓存主要有俩用途,高性能和高并发 1)高性能: 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms。但是这个结果可能接下来几个小时 阅读全文
posted @ 2022-08-08 22:34 网恋被骗两千八 阅读(37) 评论(0) 推荐(0)
摘要: es:elasticsearch 首先得了解lucene和elasticsearch的区别并且着手写相关的demo程序 1)es分布式架构原理能说一下吗?(es是如何实现分布式的) 2)es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊? 3)es在数据量很大的情况下(数十亿级别)如何提 阅读全文
posted @ 2022-08-08 22:09 网恋被骗两千八 阅读(35) 评论(0) 推荐(0)
摘要: 如果说要设计一个消息队列,主要从以下角度考虑: 1)首先得考虑mq的可伸缩性,也就是需要的时候可以支持快速扩容,就可以增加吞吐量和容量,怎么搞? 设计个分布式系统,参考Kafka设计理念,broker->topic->partition,每个partition放一个机器旧村一部分数据。 如果现在资源 阅读全文
posted @ 2022-08-08 22:00 网恋被骗两千八 阅读(130) 评论(0) 推荐(0)
摘要: 为什么使用消息队列?消息队列有哪些优缺点?Kafka、activeMQ,rabbitMQ、rocketMQ都什么区别以及适合哪些场景? 如何保证消息队列的高可用啊? 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)? 如何保证消息的可靠性传输(如何处理消息丢失的问题)? 如何保证消息的顺序性 阅读全文
posted @ 2022-08-08 21:47 网恋被骗两千八 阅读(53) 评论(0) 推荐(0)
摘要: 一般情况下,只能操作紧急临时扩容了。具体操作步骤和思路如下: 1)先修复consumer的问题,确保其恢复消费速度,然后将现有的consumer都停掉 2)新建一个topic,partition是原来的10倍,临时建好原先10倍或20倍的queue数量 3)然后写一个临时的分发数据的consumer 阅读全文
posted @ 2022-08-08 21:32 网恋被骗两千八 阅读(81) 评论(0) 推荐(0)
摘要: 1)RabbitMQ:拆分成多个queue,每个queue对应一个customer;或者就一个queue对应一个customer,但是这个customer内部用内存队列,然后分发给底层不同的worker来处理 2)Kafka: 生产者写入一个partition中的数据一定是有顺序性的; 生产者在写数 阅读全文
posted @ 2022-08-08 20:59 网恋被骗两千八 阅读(679) 评论(0) 推荐(0)
摘要: 丢数据的情况分两种: 1.mq自己弄丢的 2.消费者消费的时候弄丢的 以rabbitMQ为例: rabbitMQ可能存在消息丢失的问题: 1.生产者往MQ写消息的时候,消息没到MQ,在网络传输过程中丢了或者是消息到了MQ但是MQ内部出错导致没有保存下来 选择使用的rabbitMQ的事务功能,就是生产 阅读全文
posted @ 2022-08-08 20:17 网恋被骗两千八 阅读(173) 评论(0) 推荐(0)
摘要: 添加一个中间件,取名为内存set,消费者每次消费到了MQ的一条消息的时候,想内存set中插入消费记录,如果消费者消费的消息存在于内存set中,则这条消息被过滤 基于数据库的唯一键,保证重复数据不会被插入多条 阅读全文
posted @ 2022-08-08 15:55 网恋被骗两千八 阅读(47) 评论(0) 推荐(0)