일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 유레카
- 서비스 디스커버리
- spring boot
- 스택
- docker-compose
- 비트마스킹
- 이분 탐색
- 트리
- ZuulFilter
- 이분 매칭
- Spring Cloud Config
- 메모이제이션
- Zuul
- 다익스트라
- 구현
- 주울
- 플로이드 와샬
- 구간 트리
- 완전 탐색
- Logback
- dp
- BFS
- spring cloud
- 백트래킹
- 달팽이
- 게이트웨이
- 스프링 시큐리티
- Java
- 도커
- Gradle
- Today
- Total
목록분류 전체보기 (387)
Hello, Freakin world!
간단하게 service-a 라는 MySQL 기반의 스프링부트 프로젝트를 만들어 보자. 우선 스프링 이니셜라이저를 이용해 프로젝트를 생성한다. build.gradle plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'springboot.web' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() ..
도커를 이용해 위 그림처럼 동일한 인스턴스로 구성된 클러스터를 만들어보자. 우선 서비스를 만들기 위해 스프링 이니셜라이저를 이용해 프로젝트를 생성. build.gradle plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'springboot.study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spr..
buildscript { ext { queryDslVersion = "4.4.0" } } plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'springboot.jpa' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.s..
[Eureka] 서비스 디스커버리에 서비스 등록하기 시나리오 간단하게 유레카 서버와 유레카에 등록되는 서비스 서버를 띄운다. 그리고 유레카 서버의 대시보드를 활용해 서비스 서버가 등록되는지 확인해본다. 유레카 서버 스프링 이니셜라이 javachoi.tistory.com 지난 글에서 서비스를 등록해봤으니 이제 서비스 검색을 구현해보자. 아키텍쳐 전체적인 아키텍쳐는 다음 그림과 같다. 각 서비스는 시작과 동시에 유레카 서버에 등록된다. 서비스끼리 서로를 호출할 때 유레카 서버가 이를 중개해 라우팅해준다. 이 때문에 각 서비스 인스턴스는 서로의 물리적인 위치를 몰라도 된다. 유레카 클라이언트는 리본을 사용해 클라이언트측 로드 밸런싱을 수행한다. 이를 위해 서비스 레지스트리를 로컬에 캐싱하고 주기적으로 유레카 ..
시나리오 간단하게 유레카 서버와 유레카에 등록되는 서비스 서버를 띄운다. 그리고 유레카 서버의 대시보드를 활용해 서비스 서버가 등록되는지 확인해본다. 유레카 서버 스프링 이니셜라이저를 이용해 eureka server 의존성을 추가한 프로젝트를 생성하자. build.gradle plugins { id 'org.springframework.boot' version '2.4.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'springboot.cloud' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } ..
docker-compose.yml version: "3.0" services: zk1: image: zookeeper:3.5 restart: always hostname: zk1 ports: - 2181:2181 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181 volumes: - "~/zk-cluster/zk1/data:/data" zk2: image: zookeeper:3.5 restart: always hostname: zk2 ports: - "2182:2181" environment: ZOO_MY_ID: 2 ZOO_SERVERS:..
1편에서는 Spring Cloud Config에서 제공하는 방법을 이용해 구성정보를 암호화했습니다. [Spring Cloud Config] 대칭키로 구성 정보 암호화하기 - 1 아래 예제는 Spring Cloud Config 카테고리의 이전 글들의 예제 구조를 따라갑니다. javachoi.tistory.com/390 [Spring Cloud Config] 1.컨피그 서버 만들기 대략적인 동작 방식 서비스 A의 소스를 그레이들이나.. javachoi.tistory.com 이제 구성 정보를 저장하는 저장소는 패스워드같은 민감한 정보를 암호화해서 저장합니다. 그리고 컨피그 서버는 민감한 정보를 암호화한 상태로 클라이언트에게 전달합니다. 이제 클라이언트는 암호화된 정보를 복호화하고 사용하는 일만 남았네요. 사실..
아래 예제는 Spring Cloud Config 카테고리의 이전 글들의 예제 구조를 따라갑니다. javachoi.tistory.com/390 [Spring Cloud Config] 1.컨피그 서버 만들기 대략적인 동작 방식 서비스 A의 소스를 그레이들이나 메이븐으로 빌드할 경우 jar 형식의 아티팩트가 만들어집니다. 서비스 A의 구성 정보에는 config 서버의 url 정보가 있습니다. jar가 실행될 때 S javachoi.tistory.com 스프링 클라우드는 비대칭키,대칭키 각각 암호화/복호화 방식을 지원한다. 보안 측면에선 비대칭키 방식이 더 안전하다. 대칭키 방식은 암호화/복호화에 같은 키가 사용되므로 키가 유출됐을 때의 위험이 크다는 단점이 있다. 하지만 구현에 있어서는 엄청나게 단순하므로 한..
버전 정보 Spring boot 2.4.2, Java 11 컨피그 서버 만들기에 이어 이번에는 컨피그 서버를 이용하는 클라이언트 서비스를 만들어보자. javachoi.tistory.com/390 [Spring Cloud Config] 1.컨피그 서버 만들기 대략적인 동작 방식 서비스 A의 소스를 그레이들이나 메이븐으로 빌드할 경우 jar 형식의 아티팩트가 만들어집니다. 서비스 A의 구성 정보에는 config 서버의 url 정보가 있습니다. jar가 실행될 때 S javachoi.tistory.com 클라이언트 서비스 스프링 이니셜라이저를 이용해 Spring Actuator, Web, Spring Config Client Server 의존성을 추가해 프로젝트를 생성한다. build.gradle plugin..
대략적인 동작 방식 서비스 A의 소스를 그레이들이나 메이븐으로 빌드할 경우 jar 형식의 아티팩트가 만들어집니다. 서비스 A의 구성 정보에는 config 서버의 url 정보가 있습니다. jar가 실행될 때 Spring Cloud Config 내부에서 config 서버로 요청을 보내 구성 정보를 주입받습니다. config 서버는 구성 정보를 다양한 방식으로 저장할 수 있습니다. 서버 내의 파일시스템에 저장할 수도 있고, Git Hub... 이외에도 다양한 방식의 백엔드를 이용해 저장이 가능합니다. 이 예제에선 깃허브를 사용하겠습니다. 시나리오 최대한 간단한 방식으로 구현하려고 합니다. 구성 정보는 간단하게 msg=hello world! 만 가지는 프로퍼티 or yml 파일입니다. 서비스는 이 구성 정보를 ..