IPv4 대 IPv6
Ignite는 IPv4 및 IPv6 지원을 시도하지만 이로 인해 클러스터가 분리되는 문제가 발생할 수 있습니다. IPv6이 필요하지 않은 경우 가능한 해결책은 -Djava.net.preferIPv4Stack=trueJVM 매개 변수 를 설정하여 Ignite를 IPv4로 제한하는 것 입니다.
발견
이 섹션에서는 TCP / IP 프로토콜을 사용하여 검색 메시지를 검사하고 TcpDiscoverySpi클래스 에서 구현되는 기본 검색 메커니즘의 네트워크 매개 변수를 설명합니다 .
다음과 같이 검색 메커니즘의 속성을 변경할 수 있습니다.
다음 표에서는의 가장 중요한 몇 가지 속성을 설명 TcpDiscoverySpi합니다. TcpDiscoverySpi javadoc 에서 전체 속성 목록을 찾을 수 있습니다 .
특성기술기본값
localAddress |
검색에 사용되는 로컬 호스트 IP 주소입니다. |
기본적으로 노드는 찾은 첫 번째 비 루프백 주소를 사용합니다. 사용 가능한 비 루프백 주소가 없으면 java.net.InetAddress.getLocalHost()이 사용됩니다. |
localPort |
노드가 바인딩되는 포트입니다. 기본값이 아닌 값으로 설정하면 다른 클러스터 노드가 노드를 검색 할 수 있으려면이 포트를 알아야합니다. |
47500 |
localPortRange |
(가) 경우 localPort바쁜가 사용 가능한 포트를 찾을 때까지, 노드 시도 (1 씩 증가) 다음 포트로 바인딩하고이 과정을 계속합니다. 이 localPortRange속성은 노드가 시도 할 포트 수를 정의합니다 (에서 시작 localPort). |
100 |
soLinger |
Discovery SPI에서 사용하는 TCP 소켓의 닫을 때 지연 시간 초과를 지정합니다. Socket.setSoLinger이 설정을 조정하는 방법에 대한 자세한 내용 은 Java API를 참조하십시오 . Ignite에서 시간 제한 은 SSL 연결로 잠재적 인 교착 상태 를 방지하기 위해 음수가 아닌 값으로 기본 설정 되지만 부작용으로 클러스터 노드 장애 감지를 연장 할 수 있습니다. 또는 SSL 문제가 수정 된 버전으로 JRE 버전을 업데이트하고 그에 따라이 설정을 조정하십시오. |
0 |
reconnectCount |
노드가 다른 노드에 연결을 시도 (재) 시도하는 횟수입니다. |
10 |
networkTimeout |
네트워크 작업에 대한 최대 네트워크 제한 시간 (밀리 초)입니다. |
5000 |
socketTimeout |
소켓 작업 시간이 초과되었습니다. 이 제한 시간은 연결 시간 및 소켓에 쓰기 시간을 제한하는 데 사용됩니다. |
5000 |
ackTimeout |
검색 메시지에 대한 승인 시간 초과입니다. 이 제한 시간 내에 승인이 수신되지 않으면 감지 SPI는 메시지 재전송을 시도합니다. |
5000 |
joinTimeout |
결합 제한 시간은 노드가 클러스터 결합을 기다리는 시간을 정의합니다. 비공유 IP 파인더가 사용되고 노드가 IP 파인더의 주소에 연결하는 데 실패하면 노드는이 제한 시간 내에 계속 결합을 시도합니다. 모든 주소가 응답하지 않으면 예외가 발생하고 노드가 종료됩니다. 0무기한 대기를 의미합니다. |
0 |
statisticsPrintFrequency |
노드가 검색 통계를 로그에 인쇄하는 빈도를 정의합니다. 0인쇄되지 않음을 나타냅니다. 값이 0보다 크고 조용한 모드가 비활성화 된 경우 통계는 매 기간 한 번씩 INFO 수준에서 인쇄됩니다. |
0 통신노드가 서로를 발견하고 클러스터가 형성되면 노드는 통신 SPI를 통해 메시지를 교환합니다. 메시지는 작업 실행, 데이터 수정 작업, 쿼리 등과 같은 분산 클러스터 작업을 나타냅니다. 통신 SPI의 기본 구현은 TCP / IP 프로토콜을 사용하여 메시지를 교환합니다 ( TcpCommunicationSpi). 이 섹션에서는의 속성에 대해 설명합니다 TcpCommunicationSpi. 각 노드는 다른 노드가 연결하고 메시지를 보내는 로컬 통신 포트와 주소를 엽니 다. 시작시 노드는 지정된 통신 포트 (기본값 : 47100)에 바인딩을 시도합니다. 포트가 이미 사용 된 경우 노드는 사용 가능한 포트를 찾을 때까지 포트 번호를 증가시킵니다. 시도 횟수는 localPortRange속성에 의해 정의됩니다 (기본값 : 100). |
다음은의 몇 가지 중요한 속성 목록입니다 TcpCommunicationSpi. TcpCommunicationSpi javadoc 에서 모든 속성 목록을 찾을 수 있습니다 .
특성기술기본값
localAddress |
바인딩 할 통신 SPI의 로컬 주소입니다. |
|||||||
localPort |
노드가 통신에 사용하는 로컬 포트입니다. |
47100 |
||||||
localPortRange |
노드가 사용 가능한 포트를 찾을 때까지 순차적으로 바인딩하려는 포트 범위입니다. |
100 |
||||||
tcpNoDelay |
TCP_NODELAY소켓 옵션 의 값을 설정합니다 . 승인되거나 생성 된 각 소켓은 제공된 값을 사용합니다. trueTCP를 통한 통신 중 요청 / 응답 시간을 줄이려면 이 옵션을 (기본값) 으로 설정해야합니다 . 대부분의 경우이 옵션을 변경하지 않는 것이 좋습니다. |
true |
||||||
idleConnectionTimeout |
연결이 종료 된 후의 최대 유휴 연결 시간 제한 (밀리 초)입니다. |
600000 |
||||||
usePairedConnections |
노드 간 이중 소켓 연결을 적용해야하는지 여부입니다. 로 설정 true하면 통신 노드간에 두 개의 개별 연결이 설정됩니다. 하나는 발신 메시지 용이고 다른 하나는 수신 메시지 용입니다. 로 설정 false하면 단일 TCP 연결이 양방향으로 사용됩니다. 이 플래그는 메시지를 전달하는 데 너무 오래 걸리는 일부 운영 체제에서 유용합니다. |
false |
||||||
directBuffer |
NIO 힙 할당 버퍼 대신 NIO 직접 버퍼를 할당할지 여부를 나타내는 부울 플래그입니다. 직접 버퍼가 더 잘 수행되지만 경우에 따라 (특히 Windows에서) JVM 충돌을 일으킬 수 있습니다. 환경에서 이런 일이 발생하면이 속성을로 설정하십시오 false. |
true |
||||||
directSendBuffer |
메시지를 보낼 때 NIO 힙 할당 버퍼 대신 NIO 직접 버퍼를 사용할지 여부입니다. |
false |
||||||
socketReceiveBuffer |
통신 SPI에서 생성하거나 수락 한 소켓의 수신 버퍼 크기입니다. 로 설정 0하면 운영 체제의 기본값이 사용됩니다. |
0 |
||||||
socketSendBuffer |
통신 SPI에서 생성하거나 수락 한 소켓의 전송 버퍼 크기입니다. 0운영 체제의 기본값으로 설정하면 사용됩니다. |
0 연결 시간 초과연결 시간 초과를 정의하는 몇 가지 속성이 있습니다. 특성기술기본값
아래 예와 같이 노드 구성에서 실패 감지 제한 시간을 설정할 수 있습니다. 기본값을 사용하면 검색 SPI가 대부분의 온-프레미스 및 컨테이너화 된 배포에서 안정적으로 작동 할 수 있습니다. 그러나 지연 시간이 짧은 안정적인 네트워크에서는 오류를 더 빨리 감지하고 대응하기 위해 매개 변수를 ~ 200 밀리 초로 설정할 수 있습니다. |