Python STOMP를 사용하여 ActiveMQ에 연결
5015 단어 activemqpythonprogrammingstomp
예를 들어, 마이크로서비스 아키텍처로 구축되고 서로 다른 프로그래밍 언어로 작성된 대규모 애플리케이션은 통신이 자주 이루어지지만 오프라인 서비스가 메시지 손실을 일으키지 않아야 합니다.
ActiveMQ의 작동:
ActiveMQ에는 두 개의 엔드포인트가 있습니다.
ActiveMQ는 큐 또는 토픽의 형태로 메시지를 저장합니다.
대기열: 메시지가 단일 소비자에게 전송되고 소비자가 사용할 수 없는 경우 소비자가 메시지를 수신할 수 있을 때까지 activemq에 의해 보류됩니다.
주제: 특정 주제에 관심이 있는 모든 구독자에게 메시지 사본이 전송됩니다. 사용할 수 없는 소비자는 과거 메시지를 받지 않습니다.
이제 이 소비자 코드를 만들고 Python에서 ActiveMQ 주제를 구독하는 방법을 살펴보겠습니다.
Python은 STOMP 프로토콜을 사용하여 모든 유형의 메시지 브로커와 연결하기 위해 stomp.py라는 클라이언트 라이브러리를 제공합니다.
1단계: 사용 가능한 최신 버전의 스톰프를 설치합니다.
pip install stomp.py
2단계: 소비자 스크립트.
import stomp
#Establish a connection
con = stomp.StompConnection([(‘Host’,port)])
#listener class to be instantiated.
listener = MsgListener()
con.set_listener(‘name_of_listener’, listener)
#wait will ensure it waits till connection is established and acknowledged.
con.connect(‘usernanme’, ‘password’, wait=True)
#subscribe to a particular topic or queue by giving the path and headers if required by the server.
con.subscribe(‘topic/path’, headers={})
3단계: 처리를 위한 리스너 클래스.
Class MsgListener(stomp.ConnectionListener):
def __init__(self):
# to keep the count of messages received
self.msg_recieved = 0
def on_error(self, message):
logger.error(‘received an error “%s”’ %message)
def on_message(self, message):
message = json.loads(message)
self.msg_received +=1
# add your logic based on the message received here
con.subscribe
가 주제에 대해 수행되는 경우 게시된 메시지는 메시지가 게시된 시점에 활성 구독이 있는 모든 구독자에게 전달됩니다.반면에 대기열인 경우 한 명의 소비자만 하나의 메시지를 받습니다. 메시지는 사용 가능한 소비자 간에 로드 밸런싱됩니다.
Reference
이 문제에 관하여(Python STOMP를 사용하여 ActiveMQ에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/manishanaidu/connect-to-activemq-using-python-stomp-mdj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)