我尝试通过curl调用指出我的请求:
架构注册表调用,无需建立任何代理:
curl -X GET -i https://schema-registry-url:8081/subjects/someTopic-value/versions/
具有隧道代理的架构注册表调用
curl -X GET -i https://schema-registry-url:8081/subjects/someTopic-value/versions/ --proxy http-proxy.net:3128
我的Kafka连接是通过Spring-Boot应用程序实现的。作为序列化器,我有KafkaAvroSerializer,这意味着架构注册表。这是我的producerConfig的概述:
`
public Map<String, Object> producerConfig(){
Map<String, Object> props = new HashMap<>();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, brokerAddress);
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class.getName());
props.put(KafkaAvroSerializerConfig.SCHEMA_REGISTRY_URL_CONFIG, schemaRegistry);
props.put(ProducerConfig.CLIENT_ID_CONFIG, groupId);
return props;
}
`
但是,此配置不会通过隧道传输HTTP代理。因此,这就像第一个curl调用。
问题: 如何在生产者配置中指定架构注册客户端应通过代理?
->是否有可以覆盖的方法?
->还有另一个参数可以设置吗?
感谢您的帮助和想法。
答案 0 :(得分:0)
也许尝试在Spring Boot应用程序的JVM设置上进行设置,例如,如果您在IntelliJ Idea中进行此设置,则需要在运行配置中添加JVM args。
答案 1 :(得分:0)
confluentinc团队最近扩展了图书馆。
在此处检查其他代理配置的更改,这些更改将用于连接到架构注册表实例: