본문 바로가기

upcurve631

[Spring Cloud] 마이크로서비스 간의 통신 RestTemplate, FeignClient, Error decoder, 동기화 문제 동기 방식과 비동기 방식으로 나누어 생각할 수 있다. 동기방식의 문제점은 해당 요청이 끝날 때까지 다른 작업을 할 수 없다는 것이다. 요청 - 컨트롤러 - 서비스 // => 이것을 하나의 프로세스라고 하면 끝나야 다음 작업이 진행된다. - 일반적인 방식의 동기 방식 - AMQP를 통한 비동기 방식 Eureka discovery service를 사용하면 기본적으로 round robin 방식으로 순차 처리가 가능하다. 이때 설정에 따라서 dispatch 하는 방식을 다르게 정할 수도 있다. (지역, 시간대, 리소스 등 => 분산) 1. RestTemplate Http 프로토콜을 통해 다른 API를 연결하는 방식 클라이언트 요청 -> localhost:8000/user-service/users -> rest .. 2023. 6. 2.
[Spring cloud] 비대칭키로 암호화하기 Jdk keytool을 사용한다. 먼저 keystore라는 폴더를 생성한다. 이곳에 private 키를 보관한다. 해당 폴더로 가서 터미널에서 다음과 같이 입력한다. keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -dname "CN=name, OU=API Development, O=msapractice.co.kr, L=Seoul, C=KR" -keypass "test1234" -keystore apiEncryptionKey.jks -storepass "test1234" -genkeypair: 키 쌍(공개키 및 개인키)을 생성하는 옵션. -alias apiEncryptionKey: 생성되는 키 쌍에 대한 별칭을 지정. 이 별칭은 나중에 키 스토어에서 해.. 2023. 6. 1.
[Spring Cloud] config에서 대칭키 암호화 설정하기 설정 값 암호화/복호화 하기 암호화를 처리하는 두 가지 방식 대칭키 vs 비대칭키 Symmetric Encrption (shared : 대칭키) - 같은 키 Asymmetric Encryption (RSA keypair : 비대칭키) - privater and public key - using java keytool (JDK에 포함) spring cloud config를 이용해 공개키 암호화를 할 수 있다. config server에 encrypt용 yml 파일 생성 encrypt: key: abcdefghijklmnopqrstuvwxyz0123456789 이 키값으로 암호화를 한다는 의미이다. post 요청시 변경된 암호를 리턴 받는 것을 볼 수 있다. decrypt 시에도 작동한다. 이처럼 Sprin.. 2023. 6. 1.
[Spring Cloud] bus, rabbitmq를 이용해 서버 연결하고 actuator를 이용한 갱신 집합화하기 설정 정보를 변경하는 방식으로 Spring cloud bus를 사용한다. Atuator의 refresh 방법은 서버가 늘어나면 하나하나를 전부 해줘야 해서 번거롭다. Spring cloud bus 는 - 분산 시스템의 노드(마이크로 서비스)를 경량 메시지 브로커와 연결한다 - 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달한다 (broadcast) 다이렉트로 메시지를 전달하는 것이 아니라 중간에 middleware를 두고 전달하는 방식이다. AMQP (Advanced Message Queing Protocol) 을 이용해서 변경점을 알려준다. => push update AMQP : 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜 - 메시지 지향, 큐잉 라우팅, 신뢰성, 보안 - Erl.. 2023. 6. 1.
Mac brew Rabbitmq 설치 후 실행 문제 brew 로 설치하고 rabbitmq-server 실행 명령시 다음과 같은 에러가 발생했다. 2023-06-01 18:55:42.589155+09:00 [warning] Failed to create PID file "/opt/homebrew/var/lib/rabbitmq/mnesia/rabbit@localhost.pid" directory: no such file or directory 2023-06-01 18:55:42.714424+09:00 [error] Failed to create feature flags file "/opt/homebrew/var/lib/rabbitmq/mnesia/rabbit@localhost-feature_flags" directory: no such file or dire.. 2023. 6. 1.