基于Storm的GitHub提交计数仪表盘设计与实现
1. 问题定义
我们要设计一个GitHub提交计数仪表盘,该仪表盘需在仓库有任何更改后立即更新。它会列出对仓库进行过提交的每个开发者的电子邮件地址,以及他们各自的提交总数。示例仪表盘可能如下图所示:
1.1 数据:起点与终点
GitHub会提供任何仓库的实时提交信息流。每条提交信息作为一个单独的字符串进入信息流,格式为提交ID,后跟一个空格,再跟提交者的电子邮件地址。以下是信息流中10条提交信息的示例:
b20ea50 nathan@example.com
064874b andy@example.com
28e4f8e andy@example.com
9a3e07f andy@example.com
cbb9cd1 nathan@example.com
0f663d2 jackson@example.com
0a4b984 nathan@example.com
1915ca4 derek@example.com
这个信息流是我们数据的起点。我们的目标是从这个实时信息流过渡到一个用户界面,该界面能显示每个电子邮件地址的提交总数。为了简化,我们只需维护一个内存中的映射,其中键是电子邮件地址,值是提交次数。代码示例如下:
Map<String, Integer> countsByEmail = new HashMap<String, Integer>();
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



