腾讯组织架构整改引思考:中小团队要怎样搭建架构?( 三 )

1、集中式缓存Redis

缓存是计算机的难题之一,分布式缓存亦是如此。Redis看起来非常简单,但它影响着系统的效率、性能、数据一致性。

用好它不容易,具体包括:缓存时长(复杂多维度的计算)、缓存失效处理(主动更新)、缓存键(Hash和方便人工干预)、缓存内容及数据结构的选择、缓存雪崩的处理、缓存穿透的处理等。Redis除了缓存的功能,还有其它功能如Lua计算能力、Limit与Session时间窗口、分布式锁等。我们使用ServiceStack.Redis做客户端,使用方法详见Demo。

2、消息队列RabbitMQ

消息队列好比葛洲坝,有大量数据的堆积能力,然后再可靠地进行异步输出。它是EDA事件驱动架构的核心,也是CQRS同步数据的关键。为什么选择RabbitMQ而没有选择Kafka,因为业务系统有对消息的高可靠性要求,以及对复杂功能如消息确认Ack的要求。

3、集中式日志ELK

日志主要分为系统日志和应用日志两类。

试想一下,你该如何在一个具有几百台服务器的集群中定位到问题?如何追踪每天产生的几G甚至几T的数据?集中式日志就是此类问题的解决方案。

推荐阅读