我正在按照here的指导,使Solr(7.5)数据导入处理程序的用户名/密码具有动态性。
这是我的数据配置:
<dataConfig>
<dataSource
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysqlconnectionstring"
user="${dataimporter.request.jdbcuser}"
password="${dataimporter.request.jdbcpassword}"/> ...
和solrconfig:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
但是,当我执行dataimport命令(例如http://mysolr.something/solr/dataimport?command=full-import&jdbcuser=foo&jdbcpassword=bar)时,我会收到如下的(部分)响应:
"initArgs": [
"defaults",
[
"config",
"data-config.xml",
"datasource",
[
"driver",
"com.mysql.jdbc.Driver",
"url",
"jdbc:mysql://mysqlconnectionstring",
"user",
"",
"password",
""
]
]
]
如果我查看solr日志,则会看到类似这样的条目:
18:56:32.076 [qtp1076770748-18]信息org.apache.solr.handler.dataimport.DataImporter-加载DIH配置:data-config.xml
18:56:32.087 [qtp1076770748-18]信息org.apache.solr.handler.dataimport.DataImporter-数据配置成功加载
18:56:32.087 [qtp1076770748-18]信息org.apache.solr.handler.dataimport.DataImporter-获取全局数据源的配置...
18:56:32.087 [qtp1076770748-18]信息org.apache.solr.handler.dataimport.DataImporter-向数据源添加属性:{password =,driver = com.mysql.jdbc.Driver,user =,url = jdbc:mysql:// mysqlconnectionstring}
我只是不知道我在这里缺少什么,为什么它不从请求中读取用户名/密码并从中填充数据源?
答案 0 :(得分:0)
事实证明,问题出在我的kubernetes statefulset控制k8s集群:它以某种方式保持旧配置,并且现在我已经明确删除了statefulset中的所有Pod,这似乎可以正常工作。