[关闭]
@yanglfyangl 2018-08-01T05:35:57.000000Z 字数 592 阅读 484

流氓鸽技术方案

简单分析

流氓鸽很像是一个搜索式的规则推荐,带有一定的随机性。

建议调用流程

各相关业务模块将当前事件写入Kafka中(类似互动),流氓鸽的计算中心接收事件,存入自己的库中( 建议使用Mongo,因为是一个查询复杂度高的业务,不建议使用ES主要因为)。

因为并发量不容易预估,所以建议走“ 生成查询ID --> 用查询ID轮训” 的方式。

至于打开红包,饭票等部分,还走原来业务的接口。

事件的格式

{
type: "topic|moment|..."
bID:"业务ID"
status:"ongoing|closed"
title:""
location:""
range: {
...
}
}

原则上,当业务Closed时候,最好是从数据库中删除。

调用流

Created with Raphaël 2.1.2流氓鸽Controller流氓鸽Controller流氓鸽Service流氓鸽Service流氓鸽计算中心流氓鸽计算中心流氓鸽库流氓鸽库RedisRedis业务服务业务服务创建查询ID发出查询请求返回进行查询结果写入缓存轮训byID有则返回业务数据分析统计后落库

其它

目前鸽子找到的部分,需要被占用,不被别人拾到,直到用户放弃。

这个业务可以这样实现

鸽子占用的部分,从业务缓存中去掉,同时更新库中状态为“被占用状态”。如果用户选择放弃,则恢复状态缓存和数据库对应状态。需要在数据库中记录“被X的X鸽子占用”两个字段。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注