异构数据
解释:结构不同的数据叫做异构数据
1、耦合性强
这里我们如果修改了后台的数据,就需要把数据同步到全文检索引擎里面去,是相对被动的操作
2、扩展困难
二,异构数据的解决方案
解决方案:Canal
Canal是基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持Mysql
Canal可以做异步数据的同步工作
原理
这里我们把从库替换成Canal
这里Canal接收到主库的binlog日志后不会去执行,而是自动的触发指定的php或者java代码,然后实现向其他数据源的数据同步的工作。这里我们发现只是解决了数据的同步和监听的工作。没有解决解耦的问题。下面我们解耦可以使用消息队列
MQ消息队列起到的作用是消息的订阅和发布
可以使用消息队列作为数据的中转站,可以做数据和团队之间的解耦
对于MySQL我们这里配置了一个Canal对数据进行监听,在数据发生变化的时候,会生成发往MQ消息队列的消息,这里的消息根据操作SQL的不同,会产生不同的消息。这些消息会被放到MQ消息队列中。哪里需要这些变化的消息,就去订阅MQ消息队列,就会起到数据的同步和解耦。只要有新团队加入,并且使用这些消息,那么就去订阅MQ消息队列就可以了。
热门跟贴