国产亚洲精品无码拍拍拍网站你的位置:女人大荫蒂毛茸茸视频 > 国产亚洲精品无码拍拍拍网站 > 色偷偷人人澡久久超碰97下载 拉取 Binlog,自动数据同步,雇主要给涨工资....
色偷偷人人澡久久超碰97下载 拉取 Binlog,自动数据同步,雇主要给涨工资....

发布日期:2022-05-10 20:37    点击次数:193

  

色偷偷人人澡久久超碰97下载

本文转载自微信公众号「微观时代」,作家Tom哥 色偷偷人人澡久久超碰97下载 。转载本文请连络微观时代公众号。

 全球好,我是Tom哥~

MySQL 数据库全球一建都不生疏,今天跟全球聊聊数据同步的事

对于数据同步,咱们常见的计谋即是 同步双写、异步音讯

1、同步双写:字面风趣,同步+双写。比如老库模子重构,数据搬动到新库,搬动经过中,如果突出据变更,既要写到老库,也要写到新库,双方同步更新。

优点:同步机制,保证了数据的实效性。 纰谬:异常加多同步处理逻辑,会有性能损耗

2、异步音讯:如果依赖方过多,咱们时时是将变更数据异构发送到MQ音讯系统,感兴趣兴趣的业务不错订阅音讯Topic,拉取音讯,然后色偷偷人人澡久久超碰97下载按我方的业务逻辑处理。

优点:架构解耦,不错采选异步来做,裁汰主链路的性能损耗。如果是多个破钞方,不会出现指数性能叠加 纰谬:异步机制,无法得志及时性,有一定蔓延。只可达到最终一致性。

上头两种有经营,都是采选硬编码,那么有莫得通用的时代有经营。不宽恕你是什么业务,写入什么数据,对平台来讲不错玄虚成一张张 MySQL 表色偷偷人人澡久久超碰97下载,径直同步表数据。只须使用方才着实去宽恕数据实质。

不错参考 MySQL 的主从同步旨趣,拉取 binlog,只须将内部的数据理会出来即可。

流行的中间件是阿里开源的 Canal,今天咱们就来做个时代有经营,粗略实质如下:

一、Canal 先容

Canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日记理会,久久电影网提供增量数据订阅和破钞。

Canal 出生之初是为了管理多个备库与主库间数据同步,对主库形成的压力。

迟缓的,这个管道被阐扬光大,期骗场景也越来越多

色偷偷人人澡久久超碰97下载

责任旨趣很简便,把我方伪装成 MySQL 的 slave,模拟 MySQL slave 的交互契约向 MySQL master 发送 dump 苦求。

MySQL master 收到canal发送过来的dump苦求,开动推送binary log给canal,然后canal理会binlog 日记,再存储到不同的存储介质中,比如:MySQL、Kafka、Elastic Search、Pulsar 等

业务场景:

数据库及时备份 ES 数据索引的构建和珍重 散布式缓存(如:Redis)的同步珍重 数据异构,订阅方不错按我方的业务需求订阅破钞,如:Kafka、Pulsar 等 二、装配 MySQL

1、拉取 MySQL 镜像

docker pull mysql:5.7 

2、巡逻镜像

docker images 

3、启动 MySQL 进度

docker run \ --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 

4、巡逻进度色偷偷人人澡久久超碰97下载

[root@iZbp12gqydkgwid86ftoauZ mysql]# docker ps -a CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES e92827897538   mysql     "docker-entrypoint.s…"   4 seconds ago   Up 2 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql 

5、参加 MySQL 容器

docker exec -it 167bfa3785f1 /bin/bash 

精致:修改一些设立文献,可能会遭逢一些问题,如:

docker容器中使用vi或vim领导bash: vi: command not found的处理容貌

因为莫得装配vi裁剪器,不错奉行底下高唱

apt-get update apt-get install vim 

6、常用 MySQL 客户端高唱

# 登陆 mysql mysql -uroot -p111111  # 说明数据库列表 show databases;  # 采用数据库 use mysql;  # 说明系数表 show tables;  # 说明表结构 describe 表名;  其他更多高唱: https://www.cnblogs.com/bluecobra/archive/2012/01/11/2318922.html 
三、MySQL 关系设立

创建一个 MySQL 用户,用户名:tom ,国产亚洲精品无码拍拍拍网站密码:123456

create user 'tom'@'%' identified by '123456'; 

为用户:tom 授予系数库的读写权限色偷偷人人澡久久超碰97下载

grant SELECT, REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'tom'@'%' identified by '123456'; 

修改 MySQL 设立文献 my.cnf,位置:/etc/my.cnf

[mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 采用 行 形式 server_id=1 # 设立 MySQL replaction 需要界说,不要和 canal 的 slaveId 近似 

精致:需要重启MySQL容器实例,奉行高唱 docker restart mysql

巡逻binlog形式:

巡逻binlog日记文献列表:

巡逻面前正在写入的binlog文献:色偷偷人人澡久久超碰97下载

四、装配 Canal 1、从官网下载装配包

下载地址:

https://github.com/alibaba/canal/releases

本文执行用的是最新版块 v1.1.5,主如果对不同的客户端的个性化撑持,属于生态彭胀。

其他更多特质,全球不错去官网巡逻

解压 tar.gz 压缩包色偷偷人人澡久久超碰97下载

tar -zxvf canal.deployer-1.1.5.tar.gz  

绽放设立文献 conf/example/instance.properties,修改设立如下:

## v1.0.26版块后会自动生成slaveId,是以不错无用设立 # canal.instance.mysql.slaveId=0  # 数据库地址 canal.instance.master.address=127.0.0.1:3306 # binlog日记称呼 canal.instance.master.journal.name=mysql-bin.000001 # mysql主库连络时肇端的binlog偏移量 canal.instance.master.position=156 # mysql主库连络时肇端的binlog的时辰戳 canal.instance.master.timestamp= canal.instance.master.gtid=  # username/password # 在MySQL劳动器授权的账号密码 canal.instance.dbUsername=root canal.instance.dbPassword=111111 # 字符集 canal.instance.connectionCharset = UTF-8 # enable druid Decrypt database password canal.instance.enableDruid=false  # table regex .*\\..*暗意监听系数表 也不错写具体的表名,用,离隔 canal.instance.filter.regex=.*\\..* # mysql 数据理会表的黑名单,多个表用,离隔 canal.instance.filter.black.regex= 

启动高唱

./startup.sh 

由于采选的阿里云的 ECS 劳动器,发现莫得装配 JAVA 环境。

Oracle 官网下载 JDK 8 的装配包

下载地址:

https://www.oracle.com/java/technologies/downloads/#java8

然后,通过底下的高唱将装配包上传到 ECS 劳动器

scp jdk-8u311-linux-x64.tar.gz root@118.31.168.234:/root/java      //上传文献 

装配 JDK 8 环境

文档:https://developer.aliyun.com/article/701864

五、启动 Canal

参加 canal.deployer-1.1.5/bin

奉行启动剧本:

./startup.sh  

参加 canal.deployer-1.1.5/logs/example

如果 example.log 日记文献中,出现底下的实质,暗意启动成功

2022-01-03 08:23:10.165 [canal-instance-scan-0] INFO  c.a.otter.canal.instance.core.AbstractCanalInstance - stop CannalInstance for null-example  2022-01-03 08:23:10.177 [canal-instance-scan-0] INFO  c.a.otter.canal.instance.core.AbstractCanalInstance - stop successful.... 2022-01-03 08:23:10.298 [canal-instance-scan-0] INFO  c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-example  2022-01-03 08:23:10.298 [canal-instance-scan-0] WARN  c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^.*\..*$ 2022-01-03 08:23:10.298 [canal-instance-scan-0] WARN  c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : ^mysql\.slave_.*$ 2022-01-03 08:23:10.299 [canal-instance-scan-0] INFO  c.a.otter.canal.instance.core.AbstractCanalInstance - start successful.... 
六、工程执行

创建一个 SpringBoot 工程,spring-boot-bulking-canal

引入关系pom依赖

<dependency>     <groupId>com.alibaba.otter</groupId>     <artifactId>canal.client</artifactId>     <version>1.1.4</version> </dependency

 

编写java类,与 canal 劳动端 诞生联接,拉取数据库的变更数据

// 创建连络 CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111), "example", "", ""); try {     //绽放联接     connector.connect();     //订阅沿途表     connector.subscribe(".*\\..*");     //回滚到未进行ack的场地,下次fetch的时候,不错从临了一个莫得ack的场地开动拿     connector.rollback();     while (true) {         Message message = connector.getWithoutAck(BATCH_SIZE);         long batchId = message.getId();         printEntry(message.getEntries());         // batch id 提交         connector.ack(batchId);     } } catch (Exception e) {     e.printStackTrace(); } finally {     connector.disconnect(); } 

在 ds1 数据库下创建 MySQL 表

CREATE TABLE `person` (   `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',   `income` bigint(20) NOT NULL COMMENT '收入',   `expend` bigint(20) NOT NULL COMMENT '支拨',   PRIMARY KEY (`id`),   KEY `idx_income` (`income`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='个人出入表'; 

插入一札纪录:

之前的桌面版 Chrome 支持记住缩放设置,就是如果用户在某个网站上选择了缩放,那么在用户下次访问该网页时将保持这种状态。然而此前手机版并不支持这个功能,在 Chrome 97 中谷歌已经解决这个问题,不过需要启用该功能的 flag。

好了,接下来言归正传。本篇文章是操作系统课程预备知识的第二篇,文章讲下操作系统到底做了什么事情!本篇文章算是一个科普,让大家先了解操作系统是在做什么,以后详细学习各章就不会晕。

insert into person values(100,1000,1000); 

Java类理会binlog,在放弃台打印变更日记:

binlog[mysql-bin.000002:1946] , table[ds1,person] , eventType : INSERT id : 100    update=true income : 1000    update=true expend : 1000    update=true 

对 id=100 纪录做修改:

update person set income=2000, expend=2000 where id=100; 

放弃台打印变更日记:

binlog[mysql-bin.000002:2252] , table[ds1,person] , eventType : UPDATE ------->; before id : 100    update=false income : 1000    update=false expend : 1000    update=false ------->; after id : 100    update=false income : 2000    update=true expend : 2000    update=true 

 

 



Powered by 女人大荫蒂毛茸茸视频 @2013-2022 RSS地图 HTML地图