蓝盟IT外包,良好的代码实践:基于Redis的轻量级均衡消费队列

发布者:上海IT外包来源:http://www.lanmon.net点击数:1427

蓝盟IT小贴士,来喽!
一、我对好代码的看法
1 .什么是好代码
如果你读过《设计模式之美》,你可能会看到各种设计模式,觉得符合设计模式六个基本原则的代码是好代码。 如果你读了《clean  code》,你可能会觉得好代码的标准是——干净。 如果你仔细阅读Spring源代码,你可能会认为精彩的设计、高级抽象和灵活的排列是好代码。 就像书一样,一千个读者眼中有一千个哈姆雷特,每个人都根据自己的认知有自己的判断。
2 .我认为的好代码
如上所述,人对好代码的认知标准不同。 我认为的好代码也仅限于我的认知水平。 我觉得今天代码很好。 随着认知的提高,也许有一天会有不同的想法。 目前的认知中,我所认为的好代码的几个特征是:
可用性
你没有错。 好的代码一定可以使用。 可以工作。 代码只是在看,在各种各样的花中使用着胡哨的代码技术、手法,但是如果不能work的话,它就失去了存在的意义。 所以,好代码,最重要的特征之一是可用性。
可读性
我认为好代码的第二个特点是可读性。 写我们代码的目标用户有两种。 第一个是给编译器看的。 第二个是给维护它的程序员看的。 对于第一类用户,只要你满足其语法规范,它就会认识到,并能执行它。 第二类用户是后期继续维护和升级它的程序员同学,这个代码,如果维护它的人读不下去,他长期存在的意义就不大了。
其他优越的特征
可维护性、可扩展性、可重用性、鲁棒性、测试性等。
好代码的其他优秀特征太多了,不列举。
3 .让代码在电脑上跳舞
回到根源,我们写代码的目的是什么? 是为了告诉我们用计算机认识我们想法的命令,让它做我们想做的事。 代码不仅能轻松完成我们的想法,还能更快、高效、完整地执行。 让我们和code一起在电脑上跳舞吧。
二、我们为什么要做?
2020年五一节期间,当大家享受五一节的快乐时光时,我们突然接到了hbase的通报,整个hbase的IO压力已经接近瓶颈,直接影响了数据的读写,暂时扩大了hbase才过去。 根据这一发展趋势,一旦达到商业高峰,hbase的读写就会给整个商业链接带来瓶颈。 为了解决大量枪支数据实时写入hbase  solr时产生的高IO压力,我们设计了基于redis实现的轻量级分布式均衡消耗队列,将枪支数据按照一定规则进行sharding并放入不同队列,生成大量数据三、我们是怎么做到的?
整个组件主要分为3个核心模块、master  (主节点)、writer  (数据写入节点)、worker  (工作节点)。
设计机制:弱中心机制,这两个预配置的节点都可以成为主节点、writer节点和工作器节点,具有高可用性,不存在独立的单点瓶颈问题。
主人(主人)的作用:
负责实时调查工作节点是否有变化以及是否断线
将任务队列分配给生存的工作节点
负责实时检测整个redis队列的负载情况。
数据写入节点(writer  )的作用:
负责将实时写入任务sharding分配到不同的队列
负责检测当前写入队列的负载。
工作节点角色:
负责实时报告当前的工作节点(worker  )状态并维持心跳
定时消耗该工作器(工作节点)负责的数据。

伟大的linux大神说:“Talk  is  cheap,给我看看代码。”

文/上海蓝盟   IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部