>  기사  >  Java  >  JMS Active MQ 메시지 전송(자세한 그래픽 및 텍스트 설명)

JMS Active MQ 메시지 전송(자세한 그래픽 및 텍스트 설명)

怪我咯
怪我咯원래의
2017-06-30 10:47:572176검색

아래 편집자는 JMS Active MQ 메시지 전송에 대한 기사를 가져올 것입니다(자세한 설명). 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집자를 따라가서 살펴보겠습니다

이 글에서는 Active MQ5.6을 사용합니다.

1. 메시지 브로커(Message Broker): 메시지 교환기는 메시지를 관리하는 컨테이너입니다. ActiveMQ는 여러 브로커를 생성할 수 있습니다. 클라이언트가 ActiveMQ와 상호 작용할 때 실제로는 ActiveMQ의 브로커와 상호 작용합니다. 브로커는 ${MQ_HOME}confactivemq.

xml

에 구성됩니다.

2. 커넥터

(1) 전송 커넥터

transportConnectors 커넥터: 브로커, 메시지 생산자 및 메시지 소비자 간의 상호 작용을 설정합니다.

전송 커넥터에 일반적으로 사용되는 프로토콜:

Active MQ에서 일반적으로 사용되는 연결 프로토콜: tcp, udp, nio, ssl, http, https, vm. SSL 프로토콜을 사용하는 경우 인증서를 구성해야 합니다. http 또는 https를 사용하는 경우 메시지를 보내고 받으려면 httpclient를 사용해야 합니다.

(1)TCP 기본 프로토콜

tcp://hostname:port?key=value&key=value 다음 매개변수는 선택사항입니다.TCP 프로토콜 사용의 이점

효율적: 이 프로토콜 연결은 OpenWire 프로토콜은 메시지를 바이트 스트림으로 변환하여 성능이 매우 좋습니다가용성: TCP는 기본적으로 모든 플랫폼에서 지원되는 매우 널리 사용되는 네트워크 프로토콜입니다.

TCP 구성 예 conf/activemq.xml:

    <transportConnectors>
      <!--activemq 的默认连接 tcp-->
      <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
    </transportConnectors>

( 2) NIO

a. NIO 프로토콜은 TCP 프로토콜과 유사하지만 NIO는 기본 액세스 작업에 더 중점을 둡니다. 이를 통해 개발자는 동일한 리소스에 대해 더 많은 클라이언트 호출과 서버 부하를 더 많이 가질 수 있습니다. b. NIO 프로토콜 사용에 적합한 시나리오: 브로커에 연결하는 클라이언트 수는 일반적으로 운영 체제의 스레드 수에 따라 제한됩니다. 따라서 NIO 구현에는 TCP보다 더 적은 수의 스레드가 필요하므로 NIO 프로토콜을 사용하는 것이 좋습니다

브로커의 경우 네트워크 전송 속도가 매우 느릴 수 있습니다. NIO는 TCP

c보다 더 나은 성능을 제공합니다. NIO 연결: nio://hostname:port?key=value 다음 매개변수는 선택 사항입니다.

d, NIO 구성 예 conf/activemq.xml:

<transportConnectors>
      <!-- 设置一个NIO的连接-->
      <transportConnector name="nio" uri="nio://0.0.0.0:61617"/>
    </transportConnectors>

(3), UDP

a, 차이점 UDP와 TCP 사이 TCP는 원시 스트림 전달 프로토콜입니다. 즉, 데이터 패킷이 보장됩니다. 즉, 데이터 패킷이 복사되거나 손실되지 않습니다. 반면 UDP는 데이터 패킷 전달을 보장하지 않습니다.TCP는 안정적이고 신뢰할 수 있는 데이터 패킷 전달 프로토콜이므로 전달 중에 데이터가 손실되지 않습니다. 이를 통해 발신자와 수신자 간의 안정적인 통신이 보장됩니다. 반대로 UDP는 링크 프로토콜일 뿐이므로 신뢰성이 없습니다.

TCP는 안정적이고 신뢰할 수 있는 시나리오에서 사용되며 UDP는 일반적으로 빠른 데이터 전송이 데이터 손실을 두려워하지 않는 시나리오에서 사용되며 ActiveMQ는 다음을 통해 사용됩니다. 방화벽을 사용하면 UDP 연결의 URI 형식인 UDP

b만 사용할 수 있습니다: udp://hostname:port?key=value

c, 구성 인스턴스 conf/activemq.xml

<transportConnectors>
  <transportConnector name="udp" uri="udp://localhost:61618"/>
</transportConnectors>

(4 ), SSL

하위 계층은 TCP 프로토콜이지만 전송되는 데이터는 암호화됩니다a 적용 가능한 시나리오: MQ는 외부 네트워크에 노출되며 클라이언트와 브로커 간의 통신이 필요합니다b. 단계:

b-1, SSL 프로토콜 생성:

b-2, 브로커 SSL 프로토콜 구성 conf/activemq.xml:

 <sslContext>
  <sslContext keyStore="F:/beifeng/apache-activemq-5.6.0/conf/mybroker.ks"
   keyStorePassword="test123" />
</sslContext>

b-3, 클라이언트 SSL 프로토콜 구성:

c, URI 형식 SSL 연결: ssl:/ /hostname:port?key=value

d, 인스턴스 conf/activemq.xml

<transportConnectors>
   <transportConnector name="ssl" uri="ssl://localhost:61619"/>
 </transportConnectors>

구성 (5) HTTP, HTTPS

a, jetty를 통해 http 프로토콜의 mq 메시지 수신 컨테이너b, 기본 HTTP 서비스만 통과하도록 허용하는 네트워크 환경의 경우c. httpclient를 통해 메시지를 보내고 받으려면 추가 Java 패키지 Httpclient, Xstream, activemq-ional

d, URI: http를 추가해야 합니다. ://hostname:port? key=value

e, 구성 인스턴스 conf/activemq.xml:

<transportConnectors>
  <transportConnector name="http" uri="http://localhost:8080"/>
</transportConnectors>

HTTPS를 구성하려면 jetty.xml에 해당 인증서를 구성해야 합니다. HTTPS= HTTP+SSL


(2.) 네트워크 커넥터( NetWorkConnectors)

NetWorkConnectors: 주로 ActiveMq 클러스터를 배포할 때 Broke와 Broke 간의 상호 작용에 사용됩니다.

JMS Active MQ 메시지 전송에 관한 위 글(자세한 설명)은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. Script Home에 많은 지원 부탁드립니다.

위 내용은 JMS Active MQ 메시지 전송(자세한 그래픽 및 텍스트 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.