클러스터링 구성이 아닌 H/A (Active-Standby) 로 시스템을 구성하는 경우에 대한 절차입니다.
전제조건은 두대의 서버를 Active-Standby로 구성하며 C:\드라이브는 실행모듈, D:\드라이브는 데이터가 저장되는 조건에서 A.WORKS WorkCenter 를 구성하기 위한 환경설정입니다. C:\드라이브에는 JVM, Erlang, RabbitMQ, MariaDB, WorkCenter 서비스 모듈이 설치되며 D:\드라이브에는 RabbitMQ DB 와 MariaDB 데이터베이스를 저장합니다.
JVM 설치
C:\Program Files\Java
Erlang(RabbitMQ VM) 과 RabbitMQ 설치 (관리자 권한으로 실행)
C:\Program Files\erl-23.1
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9
* 시스템 환경변수 ERLANG_HOME 설정 확인
(1) hosts 정보 등록
C:\Windows\System32\drivers\etc\hosts 파일 확인
127.0.0.1 localhost
(2) 윈도우 시스템 속성 > 환경 변수 > 사용자 계정에서 변수 추가
RabbitMQ의 큐 데이터(DB) 및 로그는 D:\드라이브에 저장하기 위해서 아래와 같이 시스템 환경변수에 RabbitMQ_BASE 를 지정합니다.
(3) NodeName 설정
RabbitMQ DB를 Active, Standby 전환시 복제, 미러링을 위해서 hostname 이 동일해야 db명이 동일하게 생성됩니다. 그러므로 아래와 같이 nodename을 지정합니다.
D:\RabbitMQ\data\rabbitmq-env-conf.bat 파일을 생성 후 아래와 같이 입력합니다.
D:\RabbitMQ\data\rabbitmq-env-conf.bat
SET NODENAME=rabbit@localhost
(4) 서비스 삭제
기존 플러그인을 삭제한 후 윈도우에 등록된 RabbitMQ 서비스를 삭제합니다.
(5) RabbitMQ Management 플러그인 설치
>C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9\sbin>rabbitmq-plugins.bat enable rabbitmq_management
(6) RabbitMQ 서버 시작 및 로그생성 확인
RabbitMQ 로그 기본설정은 C:\Users\{사용자명}\AppData\Roaming\RabbitMQ\log 입니다. 그러나, RABBITMQ_BASE 환경변수 설정 후 RabbitMQ Server 를 시작하면 d:\드라이브에 rabbit@localhost 라는 이름으로 log 파일이 생성되는 것을 확인할 수 있습니다. Foreground 서버 프로세스를 중단합니다.
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9\sbin>rabbitmq-server.bat
Logs: d:/rabbitmq/data/log/rabbit@localhost.log
d:/rabbitmq/data/log/rabbit@localhost_upgrade.log
^C (ctrl+C)
RABBITMQ_BASE 가 지정된 경로에서 디렉토리를 선택하면, plugins 파일, /db와 /log 디렉토리 및 파일이 생성되었음을 확인할 수 있습니다.
볼륨 일련 번호: A8F3-A7C7
d:\rabbitmq\data 디렉터리
2020-12-17 오후 03:46 < DIR> .
2020-12-17 오후 03:46 < DIR> ..
2020-12-17 오후 03:47 < DIR> db
2020-12-17 오후 03:46 23 enabled_plugins
2020-12-15 오후 02:33 < DIR> log
2020-12-15 오전 09:44 29 rabbitmq-env-conf.bat
2개 파일 52 바이트
d:\rabbitmq\data\db 디렉터리
2020-12-17 오후 03:47 < DIR> .
2020-12-17 오후 03:47 < DIR> ..
2020-12-15 오전 11:09 90 rabbit@localhost-feature_flags
2020-12-17 오후 03:50 < DIR> rabbit@localhost-mnesia
2020-12-17 오후 03:47 < DIR> rabbit@localhost-plugins-expand
2020-12-17 오후 03:47 5 rabbit@localhost.pid
2개 파일 95 바이트
d:\rabbitmq\data\log 디렉터리
2020-12-15 오후 02:33 < DIR> .
2020-12-15 오후 02:33 < DIR> ..
2020-12-15 오후 02:33 < DIR> log
2020-12-17 오후 04:57 71,224 rabbit@localhost.log
2020-12-17 오후 03:47 272 rabbit@localhost_upgrade.log
2개 파일 71,496 바이트
3개 디렉터리 113,042,329,600 바이트 남음
(7) RabbitMQ 서비스 등록 및 start
C:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.8.9\\sbin\>rabbitmq-service.bat install
서비스(services.msc) 에서 RabbitMQ 가 등록되었는지를 확인한 후 ‘시작’ 을 눌러RabbitMQ 서버 프로세스를 기동합니다.
서버 1번 노드의 erlang.cookie 파일을 다른 2번 노드의 파일에 내용을 복사하여 일치시킵니다.
C:\Users\사용자명\.erlang.cookie
C:\Windows\System32\config\systemprofile\.erlang.cookie
RabbitMQ Clustering 구성은 하지 않습니다.
Erlang.cookie 값을 수정한 서버 노드의 RabbitMQ 서비스는 재기동을 합니다.
MariaDB을 설치한 후 my.ini파일을 아래와 같이 작성합니다.
%MariaDB_Home%\data>notepad my.ini
innodb_buffer_pool_size=2018M
character-set-server=utf8
max_allowed_packet=100M
lower_case_table_names=2 //table 생성시 대소문자 구분
서비스 (Services.msc) 에서 등록된 MariaDB 서비스를 start 합니다.
MySQL 에 내재되어 있는 HeidSQL 에서 DB에 접속합니다.
도구 > 사용자 관리자 메뉴를 선택 한 후 WorkCenter DB 사용자 계정을 추가 및 접근 권한을 부여합니다.
UPDATE QRTZ_JOB_DETAILS
SET JOB_CLASS_NAME='com.aworks.workcenter.service.message.mail.MailSendJob'
WHERE JOB_CLASS_NAME='com.aworks.workcenter.api.service.message.mail.MailSendJob';
UPDATE QRTZ_JOB_DETAILS
SET JOB_CLASS_NAME='com.aworks.workcenter.service.schedule.quartz.ScheduleWorkJob'
WHERE JOB_CLASS_NAME='com.aworks.workcenter.api.service.schedule.quartz.ScheduleWorkJob';
WorkCenter 는 C:\WorkCenter 폴더에 설치 및 서비스 등록 후 실행합니다.