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
过滤器配置