일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dfs
- forkandjoinpool #threadpool #jvm #async #non-blocking
- unittest
- microservice architecture
- netflix eureka
- zuul
- 탐색
- api-gateway
- reactive
- code refactoring
- java #jvm #reference #gc #strong reference
- BFS
- docker
- spring cloud netflix
- spring cloud
- 설계
- netflix
- Eureka
- 서비스스펙
- unit
- Spring Data Redis
- Dynamic Routing
- spring cloud netflix eureka
- container image #docker #layer #filesystem #content addressable
- springcloud
- test
- spring cloud netflix zuul
- 단위테스트
- Java
- Today
- Total
목록분류 전체보기 (48)
phantasmicmeans 기술 블로그
1. 정상 종료 후 HDMI 빼고, 부팅 → 부팅 완료 후 HDMI 연결 xrandr에 다음과 같이 HDMI-1-1이 나와야 정상임. 나오지 않으면 Detect 안된 상태 2. nvidia-driver 재설치, reconfigure lightdm or gdm3 3. reinstall ubuntu-desktop 해상도 resolution cvt 1920 1080 xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode eDP-1-1 "1920x1080_60.00"
Docker에서 Container Image는 layer의 연속이다. 각 레이어는 Dockerfile에서의 각 명령(instruction)을 대표한다. 가장 상단의 layer를 제외하고는 모두 Read Only이다. 갑자기 가장 상단의 layer는 제외하고 Read Only라니 무슨 말인지 이해가 안될 것이다. 이에 대한 설명은 바로 아래에 있다. 1. Container Image, Writable Layer FROM ubuntu:16.04 COPY . /app RUN make /app CMD python /app/app.py 위 Dockerfile은 4개의 command를 가진다. 각 command는 layer를 생성하게 된다. 각 Layer는 stack 처럼 쌓인다. 또한 각 layer는 바로 이전 ..
CompletableFuture를 활용해 작업을 하다 우연히 스레드명을 로깅하게 되었고 이는 default로 ForkAndJoinPool()을 사용하는 것을 알았다. ForkAndJoinPool()은 Java 7에서 도입되었으며 보통의 ExecutorService와 비슷하나 차이점을 가진다. 사실 이름만 봐도 어느정도 감이 올것이다. ForKAndJoinPool은 2가지 recursive한 스텝을 가진다. 1. Fork 첫 번째 작업은 "split itself" 이다. 자신을 더 작은 subTask로 나눈다. 이후 subTask는 parallel or concurrent하게 실행된다. 위 그럼처럼 Task를 SubTask로 fork하여 분리한다. subTask는 parallel하게 실행되거나, cpu c..
JVM 내의 Reference는 GC와 관련해 이해하는 것이 좋다. JVM Heap Memory Reference JVM의 Garbage Collector가 Garbage Collecting을 행하는 기준을 설명한다. 일반적으로 Garbage Collector는 Stack내의 원소들을 훑으며 각 원소가 Heap Memory내의 어떠한 객체를 참조하고 있는지 체크하고 기록한다. 이를 Marking 이라 한다. 일반적인 경우 Stack내의 원소를 "객체 참조의 Root Set"이라 한다. 물론 이것만 있는 것은 아니다. Heap의 객체들에 대한 참조는 다음과 같다. 1. 힙 내의 다른 객체에 의한 참조 2. Java Method 실행시 사용되는 지역변수 및 파라미터에 의한 참조 3. JNI에 의해 생성된 객..
사용하고 있는 꿀 Open Source들.. 1. VIM-Plug- A Minimalist Vim Plugin Manager https://github.com/junegunn/vim-plug junegunn/vim-plug :hibiscus: Minimalist Vim Plugin Manager. Contribute to junegunn/vim-plug development by creating an account on GitHub. github.com Easier to setup: Single file. No boilerplate code required. Easier to use: Concise, intuitive syntax Super-fast parallel installation/update (..
오랜만에 글을 쓴다.. 몇달간 죈종일 코딩만 하다보니 여유가 없었다.. 앞으로는 틈틈히 다시 정리하는 차원에서 글을 써보려 한다. Multi Thread 환경에서 작업하다보니 공유 자원에 대한 atomic한 flow가 항상 필요했고, 모든 상황에 대해 Application 단에서 각 thread 별로 공유자원에 접근하는 flow를 sync하게 처리할 순 없다. 또한 사용자의 request를 multi-thread로 처리하는 경우 공유자원에 대한 ACID가 지켜지지 않을 수 있다. 자주 사용하는 인 메모리 데이터 스토어인 Redis를 활용 함에 있어서도 마찬가지이다. single thread로 동작하는것은 다들 아실테니.. 평소 RTT를 줄이기 위해 Pipeline을 자주 사용한다. 많은 양의 데이터를 w..
Spring Cloud Netflix Zuul 이상민(http://phantasmicmeans.tistory.com)Overview 대용량 웹 서비스가 증가함에 따라 Microservice Architecture는 선택이 아니라 필수가 되어가고 있다. 기존 Monolithic Architecture와는 달리 Microservice Architecture는 작은 Microservice 단위로 나누어 시스템을 구축한다. 이러한 Microservice는 보통 하나 혹은 여러 개의 API로 개발된다. 그렇다면 Microservice가 수백 개 혹은 수천 개까지 증가할 때 수많은 Endpoint와 공통 로직 등 이를 어떻게 관리해야 할까? API Gateway는 수많은 백 단의 API Server들의 Endpoi..
Spring Cloud Netflix Eureka 이상민(http://phantasmicmeans.tistory.com) 전 세계에서 Microservice Architecture를 가장 잘 운영하는 기업으로 평가받는 Netflix에서는 MSA 구축을 편하게 할 많은 기술과 다양한 이슈에 대한 해결책을 제공한다. 특히 Netflix OSS(Open Source Software)를 공개하고 있다. 여기에는 MSA를 구성하는 데 필수적으로 고려해야 할 다양한 Component들이 포함되어 있다. Spring Cloud는 분산시스템(ex. Microservice Architecture)을 구축할 때 공통으로 발생하는 대표적인 문제에 대한 솔루션을 제공한다. 그리고 Spring Cloud에서는 위에서 설명한 N..