본문 바로가기

프로그래밍

(57)
Eureka issue(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE) self-preservation Eureka 서버가 client를 registry에 유지하는 방법에 대해 알아보자. 시작할 때 client는 server의 registry에 등록하기 위해 REST call을 한다. instance가 graceful shutdown 되는 경우에는 그 instance는 Eureka 서버에 REST call을 보내 registry에서 제거하도록 한다. ungraceful shutdown을 처리하기 위해서 서버는 client로부터 특정 간격으로의 heartbeat를 기대한다. 이것을 renewal이라 한다. 서버가 지정된 기간 동안 heartbeat 수신을 중지하면 오래된 인스턴스를 제거하기 시작한다. client가 unregister call을 보내지 않으면 서버는 이를 un..
spring-cloud (코틀린마이크로서비스#2) 스프링 클라우드는 어떤 클라우드에서도 서비스를 구축 가능하다. 스프링 클라우드를 사용하면 클라우드 네이티브 마이크로 서비스를 쉽게 만들 수 있다. 컴포넌트의 아키텍쳐 패턴을 살펴보자. Config server Service discovery Gateway Circuit breaker # Config server 클라우드가 변경되면 설정도 바뀌어야 하기 때문에 애플리케이션에 설정을 정적으로 할 수는 없다. 서비스에서 요청할 수 있도록 하는 메커니즘이 필요하다. Config server는 설정에 대해 쿼리할 수 있는 기능을 제공하여 URL, DB, PW 및 그 밖의 설정값을 검색할 수 있따. Service Discovery 클라우드에서는 다른 서비스를 연결해야 할 수도 있는데, 실제 서비스의 위치, 인스턴스..
프로젝트를 docker로 실행해보기(코틀린마이크로서비스#3) 개발한 서비스를 도커 이미지로 만들어보자 이미지를 만들려면 Dockerfile을 만들어야 한다 new > File > Dockerfile FROM openjdk:8-jdk-alpine ADD build/libs/*.jar service2.jar ENTRYPOINT ["java", "-jar", "service2.jar"]이미지를 빌드해보자 $ docker build . -t service2 이미지가 생성됐는지 확인해보자 $ docker images  ✔  929  16:53:57 REPOSITORY TAG IMAGE ID CREATED SIZE service2 latest f556485c6cd2 52 seconds ago 137MB mongo latest 3f3daf863757 3 days ago ..
AWS + Spring boot + Java + Oauth + Mustache + JPA (sample project) https://github.com/sungyoungKwon85/sampleWeb sungyoungKwon85/sampleWeb Contribute to sungyoungKwon85/sampleWeb development by creating an account on GitHub. github.com Java 8 Spring boot 2.1.7 Gradle jpa h2 lombok mustache oauth2 (Google, naver)
spring-kotlin-reactive(코틀린마이크로서비스#1) https://github.com/sungyoungKwon85/spring-kotlin-reactive 코틀린 마이크로서비스 개발 (후안 안토니오 메디나 이글레시아스) 책 실습 소스. spring-kotlin-reactive WebFlux Netty 라는 애플리케이션 서버를 사용해 reactive microservice를 만들 수 있는 새로운 컴포넌트이다. reactive stream pattern 구현을 위해 reactor framework를 광범위하게 사용한다. # Netty 원래 Netty는 Non-blocking IO 작업을 수행할 수 있게 하는 Client-Server 프레임워크를 만들려는 JBoss에 의해 개발됐다. Reactor 패턴의 Message 기반 구현을 사용한다. HTTP, SSL/..
REST API sample With Kotiln https://github.com/sungyoungKwon85/spring-kotlin sungyoungKwon85/spring-kotlin Contribute to sungyoungKwon85/spring-kotlin development by creating an account on GitHub. github.com 코틀린 마이크로서비스 개발 (후안 안토니오 메디나 이글레시아스) 책 실습 소스
JMETER 사용해보기 Mac 기준 작성 설치 $ brew install jmeter 실행 $ jmeter 아래와 같이 프로그램이 실행된다 아래처럼 옵션들을 추가해주고 스레드 개수도 설정해보자 Request도 작성하자 실행버튼을 누르면.. 여러가지 정보를 볼 수 있다. TPS는? 스레드 개수 / 평균 응답 시간 즉, 100개의 스레드를 날렸기 때문에 100 / 0.057 = 1754 TPS 가 된다. 스트레스 테스트니 좀 더 큰 스레드로 테스트하는게 더 좋을 것 같다. (실제로 더 낮은 TPS로 바뀐다)
Longest Palindromic Substring Palindrome? 문자열을 거꾸로 해도 원래의 문자열과 같은 문자열 public String longestPalindrome(String s) { if (s.length() == 0) { return ""; } String result = "" + s.charAt(0); for (int i = 0; i i; j--) { String newStr = s.substring(i, j+1); if (isPalindrome(newStr) && result.length() < newStr.length()) { result = newStr; if (s.equals(newStr)) { return s; } } } }..