摘要: 具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一 组成 Broker:消息服务器,作为server提供消息核心服务 Producer:消息生产者,业务的发起方,负责生产消息传broker Consumer:消息消费者,业务的处理方,负责从broker获取消息 阅读全文
posted @ 2023-06-08 16:29 上好佳28 阅读(25) 评论(0) 推荐(0)
摘要: 现象: 业务卡件,报错:模型输入项获取发生异常 原因: 现在模型接入是支持页面配置的,定时会将数据库的模型参数加载到缓存中,代码运行时模型参数都是直接从缓存中获取的 下午新增模型时,业务人员配错了模型参数 DI->MODEL1,model_key->mdoel1,model_type->130, 此 阅读全文
posted @ 2023-06-08 16:24 上好佳28 阅读(67) 评论(0) 推荐(0)
摘要: 一、背景 客经使用rocketMq批量推送数据到pcr执行次贷策略引擎和互斥决策引擎,pcr将决策结果推送到前置路由。 二、问题现象描述 在客经推数据时,pcr-updateBorrowState消息积压越来越多,从日志上看,pcr不拉取消息,重启服务器后可以消费消息,过一会又消费变慢,不断重启才让 阅读全文
posted @ 2023-06-08 16:23 上好佳28 阅读(441) 评论(0) 推荐(0)
摘要: Redis使用的是I/O多路复用 首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是为了解决这 阅读全文
posted @ 2023-06-08 16:14 上好佳28 阅读(35) 评论(0) 推荐(0)
摘要: select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的。而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间 select 调用后select函数会阻塞,直到有描述符就绪(有数据 可读、可写 阅读全文
posted @ 2023-06-08 16:07 上好佳28 阅读(33) 评论(0) 推荐(0)
摘要: I/O过程 对于一次IO访问(这回以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区,最后交给进程。所以说,当一个read操作发生时,它会经历两个阶段: 1. 等待数据准备 (Waiting for the data to be ready 阅读全文
posted @ 2023-06-08 16:06 上好佳28 阅读(43) 评论(0) 推荐(0)
摘要: 直接I/O和缓存I/O 直接I/O 缓存 I/O 又被称作标准 I/O,数据会先被拷贝进程缓冲区,在拷贝到操作系统内核的缓冲区中,然后才会写到存储设备中 阅读全文
posted @ 2023-06-08 15:39 上好佳28 阅读(30) 评论(0) 推荐(0)
摘要: 用户空间和内核空间 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间 进程上下文切换 从一个进程的运行转到另一个进 阅读全文
posted @ 2023-06-08 15:37 上好佳28 阅读(11) 评论(0) 推荐(0)
摘要: 如何保证 Redis 中的数据都是热点数据 提供一种简单实现缓存失效的思路: LRU(最近少用的淘汰) 即redis的缓存每命中一次,就给命中的缓存增加一定ttl(过期时间)(根据具体情况来设定, 比如10分钟). 一段时间后, 热数据的ttl都会较大, 不会自动失效, 而冷数据基本上过了设定的tt 阅读全文
posted @ 2023-06-08 15:25 上好佳28 阅读(18) 评论(0) 推荐(0)
摘要: 多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了 首先使用分布式锁,确保同一时间,只能有一个系统实例在操作某个key 然后修改key的值时,要先判断这值的时间戳是否比缓存里的值的时间戳更靠后, 阅读全文
posted @ 2023-06-08 15:24 上好佳28 阅读(14) 评论(0) 推荐(0)
摘要: 缓存穿透 缓存穿透是指查询一个缓存和数据库中都不存在的数据,客户端不断发起请求,导致数据库压力过大 解决方法 1、采用布隆过滤器,将所有可能存在的数据,哈希到一个很大的 bitmap 中, 一个一定不存在的数据会被 bitmap 拦截调,从而避免了对数据库的查询压力。 2、如果查询的数据为空,直接将 阅读全文
posted @ 2023-06-08 15:23 上好佳28 阅读(20) 评论(0) 推荐(0)
摘要: 横向扩容,保证哈希一致性 一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2^32-1(即哈希值是一个32位无符号整形) 下一步将各个服务器使用Hash进行一个哈希,具体可以选择服务器的ip或主机名作为关键字进行哈希,这样每台机器就能确定其在哈希环上的位置 接下来使用 阅读全文
posted @ 2023-06-08 15:22 上好佳28 阅读(76) 评论(0) 推荐(0)
摘要: 读操作:主库、从库都可以接收; 写操作:首先到主库执行,然后,主库将写操作同步给从库。 主从第一次同步 第一阶段,主从库间建立连接、协商同步的过程,主要是为全量复制做准备。从库和主库建立起连接,主库确认回复后,就可以开始同步了。具体来说,从库给主库发送 psync 命令,psync 命令包含了主库的 阅读全文
posted @ 2023-06-08 15:21 上好佳28 阅读(15) 评论(0) 推荐(0)
摘要: 哨兵其实是一个运行在特殊模式下的 Redis 进程,所以它也是一个节点。从“哨兵”这个名字也可以看得出来,它相当于是“观察者节点”,观察的对象是主从节点 哨兵节点主要负责三件事情:监控、选主、通知 监控 哨兵会每隔 1 秒给所有主从节点发送 PING 命令,当主从节点收到 PING 命令后,会发送一 阅读全文
posted @ 2023-06-08 15:20 上好佳28 阅读(20) 评论(0) 推荐(0)
摘要: 删除策略 定时删除:在设置键的过期时间的同时,创建一个定时器 timer). 让定时器在键的过期时间来临时,立即执行对键的删除操作 定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。 惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除 阅读全文
posted @ 2023-06-08 15:18 上好佳28 阅读(36) 评论(0) 推荐(0)
摘要: 单机单节点模式使用 AOF 和 RDB 结合的方式 RDB 做镜像全量持久化,AOF 做增量持久化。因为 RDB 会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要 AOF 来配合使用。 Redis 集群模式 1、master 节点持久化 2、Redis断点续传:主从复制过程中,如果 阅读全文
posted @ 2023-06-08 15:16 上好佳28 阅读(195) 评论(0) 推荐(0)
摘要: Redis缓冲区有两个应用场景: 在客户端和服务器端之间进行通信时,用来暂存客户端发送的命令数据,或者是服务器端返回给客户端的数据结果; 主从节点间进行数据同步时,用来暂存主节点接收的写命令和数据 客户端缓冲区 是为了解决客户端和服务端请求和处理速度不匹配问题的,它又分为输入和输出缓冲区。 输入缓冲 阅读全文
posted @ 2023-06-08 15:15 上好佳28 阅读(58) 评论(0) 推荐(0)
摘要: 从性能上来说,内存占用过高会引起Reids响应变慢 从高可用上来说,内存过大可能会会引起部分数据丢失,故障恢复变慢 Redis内存消耗主要在于其主进程消耗和子进程消耗。而主进程消耗又主要包括自身内存、对象内存、缓冲区内存、内存碎片五个方面 1、自身内存 指Redis进程自身所占用的内存,这部分内存通 阅读全文
posted @ 2023-06-08 15:14 上好佳28 阅读(41) 评论(0) 推荐(0)
摘要: AOF 日志,每次追加,文件量大,能设置每秒/没次,那么异常情况下丢失的数据少,文件过大时会重写,即采用最简短的命令描述数据库 RDB 快照式,快照是一次全量备份,异常情况下丢失的数据量较大 RDB文件的创建可以手动触发,也可以自动触发 服务器在载入RDB文件期间,会一直处于阻塞状态,直到载入工作完 阅读全文
posted @ 2023-06-08 15:14 上好佳28 阅读(9) 评论(0) 推荐(0)
摘要: 字符串对象(String) 字符串对象底层是简单动态字符串SDS 使用场景: 1、作为缓存 缓存一些热点数据。一般在读取数据的时候会先从Redis中读取,如果Redis中没有,再从数据库中读取,从而降低后端的压力。(需要注意缓存穿透、雪崩以及缓存更新等问题......) 2、计数器\限速器\分布式系 阅读全文
posted @ 2023-06-08 15:11 上好佳28 阅读(70) 评论(0) 推荐(0)