使用场景

两个模块,sta自己开发,ucenter第三方开发,两个服务分别对应自己的数据库,此时只能通过服务之间的rpc进行数据传递,这种思想没问题,但耦合度太高,稳定性也不高。
此时可以使用数据同步工具将自己项目需要的第三方开发的数据库的数据进行同步,这样就可以调本地库,进行解耦。
使用




添加用户的目的是可以让添加的用户可以被外部用户访问到;
下载安装canal服务
下载地址:https://github.com/alibaba/canal/releases



最后进入bin目录启动canal。
监控代码
pom依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId>canal.client</artifactId>
</dependency>
</dependencies>
application.properties:
server.port=10000
spring.application.name=canal-client
spring.profiles.active=dev
#mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cloud?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
启动类:
@SpringBootApplication
public class CanalApplication implements CommandLineRunner {
@Resource
private CanalClient canalClient;
public static void main(String[] args) {
SpringApplication.run(CanalApplication.class,args);
}
@Override
public void run(String... args) throws Exception {
canalClient.run();
}
}
监控代码:
@Component
public class CanalClient {
//sql队列
private Queue<String

最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=107877160&d=1&t=3&u=1d761a0ceee24f59b8b7339079248d27)
1万+

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



