>  기사  >  Java  >  JMS 활성 MQ 메시지 전송

JMS 활성 MQ 메시지 전송

巴扎黑
巴扎黑원래의
2017-06-26 11:38:451510검색

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

1. 메시지 브로커

broke: 메시지 교환기는 메시지를 관리하는 컨테이너입니다. 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 프로토콜 사용의 이점

  • 효율적: 이 프로토콜 연결은 메시지를 바이트 스트림으로 변환하여 성능이 매우 좋습니다. 유용성: TCP는 기본적으로 모든 플랫폼에서 이를 지원합니다. conf/activemq .xml:

  • (2), NIO

a, NIO 프로토콜은 TCP 프로토콜과 유사하지만 NIO는 기본 액세스 작업에 더 중점을 둡니다. 이를 통해 개발자는 동일한 리소스에 대해 더 많은 클라이언트 호출과 서버 부하를 더 많이 가질 수 있습니다.

b. NIO 프로토콜 사용에 적합한 시나리오:

브로커에 연결되는 클라이언트 수가 많을 수 있습니다. 일반적으로 브로커에 연결하는 클라이언트 수는 운영 체제의 스레드 수에 따라 제한됩니다. 따라서 NIO 구현에는 TCP보다 더 적은 수의 스레드가 필요하므로 NIO 프로토콜을 사용하는 것이 좋습니다. NIO는 NIO URI 형식보다 네트워크 전송 속도가 매우 느릴 수 있습니다. 연결: nio: //hostname:port?key=value 다음 매개변수는 선택사항입니다.
d, NIO 구성 예 conf/activemq.xml:

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

(3), UDP



a. UDP와 TCP의 차이점

TCP는 원시 스트림 전달 프로토콜입니다. 즉, 데이터 패킷이 보장됩니다. 즉, 데이터 패킷이 복사되거나 손실되지 않습니다. 반면 UDP는 데이터 패킷 전달을 보장하지 않습니다.

TCP는 안정적이고 신뢰할 수 있는 데이터 패킷 전달 프로토콜이므로 전달 과정에서 데이터가 손실되지 않습니다. 이를 통해 발신자와 수신자 간의 안정적인 통신이 보장됩니다. 반대로 UDP는 링크 프로토콜일 뿐이므로 신뢰성이 없습니다.

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

  • 만 사용할 수 있습니다. b. UDP 연결의 URI 형식: udp://hostname:port?key=value

  • c. 구성 예 conf/activemq.xml
  •          <transportConnectors><!-- 设置一个NIO的连接--><transportConnector name="nio" uri="nio://0.0.0.0:61617"/></transportConnectors>
  • (4) SSL

하위 계층은 TCP 프로토콜이지만 전송되는 데이터는 암호화됩니다

a 적용 가능한 시나리오: MQ는 외부 네트워크에 노출되어 클라이언트와 브로커 간의 통신이 필요합니다

b. :
 b- 1. SSL 프로토콜 생성:
b-2. Broker SSL 프로토콜 구성 conf/activemq.xml:

        <transportConnectors><transportConnector name="udp" uri="udp://localhost:61618"/></transportConnectors>
b-3. 클라이언트 SSL 프로토콜 구성:


c. 연결: ssl://hostname:port?key=value


d, 구성 예 conf/activemq.xml

       <sslContext><sslContext keyStore="F:/beifeng/apache-activemq-5.6.0/conf/mybroker.ks"  keyStorePassword="test123" />   </sslContext>
(5) HTTP, HTTPS

a, 부두 컨테이너를 통해 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="ssl" uri="ssl://localhost:61619"/></transportConnectors>
HTTPS를 구성하려면 jetty.xml에서 관련 인증서를 구성해야 합니다. HTTPS= HTTP+SSL

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


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

위 내용은 JMS 활성 MQ 메시지 전송의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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