我有一个与Kafka通信的Spring启动应用程序。
我通过注入环境变量在生产中配置这个应用程序。
对于kafka,我可以使用环境变量配置大多数内容—引导服务器、ssl信任库位置、ssl信任库密码、组id、主题,例如:
SPRING_KAFKA_SSL_TRUSTSTORE-LOCATION: "file:/opt/app/jks/totally_real_file.jks"
SPRING_KAFKA_SSL_TRUSTSTORE-PASSWORD: "hunter2"
因为我可以使用环境变量配置ssl密钥库和密码,所以我假设我可以配置ssl协议和安全协议;如:
SPRING_KAFKA_PROPERTIES_SECURITY_PROTOCOL: "SSL"
SPRING_KAFKA_PROPERTIES_SSL_PROTOCOL: "SSL"
但是,我会错误地假设,因为当我把它设置在那里时,会出现一条消息:
The configuration 'SECURITY_PROTOCOL' was supplied but isn't a known config
The configuration 'SSL_PROTOCOL' was supplied but isn't a known config
更多信息出现!
Bootstrap broker one:9093 disconnected
Bootstrap broker two:9093 disconnected
Bootstrap broker more_than_two:9093 disconnected
这让我很难过。我在网上搜索。我找到以下链接:
Spring启动application.yml中的Spring Kafka SSL设置
这没有多大帮助,我想通过环境变量进行配置。。。
我发现github存在链接问题(情况越来越糟):
https://github.com/spring-projects/spring-integration-kafka/issues/157
这提供了部分线索。
基督教青年会:
spring.kafka.properties.security.protocol: "SSL"
应该行,但不行
基督教青年会:
spring:
kafka:
properties:
security.protocol: "SSL"
ssl.protocol: "SSL"
真管用!但不可能用环境变量来表示。
可能是环境变量名不正确。例如,与此相反:
SPRING_KAFKA_PROPERTIES_SECURITY_PROTOCOL
我想你应该使用生产者/消费者特定的名称,比如:
SPRING\u KAFKA\u PRODUCER\u PROPERTIES\u SECURITY\u PROTOCOL
或者
SPRING\u KAFKA\u CONSUMER\u PROPERTIES\u SECURITY\u PROTOCOL
我的解决方法是在application.yml中设置以下内容:
spring:
kafka:
properties:
security.protocol: "SSL"
ssl.protocol: "SSL"
我不喜欢这个解决方案,因为它需要我为prod和SIT构建不同的工件。(SIT Kafka没有启用SSL这一事实是另一天和另一杯酒的问题)
引导不可能考虑每一个可能的Kafka属性。有那么多。仅支持子集作为第一类属性。
可以使用系统属性而不是环境变量。
编辑
你可以这样做:
spring:
kafka:
properties:
security.protocol: ${SEC_PROT}
本文向大家介绍SpringBoot+docker环境变量配置详解,包括了SpringBoot+docker环境变量配置详解的使用技巧和注意事项,需要的朋友参考一下 项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结: 1.开发环境ide中启动项目 可以通过ide的环境变量参数配置,启动之后使用哪个配置,比如 这样就使用application-test.yml中的
我试图建立一个简单的Twitter提要应用程序,但我很难实现刷新功能。 以及getlatesttweets函数 这就是我遇到的问题 1) 中的x(全局变量,未在任何其他位置使用)的值。然后(函数(数据)似乎与循环中的其他任何地方不同,并且似乎没有增加。我尝试使用$scope.x或将其作为循环中的函数变量。如果我在tweetsarray中将其硬编码为仅刷新[0],则刷新有效,但[x]返回一个单独的值
如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任意位置执行 MySQL 命令了,本节主要介绍怎样手动配置环境变量。 MySQL 如果不配置环境变量就只能在 my
类型: Object Nuxt.js 让你可以配置在客户端和服务端共享的环境变量。 例如 (nuxt.config.js): module.exports = { env: { baseUrl: process.env.BASE_URL || 'http://localhost:3000' } } 以上配置我们创建了一个 baseUrl 环境变量,如果应用设定了 BASE_URL
在SpringBoot中读取环境变量的最佳方法是什么? 在Java中,我使用了以下方法: 是否可以使用注释来实现?
本文向大家介绍详解 MAC/Linux Vi配置环境变量及Java环境变量配置,包括了详解 MAC/Linux Vi配置环境变量及Java环境变量配置的使用技巧和注意事项,需要的朋友参考一下 详解 MAC/Linux Vi配置环境变量及Java环境变量配置 vi基础 1、vi的基本概念 (1)基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mod