MongoChangeReader
该reader是通过监控 mongoDB的oplog,将变化数据读出。
输出的数据
输出的数据与mongoDB中文档的结构保持一致,并在文档中增加了如下“元信息”
{
"_mongo_oplog": { ... },
"_mongo_ns": "<database>.<collection>"
}
_mongo_oplog 中的内容
ts:8字节的时间戳,由4字节unix timestamp + 4字节自增计数表示。 这个值很重要,在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary。
op:1字节的操作类型,例如i表示insert,d表示delete。
ns:操作所在的namespace。 o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值) o2: 在执行更新操作时的条件,仅限于update时才有该属性。
其中op,可以是如下几种情形之一: "i": insert "u": update "d": delete "c": db cmd "db":声明当前数据库 (其中ns 被设置成为=>数据库名称+ '.') "n": no op,即空操作,其会定期执行以确保时效性。修改配置,会产生 "n" 操作。