使用java实现两个Kerberos kafka集群之间的消息同步,需要加载: System.setProperty("java.security.krb5.conf", KRB5_CONFIG); System.setProperty("java.security.auth.login.config", KAFKA_JAAS_CONF); 而生产者和消费者API的系统环境属于不同集群环境,在同一个jar程序中会造成系统配置加载冲突。 请问,有没有好的解决方式?
已解决方案: 将consumer和producer分离: 消费者程序先获取源topic数据通过CloseableHttpClient发送端口; 生产者程序在获取端口程序生产到目标topic。
缺点:这种方案需要维护两套程序,是code 维护冗余; 如果网络波动,会导致数据丢失。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
面对您提到的问题,确实存在一定的挑战性,尤其是在处理跨Kerberos安全认证的Kafka集群间消息同步时。不过,除了您已提出的解决方案外,还有其他一些策略可以考虑以减少代码冗余和提高数据传输的可靠性:
java.security.krb5.conf
和java.security.auth.login.config
配置文件。这需要设计一个能够根据运行时参数动态选择或加载不同配置的机制。每种方法都有其适用场景和局限性,建议根据实际需求、资源投入和技术栈综合考量后选择最合适的方案。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。