实验目的:
本文同时发表在csdn与im286.
高并发模式下,实现mssql与mysql数据同步,主:mysql 次:mssql,异步实现。
实验准备:
linux/win各1台,主linux,次win,安装mssql1份,mysql1份,表及字段设置一致。
实验步骤:
1.linux配置nginx,安装php7.4环境及composer
2.安装librdkafka
3.编译rdkafka,增加php扩展extension = rdkafka.so
2.安装ut
composer require usualtool/framework
3.nginx指向框架根目录,访问正常。
4.cd 根目录/vendor,安装kafka
composer require usualtool/ut-kafka
5.消费者开启监听
php usualtool kafka 127.0.0.1:9020 test
5.生产者(客户端)测试数据同步
require_once dirname(__FILE__).'/'.'autoload.php'; require_once UTF_ROOT.'/'.'vendor/autoload.php'; use usualtoolKafkaProducer; $kafka = new Producer("127.0.0.1:9020","test"); $data=array("data"=>"mssql","sql"=>"insert into users (sex) VALUES (0)") $kafka->Send(json_encode($data));
6.消费者监听取得消息并入库
{"data":"mssql","sql":"insert into users (sex) VALUES (0)"}
实验结果:
通过Kafka同步数据(消息),无需额外等待响应,生产者将消息传达后,便继续进行自己的事情,当消费者监听到从生产者发出的数据消息后,此时进行消费,触发数据同步的操作。集群的方式可以进行更多操作。
实验结论:
可行。