一、介绍

Maxwell 是一个读取 MySQL binlogs 并将修改行字段的更新写入 Kafka, Kinesis, RabbitMQ, Google Cloud Pub/Sub 或 Redis (Pub/Sub or LPUSH) 以作为 JSON 的应用程序。

Maxwell的操作开销很低,只需要mysql和一个写入位置即可。它的常见用例包括ETL,缓存建立/过期,指标收集,搜索索引和服务间通信。

Maxwell为您提供了事件来源的一些好处,而不必重新构建整个平台。

Maxwell 拥有可对底层进行操作的操作栏(operational bar),可生成一致、易于获取的更新流,你可以轻松“固定”流处理系统的一些优点,而无需通过整个代码库来添加(不可靠)检测点。

  • 常见用例包括 ETL、缓存构建/到期、指标收集、搜索索引和服务间通信。

  • 可在表的初始加载过程中执行 SELECT * from table (bootstrapping)

  • 支持在 master promotion 上的自动位置恢复

  • 为 Kakfa 提供灵活的分区方案 —— 按数据库、表、主键或字段进行

Maxwell 通过充当完整的 mysql 副本来完成所有这些操作,包括用于 create/alter/drop 语句的 SQL 解析器。

源码地址:

https://github.com/zendesk/maxwell

对比canal

  1. Maxwell 没有 Canal那种server+client模式,只有一个server把数据发送到消息队列或redis。
  2. Maxwell 有一个亮点功能,就是Canal只能抓取最新数据,对已存在的历史数据没有办法处理。而Maxwell有一个bootstrap功能,可以直接引导出完整的历史数据用于初始化,非常好用。
  3. Maxwell不能直接支持HA,但是它支持断点还原,即错误解决后重启继续上次点儿读取数据。
  4. Maxwell只支持json格式,而Canal如果用Server+client模式的话,可以自定义格式。
  5. Maxwell比Canal更加轻量级。

二、前期准备

在数据库中建立一个maxwell库用于存储Maxwell的元数据。

CREATE DATABASE maxwell;

并且分配一个账号可以操作该数据库

GRANT ALL   ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY 'maxwell';

如果报错:

SHOW VARIABLES LIKE 'validate_password%';

set global validate_password_length=4;
set global validate_password_policy=0;
  • 密码的长度是由validate_password_length决定的,但是可以通过以下命令修改
  • validate_password_policy决定密码的验证策略,默认等级为MEDIUM(中等),可通过以下命令修改为LOW(低)

分配这个账号可以监控其他数据库的权限

GRANT  SELECT ,REPLICATION SLAVE , REPLICATION CLIENT  ON *.* TO maxwell@'%';

三、实战

解压maxwell程序,

进入到maxwell目录

cp config.properties.example config.properties
vim maxwell.properties

修改如下配置

回退到根目录下面:

/opt/hadoop/maxwell

然后启动maxwell

./bin/maxwell --config conf/config.properties

启动成功

向mysql修改或者插入数据,启动kafka消费者,后收到数据

${kafka_home}/bin/kafka-console-consumer.sh --bootstrap-server  host166:9092,host167:9092,host169:9092 --topic  $1

maxwell详细介绍相关推荐

  1. FRIENDS演员详细介绍

    FRIENDS演员详细介绍 Jennifer Aniston Pitt (Rachel Karen Green) Jen有着希腊血统,在孩提时代曾在希腊生活过一年,因为她父亲的演艺事业全家迁到了纽约. ...

  2. HTML页面加载和解析流程详细介绍

    浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...

  3. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  4. php比较运算符案列,PHP实例:PHP比较运算符的详细介绍

    <PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...

  5. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  6. linux路由介绍,Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...

  7. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

  8. 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...

    渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...

  9. C++11 unordered_map详细介绍

    整理的算法模板合集: ACM模板 目录: 1.介绍 1.1 特性 2. 模版 2.1 迭代器 3. 功能函数 3.1 构造函数 3.2 容量操作 3.2.1 size 3.2.2 empty 3.3 ...

最新文章

  1. Android怎么自定义listview布局,android – 如何将listView标头添加为自定义布局
  2. SnowNLP简易教程:分词、词性标注、情感分析、繁体转换、关键字抽取、相似度计算...
  3. 星云测试-给你的Android应用做个深度体检
  4. ECMAScript 6中的let和const关键词
  5. 全球通吃5G!高通发布最新骁龙865、7系芯片,小米、OPPO将实现首发
  6. HDU 2896 病毒侵袭 AC自动机
  7. SQL注入是什么?如何防止?
  8. IdentityServer4 实现 OpenID Connect 和 OAuth 2.0
  9. Autosys command
  10. Saving Beans HDU - 3037(卢卡斯定理)
  11. P4491-[HAOI2018]染色【二项式反演,NTT】
  12. @value 静态变量_Java中的变量——通过示例学习Java编程(4)
  13. 第三十二章 elk(3)- broker架构 + 引入logback
  14. 阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
  15. 拓端tecdat|R语言解释生存分析中危险率和风险率的变化
  16. Django中文文档2.0
  17. mysql 使用idb文件恢复数据
  18. dubbo之@Adaptive注解分析
  19. 人造肉在中国还有未来吗?
  20. oracle中活着的写法,oraclekk

热门文章

  1. SCA IDEA插件开发思路
  2. 浏览器大战再起,谁将夺取企业市场第一把交椅?
  3. 卷积神经网络——vgg16网络及其python实现
  4. php跨域header处理
  5. 【mac】取消crashx代理后上不了网
  6. STM32-custom usb
  7. (xi,yi,zi ) (xj , yj , zj) 的对数
  8. addEventListener和attachEvent的区别
  9. 【高级篇 / DNS】(7.0) ❀ 05. 用花生壳作 FortiGate 的 DDNS ❀ FortiGate 防火墙
  10. 10、RH850 CAN通讯功能和配置