常见问题
- Debezium开云体育官方注册网址是什么?
- 名称“Debezium”是从哪里来的?开云体育官方注册网址
- 变化数据捕获是什么?
- 数据库可以开云体育电动老虎机Debezium监控什么?开云体育官方注册网址
- 利用Debezium是什么?开云体育官方注册网址
- 为什么Debe开云体育官方注册网址zium分布式系统?
- 我的应用程序可以直接监控单个数据库?开云体育电动老虎机
- Debezium平台是什么样开云体育官方注册网址子?
- 有多少数据库可以被开云体育电动老虎机监视?
- Debezium如开云体育官方注册网址何影响源数据库?开云体育电动老虎机
- 事件数据库是如何组织的?开云体育电动老虎机
- 为什么事件如此之大?
- 我如何使用模式注册表?
- 应用程序停止或崩溃时发生了什么?
- Debezium停止或崩溃时发生了什开云体育官方注册网址么?
- 当被监控的数据库停止或崩溃会发生什么呢?开云体育电动老虎机
- 为什么必须消费应用程序期望复制事件?
- 是什么导致间歇性
EventDataDeserializationException
与MySQL连接器? - 卡夫卡是什么?
- 卡夫卡连接是什么?
- 如何连接卡夫卡在使用Debezium码头工人的图片吗?开云体育官方注册网址
- 可以处理哪开云体育电动老虎机些数据库大小的默认内存设置连接形象吗?
- 如何从二进制表示检索DECIMAL字段?
- 如何改变源数据库的补偿吗?开云体育电动老虎机
- 如何删除承诺补偿连接器吗?
- 和KSQL墓碑事件为什么不能打印吗?
- 为什么D开云体育官方注册网址ebezium MySQL连接器崩溃模式改变的工具吗?
- 如何减少内存消耗database-per-tenant模式吗?开云体育电动老虎机
- 如何解决抵消冲超时?
- 我明白了为什么不删除事件在某些情况下?
- 为什么D开云体育官方注册网址ebezium MySQL连接器无法使用RDS MySQL数据读副本吗?
- 为什么D开云体育官方注册网址ebezium PostgreSQL数据库连接器导致细胞膜不正常消费的磁盘空间?开云体育电动老虎机
- 为什么没有新的模式版本时创建的表中的两列的内容是交换?
- 如何扩大的最大大小消息交付给卡夫卡?
- 为什么不包含JSON消息模式?
- 如何启用过滤不分大小写的名字吗?
- 为什么为MySQL更改事件值
时间戳
列快照和流之间有何不同?
Debezium开云体育官方注册网址是什么?
开云体育官方注册网址Debezium是一组分布式服务获取行级的数据库,以便应用程序可以看到的变化和应对这些变化。开云体育电动老虎机开云体育官方注册网址Debezium记录在事务日志中所有行级变化致力于每一个数据库表中。开云体育电动老虎机每个应用程序简单地读他们感兴趣的事务日志,和他们看到的所有事件发生在相同的顺序。
名称“Debezium”是从哪里来的?开云体育官方注册网址
结合了”这个名字星展银行缩写多个数据库”,和“开云体育电动老虎机ium”后缀名称中使用的许多元素周期表。快说:“DBs-ium”。如果可以的话,我们说它像“dee-BEE-zee-uhm”。
变化数据捕获是什么?
变化数据捕获或疾病预防控制中心,是一个年长的术语系统,显示器和捕获数据的变化,以便其他软件可以应对这些变化。数据仓库通常有内置疾控中心支持,因为数据仓库需要保持更新的数据改变上游OLTP数据库。开云体育电动老虎机
开云体育官方注册网址Debezium本质上是一个现代的、分布式开放源码改变数据采集平台最终将支持监测多种数据库系统。开云体育电动老虎机
数据库可以开云体育电动老虎机Debezium监控什么?开云体育官方注册网址
最新版本的Debezium包括支持监测开云体育官方注册网址MySQL数开云体育电动老虎机据库服务器,MongoDB或分片集群副本集,PostgreSQL服务器,Oracle服务器(基于LogMiner XStream),Db2服务器,卡桑德拉的数据库开云体育电动老虎机(3)。和4. x)和SQL Server数开云体育电动老虎机据库。除了有半成品Debezium连接器开云体育官方注册网址维塔斯服务器,谷歌扳手释放的Debezium预览(孵化)版本2.2。开云体育官方注册网址
注意监测PostgreSQL需要安装一个扩展(“逻辑解码插件”)到PostgreSQL服务器。开云体育官方注册网址Debezium一起工作Decoderbufs(由Debezium社区维护)和pgo开云体育官方注册网址utput(由Postgres社区维护)。
如果您的数据库是开云体育电动老虎机托管在云服务(管理),必须安装一个插件(或您必须能够自己安装它)。否则,你将无法用Debezium监视您的数据库。开云体育官方注册网址开云体育电动老虎机pgoutput是Postgres 10后来的一部分;它是否可以启用取决于特定数据库的配置。开云体育电动老虎机
在CloudSQL,pgoutput支持扩展和可以安装,所述配置PostgreSQL扩展。
在Amazon RDS以及Azure为开云体育电动老虎机PostgreSQL数据库可以使用,pgoutput。都可以用于Debezium。开云体育官方注册网址
支持其他dbms将被添加在将来的版本中。看到我们的路线图。
利用Debezium是什么?开云体育官方注册网址
Debezium的主要用途是使应用程序开云体育官方注册网址几乎立即做出反应时数据在数据库中更改。开云体育电动老虎机应用程序可以做任何的插入、更新和删除事件。他们可能会使用事件知道何时从缓存中删除条目。他们可能会更新搜索索引的数据。他们可能会更新一个派生数据存储与相同的信息或信息计算从不断变化的数据,例如命令查询责任分离(CQRS)。他们可能会推送通知发送到一个或多个移动设备。他们可能聚合实体的变化,产生一连串的补丁。他们可能会被存储,形成审计日志。他们可能会驱动流查询如与Apache Flink或卡夫卡流。他们可能被用来microservices之间传播数据,例如采用发件箱模式。
您可以了解更多关于疾病预防控制中心用例这个演讲2019年从QCon旧金山。
为什么Debe开云体育官方注册网址zium分布式系统?
开云体育官方注册网址Debezium架构是宽容的缺点和失败,唯一有效的方法就是与一个分布式系统。开云体育官方注册网址Debezium分布监控流程,或连接器跨多台机器,这样,如果出了任何差错,连接器可以重新启动。事件记录和复制的跨多台机器来减少信息损失的风险。
我的应用程序可以直接监控单个数据库?开云体育电动老虎机
是的。虽然我们建议大多数人使用完整Debezium平台,可以为一个应用程序开云体育官方注册网址嵌入De开云体育官方注册网址bezium连接器,以便监测数据库和响应的事件。开云体育电动老虎机这种方法的确是更简单的东西几乎没有移动部件,但它是有限和不容忍失败。如果您的应用程序需要“至少一次”的所有消息交付担保,请考虑使用完整的分布式系统。
Debezium平台是什么样开云体育官方注册网址子?
运行Debezium开云体育官方注册网址系统由几块。一群Apache卡夫卡经纪人提供持久、复制和分区的事务日志,Debezium记录所有事件和应用程序消耗掉所有事件。开云体育官方注册网址卡夫卡经纪人的数量很大程度上取决于音量的事件,被监视数据库表的数量,数量的应用程序使用事件。开云体育电动老虎机卡夫卡是依靠一个小群动物园管理员节点管理每个代理的责任。
每个Deb开云体育官方注册网址ezium连接器监控一个数据库集群/服务器,开云体育电动老虎机和连接器配置和部署到集群的卡夫卡连接服务,确保每个连接器总是运行,即使卡夫卡连接服务实例离开并加入集群。每个卡夫卡连接服务集群(或称。,group) is independent, so it is possible for each group within an organization to manage its own clusters.
所有连接器记录他们的事件(和其他信息)Apache卡夫卡,持续,复制,为每个表分区的事件在不同的主题。多个卡夫卡连接服务集群可以共享一个集群的卡夫卡经纪人,但卡夫卡经纪人的数量很大程度上取决于音量的事件,被监视数据库表的数量,数量的应用程序使用事件。开云体育电动老虎机
应用程序连接到卡夫卡直接和使用适当的主题内的事件。
有多少数据库可以被开云体育电动老虎机监视?
开云体育官方注册网址Debezium可以监视任何数量的数据库。开云体育电动老虎机连接器的数量可以部署到一个集群的卡夫卡连接服务取决于事件的数量和速度。然而,Debezi开云体育官方注册网址um支持多个集群和卡夫卡连接服务,如果需要,多个卡夫卡集群。
Debezium如开云体育官方注册网址何影响源数据库?开云体育电动老虎机
大多数数据开云体育电动老虎机库之前必须配置Debezium可以监视他们。开云体育官方注册网址例如,一个MySQL服务器必须配置为使用行级binlog,和有一个用户特权阅读binlog;Debe开云体育官方注册网址zium连接器必须使用正确的配置信息,包括特权用户。有关详细信息,请参阅特定连接器文档。
开云体育官方注册网址上游Debezium连接器不存储任何信息在数据库中。开云体育电动老虎机然而,运行一个连接器可能地方附加源数据库上的负载。开云体育电动老虎机
事件数据库是如何组织的?开云体育电动老虎机
大多数连接器将为单个数据库表记录所有事件到一个话题。开云体育电动老虎机此外,所有的事件在一个主题完全有序,这意味着所有这些事件的顺序将会保持。(即使事件期间重复失败,最终的结果在应用所有的事件将是相同的。)
例如,MySQL连接器监控集群/ MySQL服务器(逻辑上名叫“dbserverA”)记录所有的更改到“地址”表中的“顾客”数据库中命名的主题开云体育电动老虎机dbserverA.Customers.Addresses
。同样,所有的更改“PaymentMethods”表中相同的数据库将记录在命名的主题开云体育电动老虎机dbserverA.customers.PaymentMethods
。
为什么事件如此之大?
开云体育官方注册网址上游Debezium旨在监控数据库为每个行级和生产完全改变一个开云体育电动老虎机或多个对应的事件描述这些变化。但Deb开云体育官方注册网址ezium连接器的工作不断事件,它必须是有意义的,即使上游数据库中的表的结构随时间变化的。开云体育电动老虎机消费者也更容易写如果只有一次处理一个事件,而不必跟踪状态的整个历史事件流。
这就意味着每个事件需要完全自描述:一个事件的每个包含一个键和值有效载荷和实际的信息模式完全描述信息的结构。消费应用程序可以处理每个事件,使用模式来理解事件的结构信息,然后正确地处理事件的有效载荷。消费应用程序可以利用的模式将保持相同的连续许多事件,只有当模式变化可能消费应用程序需要做更多工作准备改变结构。
与此同时,卡夫卡序列化连接器连接服务在卡夫卡的事件和记录它们。JSON转换器是非常通用的,非常简单,但它别无选择序列化整个事件信息。因此,用JSON表示确实是冗长和大事件。
然而,有另一种选择:使用一个模式注册表。这样,实际的模式信息由注册中心,而实际只更改事件包含的id在注册表中相应的模式。这将导致一个更有效的表示事件发送到卡夫卡。模式注册可以用不同的格式如JSON或Avro。利用Avro随着消息格式有效载荷被序列化到一个额外的优势非常紧凑的二进制形式。
使用这种方法,卡夫卡连接转换器和模式注册中心一起工作来追踪每个模式的历史。与此同时,在消费者,同样的转换器解码的紧凑的二进制形式事件,读取消息标识符所使用的模式版本,如果还没有看出模式版本下载模式从注册表,最后使用该模式解码事件的有效载荷。再次,许多事件序列将共享相同的模式(模式版本),所以大部分时间转换器可以解码原始紧凑事件到相同的模式和有效载荷消费者所期望的。
我如何使用模式注册表?
注册包括选择模式Apicurio API和模式注册表和融合性的模式注册表。有转换器用于存储/获取JSON和Avro模式从注册表。
如果你部署Debezium连接器卡夫卡连接开云体育官方注册网址工作者服务,只是确保转换器jar可用你的注册表和配置工人服务使用正确的转换器。例如,您将需要转换器指向Apicurio模式注册表。然后,只需部署Debezium连接器(或真的,任开云体育官方注册网址何其他卡夫卡连接连接器)职工服务。看到Avro序列化的详细描述如何使用Avro转换器Apicurio和汇合的注册中心。
的教程的例子在GitHub详细展示了如何使用一个模式注册表以及随之而来的与Debezium转换器。开云体育官方注册网址
我们的码头工人图像卡夫卡连接包括Avro转换器作为一个选项。
应用程序停止或崩溃时发生了什么?
使用数据库的更改事件,应用程序创建一个卡夫卡消费者将连接到卡夫卡经纪人开云体育电动老虎机和消费的主题相关的所有事件数据库。消费者被配置为定期记录其位置(即,抵消)在每个主题。当应用程序停止优雅和关闭消费者,消费者将记录每个主题的补偿过去的事件。当应用程序重新启动以后,消费者查找这些偏移和每个主题开始阅读下一个事件。因此,在正常操作情况下,应用程序将每个事件一个时间。
如果应用程序意外崩溃,然后重新启动应用程序的消费者将查找最后记录偏移量对于每一个主题,并从去年开始使用事件抵消为每个主题。在大多数情况下,应用程序将会看到一些相同的事件之前看到事故后(但它记录偏移量),其次是它尚未见过的事件。因此,应用程序将每个事件至少一次。应用程序可以减少见过不止一次的事件记录补偿更频繁,虽然这样做会影响客户机的性能和吞吐量。
请注意,消费者可以配置为连接并开始阅读卡夫卡与最近抵消在每个主题。这可能导致错过了事件,尽管这是完全可以接受的一些用例。
Debezium停止或崩溃时发生了什开云体育官方注册网址么?
Debezium视哪些组件的行为开云体育官方注册网址停止或崩溃。如果足够的卡夫卡代理停止或崩溃,每个主题分区居住少于最小数量的同步副本,那么连接器写作主题和消费应用程序的阅读的话题只会阻塞,直到卡夫卡经纪人可以重启或新上线的经纪人。因此,最小数量的同步副本有一个非常大的影响可用性和一致性的原因应该是至少1(如果不是3)。
卡夫卡连接服务配置为定期记录每个连接器的位置和补偿。如果其中一个集群是卡夫卡连接服务实例优雅地停止,所有连接器运行过程将停止优雅地(即所有位置和补偿将记录)和其他相同的连接器将重启卡夫卡连接在同一集群服务实例。这些连接器重新启动时,将继续记录事件完全离开,没有重复的事件被记录。
当一个运行在卡夫卡的连接器连接服务集群是优雅地停了下来,它将完成目前的工作并记录卡夫卡的最新位置和补偿。下游应用程序消耗的话题只会等到添加新事件。
如果任何卡夫卡连接服务实例的集群意外事故,那么所有连接器都运行在坠毁过程将重新启动其他卡夫卡连接在同一集群服务实例。然而,这些连接器重新启动时,将从数据库中记录的事件从开始位置/抵消开云体育电动老虎机去年坠毁之前记录的连接器。这意味着newly-restarted连接器可能可能记录一些相同的事件以前记录的崩溃前,这些重复的总是会对下游消费应用程序可见。
当被监控的数据库停止或崩溃会发生什么呢?开云体育电动老虎机
当一个数据库服开云体育电动老虎机务器监控Debezium停止或崩溃,Debezium连接器开云体育官方注册网址可能会试图重新建立沟通。开云体育官方注册网址Debezium定期记录连接器在卡夫卡的位置和补偿,所以一旦连接器建立通信连接器应该继续阅读上次记录位置和偏移量。
为什么必须消费应用程序期望复制事件?
当所有的系统运行的是名义上或部分或全部系统优雅地关闭,然后消费应用程序可以看到每一个事件一个时间。然而,当事情出错总是消费应用程序可以看到事件至少一次。
当Debezium开云体育官方注册网址系统崩溃时,他们并不总是能够记录他们最后的位置/抵消。重启时,他们开始恢复在哪里去年已知,因此消费应用程序总是会看到每一个事件,但至少可能看到一些消息复制在复苏。
此外,网络故障可能会导致Debezium连接器没有收到确认写道,导致同一事件被记录一次或多开云体育官方注册网址次(直到收到确认)。
是什么导致间歇性EventDataDeserializationException
与MySQL连接器?
当你遇到间歇反序列化异常在1分钟后开始连接器,根源的类型EOFException
或java.net.SocketException:连接重置
:
引起的:com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException:失败的反序列化数据EventHeaderV4 {timestamp = 1542193955000, eventType = GTID serverId = 91111, headerLength = 19日dataLength = 46, nextPosition = 1058898202,标志= 0}造成的:. lang。RuntimeException: com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException:失败的反序列化数据EventHeaderV4 {timestamp = 1542193955000, eventType = GTID serverId = 91111, headerLength = 19日dataLength = 46, nextPosition = 1058898202,标志= 0}:造成的io。EOFException或造成的:java.net.SocketException:连接重置
然后更新这些MySQL服务器这样的全局属性将改正:
集全球slave_net_timeout = 120;(默认是30秒)集全球thread_pool_idle_timeout = 120;
卡夫卡是什么?
Apache卡夫卡是一个快速、可扩展的、持久的和分布式信息系统中记录所有消息复制、分区,完全有序事务日志。消费者跟踪日志中自己的位置,并且可以控制这个职位indepdently其他消费者。这意味着,一些消费者可以从日志的开头开始而另一些则跟上最最近的消息。卡夫卡是一个动态集群的经纪人。每个日志分区复制到多个代理,应该任何代理失败,集群仍有多个副本的分区。
开云体育官方注册网址卡夫卡集群Debezium连接器记录所有事件,和应用程序使用这些事件通过卡夫卡。
卡夫卡连接是什么?
卡夫卡可靠地连接是一个可扩展的框架和Apache卡夫卡和其他系统之间的流数据。最近除了卡夫卡社区,这使它简单定义连接器的移动大型数据集合的卡夫卡,尽管框架的大部分努力妥善记录偏移量的连接器。卡夫卡连接服务有一个RESTful API来管理和部署连接器;集群和服务可以将自动分发跨集群的连接器,确保连接器总是运行。
开云体育官方注册网址Debezium使用卡夫卡连接框架。Debeziu开云体育官方注册网址m所有的连接器是卡夫卡连接器源连接器,因此它们可以使用卡夫卡连接服务部署和管理。
如何连接卡夫卡在使用Debezium码头工人的图片吗?开云体育官方注册网址
当使用码头工人Mac或Windows下的码头工人,码头工人容器在轻量级虚拟机中运行。为了连接到卡夫卡从您的主机系统,如卡夫卡的消费者开始在测试你的IDE,您需要指定您的主机系统的IP地址或主机名ADVERTISED_HOST_NAME
卡夫卡的容器:码头工人运行- - rm -名字卡夫卡- p 9092:9092 - e ADVERTISED_HOST_NAME = < % YOUR_HOST_NAME % >——联系管理员:饲养员debezium /卡夫卡:{debezium开云体育官方注册网址-docker-label}
。这个名字会被管理员发布给客户要求卡夫卡代理的名字。
可以处理哪开云体育电动老虎机些数据库大小的默认内存设置连接形象吗?
在启动和运行时内存消耗取决于总数由Debezium监控数据库中的表,每个表中的列数,也来自数据库的事件。开云体育官方注册网址开云体育电动老虎机作为一个经验法则的默认内存设置(最大的堆设置为256 MB)将管理来处理数据库所有表列的总数小于10000。开云体育电动老虎机
如何从二进制表示检索DECIMAL字段?
如果D开云体育官方注册网址ebezium配置为处理一样精确,它编码十进制值org.apache.kafka.connect.data.Decimal
。这种类型转换为BigInteger
和序列化为一个字节数组。解码回来我们需要知道值提前或它的规模必须从模式获得。展开的代码才能看起来像下面的片段之一,这取决于可用的编码值作为一个字节数组或字符串。
字节[]编码=…;int规模=…;最后BigDecimal解码=新BigDecimal(新BigInteger(编码)、规模);字符串编码=…;int规模=…;最后BigDecimal解码=新BigDecimal(新BigInteger(Base64.getDecoder () .decode(编码)、规模);
如何改变源数据库的补偿吗?开云体育电动老虎机
这是一个高度技术性的操作操纵卡夫卡内部连接。请使用这只作为最后的解决方案。 |
有时数据库日志包含无效数据(开云体育电动老虎机如无效日期),需要跳过或有必要再加工日志从过去的一部分。(除了一般没有直接方式event.deserialization.failure.handling.mode
MySQL连接器)如何实现这个操作但操纵卡夫卡连接的内部数据的解决方案。
第一步是找出包含plugin-offsets主题的名称。这是配置offset.storage.topic
选择。
下一步是找出最后抵消为给定的连接器,主要根据存储和识别分区用于存储偏移量。一个例子是:
美元kafkacat - b localhost - c - t my_connect_offsets - f的分区(% p) % k % s \ n '分区(11)(“inventory-connector”{“服务器”:“dbserver1”}] {“ts_sec”: 1530088501,“文件”:“mysql-bin。000003”、“pos”: 817年,“行”:1、“server_id”: 223344年,“事件”:2}分区(11)(“inventory-connector”{“服务器”:“dbserver1”}] {“ts_sec”: 1530168941,“文件”:“mysql-bin.000004”、“pos”: 3261年,“行”:1、“server_id”: 223344年,“事件”:2}
的关键inventory-connector
是[" inventory-connector ",{“服务器”:“dbserver1”}]
,分区号11
最后抵消{“ts_sec”: 1530168941,“文件”:“mysql-bin.000004”、“pos”: 3261年,“行”:1、“server_id”: 223344年,“事件”:2}
。
回到前一个抵消连接器应该停止,必须发出以下命令:
$回声”[“inventory-connector”{“服务器”:“dbserver1”}] | {“ts_sec”: 1530168950,“文件”:“mysql-bin。000003”、“pos”: 817年,“行”:1、“server_id”: 223344年,“事件”:2}| \ localhost kafkacat - p - b - t my_connect_offsets - k \ | - p 11
如何删除承诺补偿连接器吗?
这是一个高度技术性的操作操纵卡夫卡内部连接。请使用这只作为最后的解决方案。 |
有时虽然做实验(或当一个连接器配置错误开始时)有必要删除连接器偏移量开始用干净的状态。
第一步是找出包含plugin-offsets主题的名称。这是配置offset.storage.topic
选择。
下一步是找出最后抵消为给定的连接器,主要根据存储和识别分区用于存储偏移量。一个例子是:
美元kafkacat - b localhost - c - t my_connect_offsets - f的分区(% p) % k % s \ n '分区(11)(“inventory-connector”{“服务器”:“dbserver1”}] {“ts_sec”: 1530088501,“文件”:“mysql-bin。000003”、“pos”: 817年,“行”:1、“server_id”: 223344年,“事件”:2}分区(11)(“inventory-connector”{“服务器”:“dbserver1”}] {“ts_sec”: 1530168941,“文件”:“mysql-bin.000004”、“pos”: 3261年,“行”:1、“server_id”: 223344年,“事件”:2}
的关键inventory-connector
是[" inventory-connector ",{“服务器”:“dbserver1”}]
,分区号11
最后抵消{“ts_sec”: 1530168941,“文件”:“mysql-bin.000004”、“pos”: 3261年,“行”:1、“server_id”: 223344年,“事件”:2}
。
删除连接器抵消连接器应该停止,必须发出以下命令:
美元回声”(“inventory-connector”,{“服务器”:“dbserver1”}] |的| \ localhost kafkacat - p - z - b - t my_connect_offsets - k \ | - p 11
这个命令写了一零
消息给定关键逻辑删除存储翻译补偿为给定的连接器。
和KSQL墓碑事件为什么不能打印吗?
当使用KSQL流查询引擎,墓碑事件(如Debezium连接器在默认情况下创建的一名被俘的表中删除记录时)不支持:开云体育官方注册网址
打印“dbserver.inventory。从开始订单”;com.fasterxml.jackson.databind.node。com.fasterxml.jackson.databind.node.ObjectNode NullNode不能投
考虑删除墓碑事件使用后状态提取SMT和它的选项删除墓碑。
为什么D开云体育官方注册网址ebezium MySQL连接器崩溃模式改变的工具吗?
MySQL连接器时监控表的模式变化的工具Gh-ost或pt-online-schema-changeMySQL连接器可以应用崩溃的异常值转换器。正在创建的工具辅助表在迁移过程中,这些辅助表需要列入白名单表。
如何减少内存消耗database-per-tenant模式吗?开云体育电动老虎机
如果你的多租户数据库是基于单租户,你Debezium连接器将不得不多次存储的元数据列和表。开云体育官方注册网址开云体育电动老虎机你可以使用JVM减少内存消耗- xx: + UseStringDeduplication
国旗。所有JVM参数可以通过使用KAFKA_OPTS
环境变量。Dockerfile中的一个例子是:
ENV KAFKA_OPTS = " - xx: + UseStringDeduplication "
如何解决抵消冲超时?
当日志包含错误没有冲洗,超时等待生产者冲杰出的218630条消息
这意味着卡夫卡连接不能补偿记录到抵消主题不够快。
可以有多个解决方案和问题的根源
卡夫卡的选择
ack
将所有的复制品经纪人是缓慢的处理写吗连接记录生成非常快,卡夫卡连接选项
offset.flush.interval.ms
和offset.flush.timeout.ms
应该调整。应该缩短和超时间隔增加。开云体育官方注册网址Debezium产生非常大的批记录,减少参数
max.batch.size
和max.queue.size
我明白了为什么不删除事件在某些情况下?
这可能是由于使用的级联删除
语句。在这种情况下,删除数据库生成的事件开云体育电动老虎机不属于binlog吗因此不能被Debezium。开云体育官方注册网址
为什么D开云体育官方注册网址ebezium MySQL连接器无法使用RDS MySQL数据读副本吗?
开云体育官方注册网址binlog Debezium MySQL需要启用服务器。RDS的MySQLlog_bin
属性是由AWS和将直接管理从
默认情况下。当Debe开云体育官方注册网址zium MySQL执行显示主状态
命令在一个快照,结果集是空的,一个异常:
引起的:. lang。IllegalStateException:不能看binlog文件名和位置通过“显示主状态”。确保正确配置您的服务器在io.debezium.connector.mysql.SnapshotRead开云体育官方注册网址er.lambda readBinlogPosition 16美元(SnapshotReader.java: 761) io.debezium.jdbc.JdbcConnection.query (JdbcConnection.java: 444) io.debezium.jdbc.JdbcConnection.query (JdbcConnection.java: 385) io.debezium.connector.mysql.SnapshotReader.readBinlogPosition (SnapshotReader.java: 745) io.debezium.connector.mysql.SnapshotReader.execute (SnapshotReader.java: 370)
解决方案是间接支持log_bin
财产,激活某些RDS MySQL产品特性:读副本和/或自动备份。在激活的,bin_log
属性值将会改变在
自动和连接器将能够成功完成快照。
为什么D开云体育官方注册网址ebezium PostgreSQL数据库连接器导致细胞膜不正常消费的磁盘空间?开云体育电动老虎机
看到细胞膜的磁盘空间消费在PostgreSQL连接器文档。
为什么没有新的模式版本时创建的表中的两列的内容是交换?
如果表中的两列交换后,改变表模式是和以前一样,没有新版本的模式中创建注册表。这类操作的一个例子可能是:
原始表-
id
,c1
,c2
在哪里c1
和c2
相同类型的吗列交换,
id
,c2
,c1
列重命名,
id
,c1
,c2
模式注册中心创建一个新版本的模式只有在逻辑上的变化,但是在这种情况下,模式改变后是相同的外部观察者。
如何扩大的最大大小消息交付给卡夫卡?
对于大型交易有可能是卡夫卡连接发出消息,大预设最大。日志通常包含一个异常相似:
org.apache.kafka.common.errors.RecordTooLargeException:消息是1740572字节序列化大于1048576时,max.request的价值。大小配置。
配置选项来解决这个问题producer.max.request.size
必须设置在卡夫卡连接工人配置文件connect-distributed.properties
。如果全球变化是不可取的连接器可以覆盖默认设置使用配置选项producer.override.max.request.size
设置为更大的值。
在后一种情况下也是必要的配置connector.client.config.override.policy =所有
选择在卡夫卡连接工人配置文件connect-distributed.properties
。对于De开云体育官方注册网址bezium连接
码头工人形象环境变量CONNECT_CONNECTOR_CLIENT_CONFIG_OVERRIDE_POLICY
可用于配置选项。
为什么不包含JSON消息模式?
如果您使用的是JsonConverter
转换和序列化Debezium发出的消息,模式不包括在默认的消息。开云体育官方注册网址模式是使用启用schemas.enable
转换器配置参数,设置在工人水平(如。connect-distibuted.properties
):
key.converter.schemas。使= true value.converter.schemas.enable = true
或在连接器上,这取决于配置转换器。
如何启用过滤不分大小写的名字吗?
几个这样的配置选项table.include.list
定义一组正则表达式应用于标识符时不区分大小写。
如果您的环境需要区分大小写的匹配(例如字母大小只有两个标识符是不同的),那么您可以使用正则表达式国旗(? -我)
对于一个给定的表达式要求区分大小写的匹配。
为什么为MySQL更改事件值时间戳
列快照和流之间有何不同?
这可能是如果Debezium(或者说MySQL 开云体育官方注册网址JDBC驱动程序)因为某种原因不能检索数据库的时区。开云体育电动老虎机在这种情况下,时间戳
值可能无法被规范化UTC。显式地指开云体育电动老虎机定的数据库时区必须在这种情况下,使用开云体育电动老虎机database.connectionTimeZone
直通连接器选项(开云体育电动老虎机database.serverTimezone
必须用于Debezium版本比1.开云体育官方注册网址7)。