MixIOT 缓存架构及消息系统搭建

我要开发同款
just2022年11月19日
585阅读

作品详情

软件架构:Kafka + Redis + Mysql + Consul 项目背景:面对日益增加的并发量,迫切需要优化现有的 MixIOT 整体架构,采用缓存+ 拆分服务来提供系统的负载和高可用。 项目介绍:通过缓存设备状态 FV 信息,分离业务处理模块来提高系统的负载。缓存架构采用一主多从实现读写分离和高可用,使用 AOF + RDB 做冷热备份,使用哨兵集群监控节点状态和故障转移,使用 Consul 作为微服务注册/发现,健康检查,使用 Kakfa 分布式分片集群保证系统高可用和高性能: 主要职责:1. 负责拼图服务/事件,故障,告警核心服务的开发和系统搭建;2. 负责消息中心微服务功能边界的划分和模块开发;3. 负责实现自研分布式一致性架构保证高性能和高可靠。 技术挑战或问题:1. Kafka 发送消息保证消息的可靠性,幂等性,以及参数优化;(1) 描述:使用 Kafka 发送消息的时候,可能发生小心丢失,消息重复消费等问题(2) 措施:从三个角度来保证消息不丢失1 发送时通过事务消息来保证消息一定发送到 Kafka,异常则回滚2 Kakfa 使用一主双从保证高可用3 消费时只有执行完全部业务才会提交 offset,异常则稍后重试4 在消费端通过 Redis+状态机保证消息幂等性2. 缓存冷备份恢复缓存穿透、redis 启动时瞬间缓存雪崩问题;(1) 描述:在 UAT 压测时,刚开始 Redis 数据为空,瞬间大量请求穿过 Redis 打倒 MYSQL导致崩溃,在模拟 Redis 集群崩溃时,使用 RDB 冷备进行快速恢复、发现 RDB 文件中的数据没有加载到 Redis 中。(2) 措施:首先只启动 Redis,将热数据通过 RDB 恢复到 Redis 中,保证应用在使用 Redis前,Redis 中已经有部分热数据,避免发生缓存穿透,恢复时严格按照以下过程:1 关闭 AOF,通过 RDB 文件启动2 动态修改配置开启 AOF,这样可以保证开启 RDB 和 AOF 的同时,保证数据安全的加载到 Redis 中
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论