ClusterMasterService.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.sig.comm.server.cluster;
  2. import com.its.common.cluster.service.AbstractClusterMasterService;
  3. import com.its.common.cluster.vo.ClusterMessage;
  4. import com.its.common.cluster.vo.ClusterMessageData;
  5. import com.sig.comm.server.cluster.dto.ClusterNodeDto;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.stereotype.Service;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. @Slf4j
  11. @Service
  12. public class ClusterMasterService extends AbstractClusterMasterService {
  13. private final int clusterId;
  14. public ClusterMasterService(ClusterConfig clusterConfig) {
  15. super(clusterConfig);
  16. this.clusterId = clusterConfig.getId();
  17. }
  18. @Override
  19. public void election(int clusterId, boolean isMaster, boolean isMasterChanged) {
  20. if (isMasterChanged) {
  21. log.info("ClusterMasterService:election: master state changed: clusterId: {}, master: {}", clusterId, isMaster);
  22. }
  23. }
  24. @Override
  25. public void onClusterMessage(ClusterMessage message) {
  26. // 슬래이브로 부터 수신되는 메시지 처리
  27. List<ClusterNodeDto> infos = new ArrayList<>();
  28. for (ClusterMessageData info : message.getInfos()) {
  29. if (info instanceof ClusterNodeDto) {
  30. infos.add((ClusterNodeDto)info);
  31. }
  32. }
  33. // log.info("onClusterMessage: nodeId = {}, master = {}, serverTime = {}, infos = {} EA.",
  34. // message.getNodeId(), message.isMaster(), message.getServerTime(), infos.size());
  35. // for (ClusterNodeDto center : infos) {
  36. // CenterDto centerDto = ApplicationRepository.CENTER_MAP.get(center.getCenterId());
  37. // if (centerDto == null) {
  38. // continue;
  39. // }
  40. // // 서버 모드이기 때문에 클러스터의 연결정보를 확인하고 메모리를 업데이트 한다.
  41. // }
  42. }
  43. }