加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MongoDB Stream是怎样实现美满数据增量迁徙的?

发布时间:2018-08-18 09:03:22 所属栏目:编程 来源:zale
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 一、配景先容 最近微处事架构火得不可,但本质上壹贝偾风口上的一个热门词汇。 作为笔者的履素来说,想要应用一个新的架构必要带来的厘革本钱长短常高的。 尽量云云,今朝照旧有许

界说Channel频道的转换表:

  1. public static enum Channel {  
  2.     Food("美食"),  
  3.     Emotion("情绪"), 
  4.     Pet("宠物"),  
  5.     House("家居"),  
  6.     Marriage("征婚"),  
  7.     Education("教诲"),  
  8.     Travel("旅游") ; 
  9.  
  10.     private final String oldName;  
  11.     public String getOldName() {  
  12.         return oldName;  
  13.     }  
  14.     private Channel(String oldName) {  
  15.         this.oldName = oldName;  
  16.     }  
  17.     /**  
  18.      * 转换为新的名称  
  19.      *  
  20.      * @param oldName  
  21.      * @return  
  22.      */  
  23.     public static String toNewName(String oldName) {  
  24.         for (Channel channel : values()) {  
  25.             if (channel.oldName.equalsIgnoreCase(oldName)) {  
  26.                 return channel.name();  
  27.             }  
  28.         }  
  29.         return "";  
  30.     }  
  31.     /**  
  32.      * 返回一个随机频道  
  33.      *  
  34.      * @return  
  35.      */  
  36.     public static Channel random() {  
  37.         Channel[] channels = values();  
  38.         int idx = (int) (Math.random() * channels.length);  
  39.         return channels[idx];  
  40.     }  

为topic表预写入1w笔记录:

MongoDB Stream是怎样实现美满数据增量迁徙的?

开启监听使命,将topic上的全部改观写入到增量表:

MongoDB Stream是怎样实现美满数据增量迁徙的?

代码中通过watch呼吁得到一个MongoCursor工具,用于遍历全部的改观。

FullDocument.UPDATE_LOOKUP选项启用后,在update改观变乱中将携带完备的文档数据(FullDocument)。

watch()呼吁提交后,mongos会与分片上的mongod(主节点)成立订阅通道,这也许必要耗费一点时刻。

为了模仿线上营业的真实环境,启用几个线程对topic表举办一连写操纵:

MongoDB Stream是怎样实现美满数据增量迁徙的?

ChangeTask实现逻辑如下:

MongoDB Stream是怎样实现美满数据增量迁徙的?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读