
지난 포스팅으로는 Kafka 설치를 하고 간단하게 테스트를 해봤다. CLI로도 모든걸 다 할수 있지만 이를 조금 더 편리하게 해주는 CMAK이라는 Kafka Manager tool 을 이용하여 사용할수도 있다. (git 과 gitlab과 비슷한 관계라고 보면 된다.)CMAK 다운로드Releases · yahoo/CMAKCMAK is a tool for managing Apache Kafka clusters. Contribute to yahoo/CMAK development by creating an account on GitHub.github.com일단 설치를 해야 한다. 위의 링크를 눌러서 CMAK 다운로드를 받자.필자는 Windows 환경에 Kafka를 설치해서 CMAK도 마찬가지로 Windows 환..
MinioClient를 통해 putObject를 하는 과정에서 다음과 같은 오류가 발생하였다. io.minio.errors.ErrorResponseException: Object name contains unsupported characters. at io.minio.MinioClient.executeReq(MinioClient.java:1204) ~[minio-6.0.11.jar:6.0.11] at io.minio.MinioClient.execute(MinioClient.java:1066) ~[minio-6.0.11.jar:6.0.11] at io.minio.MinioClient.executePut(MinioClient.java:1430) ~[minio-6.0.11.jar:6.0.11] at io.mi..

MSA 프로젝트를 진행중인데 API 서버간의 트랜잭션 처리(보상 트랜잭션 이라고도 한다.)를 kafka를 이용해서 하기로 하였다. kafka는 RabbitMQ 처럼 Message Queue를 사용하여 비동기 처리를 가능하게 하는 역할을 담당하고 있고 결합도가 낮고 속도가 빠르다는 장점을 가지고 있어서 최근 MSA를 하는데 있어서 많이 사용된다. 일단은 머리가 좋지 않기에 이론을 공부하기 앞서 kafka를 설치를 해보고 프로토타이핑을 해봄으로써 감을 잡아 나가려고 한다. 갑자기 Docker가 말썽이라 로컬 Windows에 설치를 진행을 하게 되었다. 나중에 Linux 환경에도 다시 설치를 할 계획이다. 환경은 Windows 10 을 사용하고 JDK는 OpenJDK 11을 사용하고 있다. 다운로드 (kafk..

MinIO는 고가용성을 확보하기 위해 Distributed mode를 지원한다. 그래서 운영환경에서 MinIO를 사용하기 위해서는 Distributed mode가 필요하다. 이를 구성하기 위해 별다른 복잡한 기술이 필요한게 아니라 기존에 설정했던것에 매개변수 정도 추가하면 간단히 구성이 가능하다. MinIO의 distributed mode architecture 이다. 파일이 들어오면 이것을 여러개의 서버에 분산해서 저장을 하는 것이다. 이로인해 이 서버중 한대가 장애가 난다 하더라도 계속해서 이용을 할 수가 있다. 물론 서버와 disk의 투자가 필요하다. 구성방법 Distributed mode 구성에 앞서 지난번에 포스팅한 MinIO 실행 스크립트를 한번 살펴보자. 실수를 방지하기 위해서 그냥 실행명령..

지난 시간에 scouter 설치와 application과의 연동을 알아보았다. 이제 이렇게 연동된 application과 server에 대한 정보를 가지고 모니터링을 해야 한다. 우선 scouter client를 구성하기 앞서 설정을 할 부분이 있다. 바로 그룹에 대한 설정이다. 그룹에 대한 설정은 모니터링 대상 application의 tomcat에서 다음과 같이 할 수 있다. catalina.sh or startup.sh JAVA_OPTS=" ${JAVA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar" JAVA_OPTS=" ${JAVA_OPTS} -Dscouter.config=${SCOUTER_AGENT_DIR}/conf/scouter.conf" J..

대용량 파일을 업로드할때 업로드하는 시간이 2분을 넘어가자 nginx 504 Gateway Time-out 이 발생하며 안되는 문제가 발생을 하였다. 이것에 대한 원인과 해결책은 다음과 같다. 문제점 : nginx의 기본 timeout 시간(60초)을 넘어갔기 때문에 발생을 하는 것이다. 해결책 : nginx의 timeout 시간을 늘려주면 된다. timeout 시간을 늘려주는건 다음과 같이 할수 있다. nginx.conf server { ... 생략 ... location / { proxy_pass http://127.0.0.1:8080; #proxy_connect_timeout 600; #WAS 접속시간 proxy_send_timeout 600; #WAS로 전송할때 timeout #proxy_read..

Minio를 이것저것 설정하고 되랏! 하며 기동을 시키면 다음과 같이 오류가 나는 경우가 있다. Unable to initialize server switching into safe-mode: Unable to initialize sub-systems: Unable to initialize config system: Invalid credentials.. 계정에 문제가 있나? 해서 계정정보를 수정도 해보았다. 계정정보를 수정하고 재기동을 해봐도 안되는건 마찬가지이다. 해결책이 문제는 필자는 .minio.sys 폴더를 지워서 해결하였다. .minio.sys 폴더는 minio를 기동할때 지정한다. 그 위치의 data 폴더에 들어가서 .minio.sys 폴더를 지워준다. 지워준 후 변경된 계정으로 다시 Min..

MSA 프로젝트를 준비하며 여러가지 준비사항이 있지만 느슨한 결합을 위해 MQ (Message Queue) 가 필요하다. 여러가지 이런 메세징 기능이 있는 툴이 있지만 RabbitMQ를 일단 사용해보려한다. 어떻게 설치하는지 간단히 알아보자. Downloading and Installing RabbitMQ — RabbitMQ Downloading and Installing RabbitMQ The latest release of RabbitMQ is 3.8.9. See change log for release notes. See RabbitMQ support timeline to find out what release series are supported. Experimenting with RabbitMQ..