前言:前面说到了mysql的同步了,现在说mongo的数据同步。
说到mongo的数据同步,这就说到 changeStream
chaChange Streams 是在 MongoDB 3.6 中引入的。此外,Change Streams 需要副本集(Replica Set)配置。因此,在使用 Change Streams 之前,确保 MongoDB 实例已配置为副本集。关于副本集的配置,网上很多,大家搜搜就可以查询到。我们主要说明使用方法:
添加对应的pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
@Component
@Slf4j
public class ChangeStreamListener {
@Autowired
private ReactiveMongoTemplate reactiveMongoTemplate;
@Autowired
private MongoTemplate mongoTemplate;
@Bean
public void listenChanges() {
Flux<ChangeStreamEvent<UserClassHours>> changeStream = reactiveMongoTemplate
.changeStream(UserClassHours.class)
.watchCollection("collectionName").listen();
changeStream.subscribe(change -> {
log.info("监听到数据变动消息:{}", change); // 处理每个更改事件
}, error -> {
log.info("错误信息: {}", error); // 错误处理
}, () -> {
log.info("完成处理"); // 完成处理
});
}
}
//collectionName mongo库中的你需要监听的集合表
监听对应的某个mongo表.采用的是响应式编程。
1万+

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



