有一个 Springboot 应用程序连接到 Oracle 数据。数据库的 URL 配置为
spring.datasource.url=jdbc:oracle:thin:@(DESCRIPTION=\
(LOAD_BALANCE=OFF)(FAILOVER=ON)\
(ADDRESS=(PROTOCOL=TCP)(HOST=domainName1.com) (PORT=1521))\
(ADDRESS=(PROTOCOL=TCP)(HOST=domainName2.com)(PORT=1521))\
(CONNECT_DATA=(SERVICE_NAME=xyz)))
Run Code Online (Sandbox Code Playgroud)
配置此 URL 后,当一台主机关闭时,应用程序将连接到第二个数据库。数据库的 URL 打印在应用程序运行状况检查中,如下所示
Hello
version : 4.0.0
build : 2022-03-3
datasource : oracle.jdbc.OracleDriver
db url : jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=domainName1.com) (PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=domainName2.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xyz)))
db status : ok
Run Code Online (Sandbox Code Playgroud)
我的问题是如何获取正在使用的数据库的主机名,这意味着如何获取应用程序当前正在使用的主机(domainName1 或domainName2)并将其显示在运行状况检查上?例如如下所示。
Hello
version : 4.0.0
build : 2022-03-3
datasource : oracle.jdbc.OracleDriver
db url : jdbc:oracle:thin:@domainName1.com: 1521/coldv1
db status : ok (LVZ count = 379)
Run Code Online (Sandbox Code Playgroud)
我用于此健康检查的 java 代码如下所示。
@GetMapping(path = "/healthcheck",
produces = MediaType.APPLICATION_JSON_VALUE
)
public String getServiceStatus(){
String[] activeProfiles = environment.getActiveProfiles();
final …Run Code Online (Sandbox Code Playgroud) 我有一个 docker 基础镜像,上传到 quay 镜像存储库时存在漏洞 pyup.io-43366 (CVE-2021-43818)。
基础图像是
FROM quay/registry.redhat.io/rhel7:latest
MAINTAINER Me
LABEL description="Application runtime image" \
name="Image name" \
version="1.0"
ENV LANG en_US.UTF-8
RUN yum-config-manager \
&& yum -y install java-11-openjdk \
&& yum -y clean all
CMD ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)
有什么办法可以克服这个漏洞吗?