ocs计费项目重要点

来源:互联网 发布:网上代理销售软件 编辑:程序博客网 时间:2024/06/16 11:08

ocs计费项目重要点,使用分布式dubbo架构

宗旨是保证用户权益,可以适当损失公司部分利益。

一、安全性、可靠性
1、过载保护,当队列数量达到一定阈值,将数据保存到mongodb中,等到服务器压力降下来后去数据库捞。
2、使用redis分布式锁保证数据的安全性。
3、redis分布式锁不能保证长处理流程,比如调到其他服务器,其他服务器重复批价、或同时批价流量,此时要做重复判断,并使用redis事物实现幂等,不允许重复
4、redis哨兵模式,保证主服务器挂掉后备用服务器顶上
5、异常处理逻辑考虑全面,分布式调用失败,查询接口默认使用上次数据,修改数据异常做回滚处理
6、一些非正常未处理数据走cafka保存到磁盘。
7、使用计数器保证用户数据处理完毕。
8、task任务清理redis过期数据,使用redis积分制,将过期数据转移到临时区域,保证异常情况下将未处理数据处理掉。

9、返回错误码,使用信用额度10、其他组定义了断路由,使用hytrix(有误)11、数据库备份,集群。12、保证线程数量,当有线程挂掉了要重启新的线程。

二、高吞吐量
1、使用自定义负载均衡,将同一用户路由到同一服务器,入同一个队列,同一个线程处理。减少分布式锁的使用,提高cpu的利用率。
2、使用流量池,累计一定的流量或达到时间阈值再去批价,保证大部分流量数据很快处理掉。最好做到快慢分离。
3、能用缓存的尽量使用缓存,不变的数据永远保持在缓存中,周期改变的数据使用ecache本地缓存。
4、redis按业务分区,保证访问redis高效性
5、使用不同的数据保存不同数据,详单读从库,写主库

三、可移植性、可扩展性
1、根据业务、通用专业原则定义接口、模块、服务,比如从GCBU版本升级到流量预授权版本,将批价从cm服务转移到engine服务
2、使用java设计模式,如责任链模式、状态模式等,可扩展性好。

原创粉丝点击