-
安装java jdk 须大于1.8版本
-
安装zookeeper 版本无特殊要求,不要太低
-
安装kafka 版本无特殊要求,不要太低
-
安装canal服务端 最新版1.4.4
https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart
https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart
- 配置canal、kafka、zookeeper
-
启动zookeeper服务
-
启动kafka服务
-
启动canal服务
- pcntl多进程扩展
pecl install pcntl
- sysvshm共享内存扩展
1. 进入PHP源码安装包下的ext/sysvshm,如:/root/php-5.6.40/ext/sysvshm
2. phpize
3. ./configure --with-php-config=/usr/local/php/bin/php-config
4. make && make install
- librdkafka库
git clone https://github.com/edenhill/librdkafka.git
./configure
make && make install
- rdkafka扩展
pecl install rdkafka
1.当前项目仅支持CLI
模式,其入口文件为cmd
2.本项目须严格遵循psr4
规范以保证项目文件的正常加载
3.建议采用composer
进行包管理,已经内置了elasticsearch、mysql、kafka等包,其中kafka包为自行开发,如存在问题请反馈
├── app 脚本代码目录,可通常量APP_PATH自定义路径和文件名
│ ├── controllers 控制器目录,可通常量CONTROLLER_PATH自定义路径和文件名
│ └── models 模型目录,支持自定义
│ ├── elasticsearch es模型
│ └── ... 其他模型,如mysql,mongodb等
│── commons 公共函数类文件夹,支持自定义
├── config 配置文件,可通常量CONFIG_PATH自定义路径和文件名
├── framework 框架核心,通过反射的方式进行路由查找执行
│ └── elasticsearch es相关模型及接口抽象
├── lockFile 文件锁目录
├── logs 框架日志文件目录
├── shell shell脚本目录
├── utils 项目组件目录,支持自定义
└── cmd 框架入口文件
####### 脚本采用命名空间的方式加载,支持多参数传递
1.composer install安装相应的包
2.配置初始化,为了开发环境和正式环境的配置互不干扰,所以本项目配置代码管理中仅提供了配置事例xxx.config.php.example
;拷贝example事例并重命名为xxx.config.php
,然后做相应的配置修改
3.运行业务脚本
如: php cmd es/task/run -batchNum=100 执行mysql-binlog监控同步数据到elasticsearch的脚本
如: php cmd es/task/migrate -psize=1000 执行mysql数据全量同步到elasticsearch脚本