지노드란? 서로 연결되어있는 서버들이 상태 정보 등을 주고받는데, 이때 key-value 형식으로 카프카 지노드에 저장된다. 지노드에 저장된 key-value 를 사용하여 분산 애플리케이션이 서로 데이터를 주고받고, 이러한 지노드에 접속하여 상태 정보를 확인할 수 있는 명령어에 대해 더 자세히 알아보자. 지노드 경로 설정 카프카의 환경설정 파일에서 지노드 경로를 설정할 수 있다. vi /usr/local/kafka/config/server.properties 환경 설정 파일에서 아래 부분을 수정하자. zooleeper.connect=servername/test-kafka # test-kafka 경로로 설정 지노드 접속 /usr/local/zookeeper/bin/zkCli.sh 접속한 후, 아래 명령어를..
쿠버네티스의 개념 컨테이너를 실행하는 서버 클러스터를 하나의 커다란 논리 서버로 만드는 컨테이너 오케스트레이터이다. 또한 컨테이너를 쉽고 빠르게 배포 및 확장할 수 있고, 관리를 자동화해주는 오픈소스 플랫폼이다. 오케스트레이터 데브옵스(DevOps) 직원(또는 자동화)이 레지스트리에서 이미지를 가져오고, 컨테이너 이미지를 배치하고, 실행 중인 컨테이너를 관리할 수 있게 하는 도구이다. 역할 1) 컨테이너를 배포/실행 하면서 '무중단 롤링 업그레이드'를 지원한다. = 새로운 버전의 컨테이너가 배포되더라도, 기존의 컨테이너가 중지되지 않고 교체되며 이를 무중단 배포라고 한다. 2) 하나 혹은 다수의 컨테이너가 배치된 포드(pod)를 클러스터의 가용 노드에 스케줄링 할 수 있다. 3) 실행중인 컨테이너의 상태..
배열 Array를 역순 정렬하기 Arrays.sort(arr, Collections.reverseOrder());
ORA-10858 a non-numeric chracter was found where a numeric as expected 해당 오류는 아래와 같은 상황에서 발생한다. SELECT TO_DATE(SYSDATE, 'YYYYMMDD') FROM DUAL; SYSDATE는 이미 DATE 타입의 값인데 해당 값을 다시 TO_DATE()를 사용하여 DATE 타입으로 변환을 시도했기 때문에 발생한다. SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; Foramt 을 변경하려면, Date 타입의 값을 TO_CHAR()을 사용하여 변경해주자. ORA-01481 invalid number format model 해당 오류는 아래와 같은 상황에서 발생한다. SELECT TO_CHAR(..
Stream 사용하여 배열 array의 max, min 구하기 1) max int arrayMax = Arrays.stream(arr).max().getAsInt(); 2) min int arrayMin = Arrays.stream(arr).min().getAsInt();
startDate-endDate 기준 포함되는 월(Month) 조회 SELECT TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR('20210301', 5, 2), 'MM'), LEVEL - 1 ),'MM') AS MONTHS FROM DUAL CONNECT BY LEVEL
Kafka in Docker 설치 Docker 에 Kafka, Zookeeper 설치는 이전 포스팅을 참고바란다. https://devfunny.tistory.com/429?category=820624 docker로 Kafka, Zookeeper 설치 (with docker-compose) Docker 이미지 설치 1) Kafka 설치 docker pull wurstmeister/kafka 2) zookeeper 설치 docker pull wurstmeister/zookeeper docker-compose 파일 생성 1) docker-compose.yml 파일 생성 (local PC에 경로는 자유.. devfunny.tistory.com 프로젝트 구조 1) Producer 역할의 Service - Pro..
Docker 에 MariaDB 설치 및 실행까지의 과정 1) 이미지 다운로드 docker pull mariadb 2) 컨테이너 실행 docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mariadb mariadb 3) 컨테이너 확인 docker ps 4) 컨테이너ID로 접속 docker exec -it containterID bash #containterID : 위 명령어에서 확인된 CONTAINER ID 5) 로그인 mysql -u root -p # 이후 password 입력 : 1234 MariaDB 설정 1) 데이터베이스 생성 create database seohaedb; 2) 데이터베이스 사용 use seohaedb; 3..
1) rqbbitmq 이미지 설치 docker pull rabbitmq:3-management 2) rabbitmq 컨테이너 실행 docker run -d -p 15672:15672 -p 5672:5672 --name msa-rabbitmq rabbitmq:3-management 3) 접속 확인 localhost:15672 ID: guest PWD : guest
현재 프로젝트 목록 Prj1. Config -> 여러 Service 프로젝트들의 Config를 공통으로 관리하는 프로젝트 Prj2. API-Gateway -> 여러 Service 프로젝트들의 Gateway 역할을 하는 프로젝트 Prj3. User-Service -> User, Order, OrderItem 등 여러 서비스 프로젝트들 중에 유저 프로젝트 User-Service 프로젝트 우선 서비스 프로젝트들 중 하나인 User-Service 프로젝트에 추가 설정을 해보자. 1) pom.xml org.springframework.boot spring-cloud-starter-bus-amqp 2) application.yml spring: application: name: user-service rabbitm..
testconfig-{profiles} 의 yml 파일 생성하기 testconfig.yml test: message: default yml testconfig-dev.yml test: message: dev yml testconfig-prod.yml test: message: prod yml 위 파일들은 로컬 컴퓨터에 특정 폴더 안에 생성되어 있을 것이다. 해당 파일들을 git repository 에 push 한다. (예상 경로 : https://github.com/seohae/microservice-config) Config 관리 프로젝트 생성 1) SpringBoot 프로젝트를 생성하였다. ConfigApplication.java 파일 안에 아래 코드를 추가하여 Config Server로 등록하자. ..
기존 코드 관리 보통 프로젝트를 진행하면서, 관리되는 코드 등은 static final 변수로 선언되어있다. public class CommonStatus { public static final int CODE = 200; public static final String MESSAGE = "성공"; } static final 변수를 Enum 으로 변환해보자. Enum.java public enum EnumCode { /** Default Code */ MESSAGE ("성공") ; @Getter private final String code; EnumCode(String code) { this.code = code; } } 호출 코드 TestDto testDto = new TestDto(); testDt..