最近在做一个积分类应用,大致设想了下构架。
先上图:
主要需要考虑的点:
1、性能:积分类应用 查询频繁,写操作一般,所以在设计上查询时需要一个内存cache,在db设计上 一般会采用用户ID hash 分表,分的表越多后续的统计越麻烦,
因此在不影影响性能的情况下 设计一个 异步入库的机制, 按照积分的珍贵程度 可以采用两种方式,如何可以忽略小的差错 可以采用 向udp日志服务器 写 udp日志,然后异步写入db,如何积分弥足珍贵的话另外一种是采用消息队列的方式异步入库。
2、可拓展行:需要考虑接入业务增加后系统能有好的拓展行,加机器时 热切用户无感知。
3、监控:在监控方面上除了运维层面的常规监控外,程序这边需要做外部心跳查询。