截至目前,我将schema-registry作为单个节点运行。 为了提供容错功能,我想在主从模式下运行schema-registry。一个节点用于主节点,一个节点用于从节点。
我们是否需要添加任何额外的属性来将节点标识为主节点?
任何机构都可以与我分享主服务器和从服务器的配置(schema-registry.properties)。
感谢任何帮助。
答案 0 :(得分:1)
设置多个SchemaRegistry实例非常简单。 您可以启动多个实例,但必须确保所有实例都指向同一个zookeeper仲裁。 这是文件 schema-registry.properties
中的属性 kafkastore.connection.url领导者选举将由Zookeeper在所有已注册的模式注册表实例中进行管理。如果要避免特定模式注册表实例成为领导者(也称为主服务器),请在属性文件中设置属性master.eligibility=false
(默认值为 true )。
答案 1 :(得分:1)
我认为原始问题的确是:我如何知道哪个Schema Registry节点当前是主节点,并测试当一个节点失败时另一个节点?
据我所知,这并没有在任何地方明确记录,但我发现,至少对于Confluent Platform v3.3.1,Zookeeper将此信息存储在密钥/schema_registry/schema_registry_master
中。当我使用Exhibitor作为UI来浏览Zookeeper的状态时,我看到该键的以下值:
{"host":"172.31.59.89","port":8081,"master_eligibility":true,"version":1}
当我重新启动当前主设备时,此值立即更新。