大宽表落地
背景
mysql分库分表后,很多页面查询操作不走分片键,会导致数据库压力很大,查询效率极低的问题
场景设计:
- 设计一张索引表,以下叫大宽表,将需要查询的业务字段放到一张表
- 解耦业务逻辑,业务不需主动维护此表
- 利用 canal-admin/canal-developer/canal-adatper+rocketMq 实现大宽表数据维护
- 分库分表设计逻辑请参考** 此处不过多说明
数据同步canal搭建及配置
canal-admin
页面配置使用
## 官网下载
tar -xvf canal.admin-1.1.7.tar.gz -C ./canal-admin/
vim application.yml
## 修改配置文件 数据保存到数据库
server:
port: 8089
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
spring.datasource:
address:
database: canal_manager
username:
password:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
hikari:
maximum-pool-size: 30
minimum-idle: 1
canal:
adminUser: admin
adminPasswd: admin
启动
sh startup.sh
启动后 访问地址 http://localhost:8089 admin/123456
canal-deployer
同步binlog服务,可部署多台
mkdir canal-deployer
tar -xvf canal.deployer-1.1.7.tar.gz -C ./canal-deployer
vim canal_local.properties
# register ip
canal.register.ip = 172.0.0.1
# canal admin config
canal.admin.manager = 172.0.0.1:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
# admin auto register
canal.admin.register.auto = true
canal.admin.register.cluster =
## 此处一定要用local启动,否则读取本地文件
sh startup.sh local
cannal-instace 页面配置
集群主配置
#################################################
######### common argument #############
#################################################
# tcp bind ip
canal.ip =
# register ip to zookeeper
canal.register.ip =
canal.port = 11111
canal.metrics.pull.port = 11112
# canal instance user/passwd
canal.user = canal
canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458
# canal admin config
canal.admin.manager = 172.0.0.1:8089
canal.admin.port = 11110
#canal.admin.user = admin
#canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
canal.zkServers = zk
# flush data to zk
canal.zookeeper.flush.period
标签:canal,分库,admin,ip,register,大宽表,mysql,port
From: https://blog.csdn.net/stcauliu55/article/details/141929824