赞
踩
1、场景作用
削峰填谷,异步解耦。
2、如何保证消息不被重复消费呢?
这个问题可以换个思路,保证消息重复消费,其实是保证程序的幂等性。无论消息如何重复,程序运行的结果是一致的。比如消费消息后做数据库插入操作,为了防止消息重复消费,可以在插入前先查询一下有没有对应的数据。
3、怎么保证从消息队列里拿到的数据按顺序执行?
消费端在接收到消息后放入内存队列,然后对队列中的消息进行有序消费。
4、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
消息过期失效问题,如果消息一段时间不消费,导致过期失效了,消息就丢失了,只能重新查出丢失的消息,重新发送。 再来说消息积压的问题:(思路是快速消费掉积压的消息)
消息队列满了:只能边接收边丢弃,然后重新补回丢失的消息,再做消费。
4、如何保证消息的可靠性传输(如何处理消息丢失的问题)?
kafka 为例:
1、数据类型
常用命令: set,get,decr,incr,mget 等。
常用命令: hget,hset,hgetall 等
常用命令: lpush,rpush,lpop,rpop,lrange 等
可以通过 lrange 命令,就是从某个元素开始读取多少个元素,可以基于 list 实现分页查询。
常用命令: sadd,spop,smembers,sunion 等
常用命令: zadd,zrange,zrem,zcard 等
2、Redis 如何实现 key 的过期删除?
定期删除和惰性删除的形式。
3、Redis 的持久化机制
数据快照(RDB)+ 修改数据语句文件(AOF)
4、如何解决 Redis 缓存雪崩和缓存穿透?
缓存雪崩 缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。
缓存穿透 一般是黑客故意去请求缓存中不存在的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。
5、如何使用 Redis 实现消息队列?
Redis 实现消息队列依赖于 Redis 集群的稳定性,通常不建议使用。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 Nginx 主要提供反向代 理、负载均衡、动静分离(静态资源服务)等服务。
1、正向代理和反向代理
2、负载均衡
将请求分摊到多台机器上去,高并发,增加吞吐量。
3、动静分离
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
4、Nginx 四个组成部分
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。