Java
-
도메인명에 매핑된 ip 정보가 있을 텐데 이를 캐싱처리를 하는 것이 -> DNS CachingJVM단에서 이러한 캐싱 처리를 하고 있으니 -> JVM DNS Caching VIP, GSLB와 같은 기능을 이용하는 경우 상황에 따라서VIP의 경우에는 RIP가 변경될 수 도 있고GSLB의 경우에는 매핑이나 비율이 바뀌어야 되는데 캐싱처리 영향으로 의도한 바가 정확히 동작하지 않을 수 있다.보통의 HA(high availabilty)(고가용성)을 이루기 위해 VIP, GSLB 등을 사용한다. 이러한 상황을 방지하기 위해서 TTL 설정이 필요하다. 설정 방법Java 8 버전 $JAVA_HOME/jre/lib/security/java.security8 버전 이상 $JAVA_HOME/conf/security/j..
[Java] JVM DNS Caching TTL 설정(networkaddress.cache.ttl)도메인명에 매핑된 ip 정보가 있을 텐데 이를 캐싱처리를 하는 것이 -> DNS CachingJVM단에서 이러한 캐싱 처리를 하고 있으니 -> JVM DNS Caching VIP, GSLB와 같은 기능을 이용하는 경우 상황에 따라서VIP의 경우에는 RIP가 변경될 수 도 있고GSLB의 경우에는 매핑이나 비율이 바뀌어야 되는데 캐싱처리 영향으로 의도한 바가 정확히 동작하지 않을 수 있다.보통의 HA(high availabilty)(고가용성)을 이루기 위해 VIP, GSLB 등을 사용한다. 이러한 상황을 방지하기 위해서 TTL 설정이 필요하다. 설정 방법Java 8 버전 $JAVA_HOME/jre/lib/security/java.security8 버전 이상 $JAVA_HOME/conf/security/j..
2025.02.03 -
option 설명 etc -Xms 초기 Heap 메모리 size Heap -Xm 최대 사용 가능한 Heap 메모리 size Heap -XX:MetaspaceSize 초기/최소 metaspace size metaspace -XX:MaxMetaspaceSize 최대 metaspace size metaspace defaul = -1 ( unlimited ) -java.net.preferipv4stack=true IPv4, IPv6 중에 IPv4를 더 우선으로 사용 defaul = false
[Java] JVM 옵션 정리option 설명 etc -Xms 초기 Heap 메모리 size Heap -Xm 최대 사용 가능한 Heap 메모리 size Heap -XX:MetaspaceSize 초기/최소 metaspace size metaspace -XX:MaxMetaspaceSize 최대 metaspace size metaspace defaul = -1 ( unlimited ) -java.net.preferipv4stack=true IPv4, IPv6 중에 IPv4를 더 우선으로 사용 defaul = false
2024.04.21 -
코드 내부에서 java의 다형성 특징을 이용해서 abstract, interface를 이용해 기능을 작성하는 경우가 있다. 이러한 경우에 하나의 application 내에서만 호출되는 관계가 아니고, 다른 application에 메시지로 전달되거나 redis와 같은 storage에 저장되는 경우 object를 string이나 byte로 변환하는 과정이 필요하게 된다. 해당 과정에서 abstract, interface를 사용하게 되면 실제로 deserialize 되는 시점에 해당 정보가 어떠한 concrete class에 매핑되는지에 대한 정보가 필요하게 된다. 이러한 구체적인 정보가 없이는 serialize 된 정보가 다시 객체로 변환되기는 불가능하다. @JsonTypeInfo를 사용하면 이러한 문제를 ..
[Java] 다형성 serialize (jackson, JsonTypeInfo)코드 내부에서 java의 다형성 특징을 이용해서 abstract, interface를 이용해 기능을 작성하는 경우가 있다. 이러한 경우에 하나의 application 내에서만 호출되는 관계가 아니고, 다른 application에 메시지로 전달되거나 redis와 같은 storage에 저장되는 경우 object를 string이나 byte로 변환하는 과정이 필요하게 된다. 해당 과정에서 abstract, interface를 사용하게 되면 실제로 deserialize 되는 시점에 해당 정보가 어떠한 concrete class에 매핑되는지에 대한 정보가 필요하게 된다. 이러한 구체적인 정보가 없이는 serialize 된 정보가 다시 객체로 변환되기는 불가능하다. @JsonTypeInfo를 사용하면 이러한 문제를 ..
2024.04.13 -
기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
[Java] ForkJoinPool 에러 발생 in Java11기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
2024.03.11