MySQL Binlog 解析工具 Maxwell 详解 (3)

schema_host一般用不到,但在binlog-proxy场景下就很实用。比如要将已经离线的binlog通过maxwell生成json流,于是自建一个mysql server里面没有结构,只用于发送binlog,此时表机构就可以制动从 schema_host 获取。

通常,这三个主机都是同一个,schema_host 只在有 replication_host 的时候使用。

与MySQL相关的有下列配置

选项 参数值 描述 默认值
host   STRING   mysql 地址   localhost  
user   STRING   mysql 用户名    
password   STRING   mysql 密码   (no password)  
port   INT   mysql 端口 3306  
jdbc_options   STRING   mysql jdbc connection options   DEFAULT_JDBC_OPTS  
ssl   SSL_OPT   SSL behavior for mysql cx   DISABLED  
schema_database   STRING   Maxwell用于维护的schema和position将使用的数据库   maxwell  
client_id   STRING   用于标识Maxwell实例的唯一字符串   maxwell  
replica_server_id   LONG   用于标识Maxwell实例的唯一数字   6379 (see notes)  
master_recovery   BOOLEAN   enable experimental master recovery code   false  
gtid_mode   BOOLEAN   是否开启基于GTID的复制   false  
recapture_schema   BOOLEAN   重新捕获最新的表结构(schema),不可在 config.properties中配置   false  
     
replication_host   STRING   server to replicate from. See split server roles   schema-store host  
replication_password   STRING   password on replication server   (none)  
replication_port   INT   port on replication server   3306  
replication_user   STRING   user on replication server    
replication_ssl   SSL_OPT   SSL behavior for replication cx cx   DISABLED  
     
schema_host   STRING   server to capture schema from. See split server roles   schema-store host  
schema_password   STRING   password on schema-capture server   (none)  
schema_port   INT   port on schema-capture server   3306  
schema_user   STRING   user on schema-capture server    
schema_ssl   SSL_OPT   SSL behavior for schema-capture server   DISABLED  
生产者的配置

仅介绍kafka,其他的生产者的配置详见官方文档。

kafka是maxwell支持最完善的一个生产者,并且内置了多个版本的kafka客户端(0.8.2.2, 0.9.0.1, 0.10.0.1, 0.10.2.1 or 0.11.0.1, 1.0.0.),默认 kafka_version=1.0.0(当前Maxwell版本1.20.0)

Maxwell 会将消息投递到Kafka的Topic中,该Topic由 kafka_topic 选项指定,默认值为 maxwell,除了指定为静态的Topic,还可以指定为动态的,譬如 namespace_%{database}_%{table},%{database} 和 %{table} 将被具体的消息的 database 和 table 替换。

Maxwell 读取配置时,如果配置项是以 kafka. 开头,那么该配置将设置到 Kafka Producer 客户端的连接参数中去,譬如

kafka.acks = 1 kafka.compression.type = snappy kafka.retries=5

下面是Maxwell通用生产者和Kafka生产者的配置参数

选项 参数值 描述 默认值
producer   PRODUCER_TYPE   生产者类型   stdout  
custom_producer.factory   CLASS_NAME   自定义消费者的工厂类    
producer_ack_timeout   PRODUCER_ACK_TIMEOUT   异步消费认为消息丢失的超时时间(毫秒ms)    
producer_partition_by   PARTITION_BY   输入到kafka/kinesis的分区函数   database  
producer_partition_columns   STRING   若按列分区,以逗号分隔的列名称    
producer_partition_by_fallback   PARTITION_BY_FALLBACK   producer_partition_by=column时需要,当列不存在是使用    
ignore_producer_error   BOOLEAN   为false时,在kafka/kinesis发生错误时退出程序;为true时,仅记录日志 See also dead_letter_topic   true  
kafka.bootstrap.servers   STRING   kafka 集群列表,HOST:PORT[,HOST:PORT]  
kafka_topic   STRING   kafka topic   maxwell  
dead_letter_topic   STRING   详见官方文档    
kafka_version   KAFKA_VERSION   指定maxwell的 kafka 生产者客户端版本,不可在config.properties中配置   0.11.0.1  
kafka_partition_hash   [default | murmur3]   选择kafka分区时使用的hash方法   default  
kafka_key_format   [array | hash]   how maxwell outputs kafka keys, either a hash or an array of hashes   hash  
ddl_kafka_topic   STRING   当output_ddl为true时, 所有DDL的消息都将投递到该topic   kafka_topic  
过滤器配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjggp.html