我试图理解GC的行为,我找到了一些让我感兴趣的东西,我无法理解.
请参阅代码和输出:
public class GCTest {
private static int i=0;
@Override
protected void finalize() throws Throwable {
i++; //counting garbage collected objects
}
public static void main(String[] args) {
GCTest holdLastObject; //If I assign null here then no of eligible objects are 9 otherwise 10.
for (int i = 0; i < 10; i++) {
holdLastObject=new GCTest();
}
System.gc(); //requesting GC
//sleeping for a while to run after GC.
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
// …Run Code Online (Sandbox Code Playgroud) 我正在使用 Spring Boot2.4.4和 Spring Data Cassandra 依赖项连接到 Cassandra 数据库。在应用程序启动期间,我收到 DriverTimeout 错误(我正在使用 VPN)。
我已经浏览了所有与此类似的 Stack Overflow 问题,但没有一个对我有用。我在 Spring Boot官方页面上交叉发布了同样的问题。
我使用了下面的配置属性 -
spring.data.cassandra.contact-points=xxxxxx
spring.data.cassandra.username=xxxx
spring.data.cassandra.password=xxxxx
spring.data.cassandra.keyspace-name=xxxx
spring.data.cassandra.port=9042
spring.data.cassandra.schema-action=NONE
spring.data.cassandra.local-datacenter=mydc
spring.data.cassandra.connection.connect-timeout=PT10S
spring.data.cassandra.connection.init-query-timeout=PT20S
spring.data.cassandra.request.timeout=PT10S
Run Code Online (Sandbox Code Playgroud)
我还在 application.properties 中添加了 DataStax 属性,以检查是否可以从那里获取它们。
datastax-java-driver.basic.request.timeout = 10 seconds
datastax-java-driver.advanced.connection.init-query-timeout = 10 seconds
datastax-java-driver.advanced.control-connection.timeout = 10 seconds
Run Code Online (Sandbox Code Playgroud)
以下是我按照帖子中的建议使用的配置-
@EnableCassandraRepositories
public class CassandraConfig {
@Bean
DriverConfigLoaderBuilderCustomizer cassandraDriverCustomizer() {
return (builder) -> builder.withDuration(DefaultDriverOption.CONTROL_CONNECTION_TIMEOUT,
Duration.ofSeconds(30));
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到同样的错误
Caused by: com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system_schema.tables' timed out …Run Code Online (Sandbox Code Playgroud) 最近我开始在Weblogic服务器上工作.我在添加weblogic.xml时默认添加了运行时环境.我在互联网上搜索差异,但我仍感到困惑.任何人都可以详细说明吗?
我正在控制容器的启动顺序,因为我的docker-compose共有5个容器,它们需要按顺序启动。
我已经通过了Internet / git / StackOverflow解决方案中有关控制启动顺序的许多建议。
问题是
命令:[“ ./ wait-for-it.sh”,“ rabbitmq:15672”]
容器启动时未在docker容器内执行。
这是详细说明:
我有一个春季启动项目,下面提供了Dockerfile。
FROM openjdk:8-jre-alpine
COPY ./target/spring-cloud-config-server-0.0.1-SNAPSHOT.jar /usr/source/
COPY wait-for-it.sh /usr/source/
RUN chmod 777 /usr/source/wait-for-it.sh
RUN apk add --no-cache bash
WORKDIR /usr/source/
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "spring-cloud-config-server-0.0.1-SNAPSHOT.jar"]
Run Code Online (Sandbox Code Playgroud)2.我正在使用wait-for-it.sh bash脚本,该脚本直接放置在存在Dockerfile的同一根目录中。3.在同一根目录中,我有docker-compose.yml,如下所示
version: "3.3"
services:
rabbitmq:
image: rabbitmq:management
ports:
- "15672:15672"
- "5672:5672"
volumes:
- /root/rabbitmq_data:/var/lib/rabbitmq
spring-cloud-config-server:
image: rajeevshukla/spring-cloud-config-server
container_name: spring_cloud_config_server
depends_on:
- rabbitmq
links:
- rabbitmq
command: ["./wait-for-it.sh","rabbitmq:15672"]
ports:
- "8888:8080"
environment:
- "SPRING_PROFILES_ACTIVE=prod"
Run Code Online (Sandbox Code Playgroud)
现在,当我构建docker映像并启动它时。我看到在我的jar文件所在的/ usr / source /目录中的docker容器中存在wait-for-it.sh。 …