이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 216172|회답: 69

[콘솔 프로그램] .NET/C# ActiveMQ 연산 예시 [소스 코드]

  [링크 복사]
게시됨 2017. 7. 27. 오후 1:19:10 | | | |

ActiveMQ와 RabbitMQ에 대한 정보 요약
http://www.itsvse.com/thread-4659-1-1.html
(출처: Architect_Programmer)

프로젝트가 데이터를 전달하고 수신해야 하기 때문에, 데이터의 양이 비교적 많아 하루에 약 300만 개의 데이터가 처리됩니다

처음에는 http post로 데이터를 제출했지만, 너무 느리고 전송 속도가 수신 속도보다 훨씬 느렸습니다.

따라서 긴 소켓 연결을 사용해 데이터를 푸시하고 수신하고, 소켓 서버와 클라이언트를 직접 작성하려면 시간 낭비이지만, 잘 구현되지 않을 수도 있습니다

마지막으로, activemq는 데이터를 푸시하고 수신하는 데 사용됩니다

첫째, 생산자 코드는 다음과 같습니다:



소비자 입장에서는 두 가지 모델이 있습니다:

1: 일반 구독, 지속적인 '구독'이 필요 없음, 즉 연결 시 메시지를 받을 수 있고, 연결 전에는 메시지를 받을 수 없습니다. "CreateConsumer"를 사용해
2: 지속 구독, 연결 후 "CreateDurableConsumer"를 사용해 이전에 푸시되지 않은 데이터를 받을 수 있습니다.


CreateDurableConsumer 도입 링크:하이퍼링크 로그인이 보입니다.

지정된 주제에 대해 비공유 영구 구독을 생성하고, 그 영구 구독에 소비자를 생성하세요. 이 방법은 메시지 선택기를 사용하지 않고 영구 구독을 생성하며, noLocal 값은 false입니다.
애플리케이션은 영구 구독을 사용하며, 해당 주제에 대해 게시된 모든 메시지를 받아야 하며, 활성 소비자가 없을 때 게시된 메시지도 포함합니다. JMS 제공업체는 이 지속 구독 기록을 보관하며, 해당 발행사로부터 온 모든 메시지가 소비자에게 전달될 때까지 보관되고 해당 구독이 만료될 때까지 확인되도록 보장합니다.

지속적인 구독은 메시지를 계속 누적하다가 구독 취소 방법으로 삭제됩니다.

이 방법은 비공유 영구 구독에서만 사용할 수 있습니다. 이 방법으로 생성된 영구 구독은 공유 해제됩니다. 즉, 한 번에 한 명의 활성 소비자(즉, 닫히지 않은) 소비자만 구독에 존재할 수 있습니다. 여기서 "consumer"라는 용어는 모든 클라이언트에서 TopicSubscriber, MessageConsumer, 또는 JMSConsumer 객체를 의미합니다.

비공유 영구 구독은 클라이언트가 지정한 이름과 설정해야 하는 클라이언트 식별자로 식별됩니다. 비공유 영구 구독에서 소비자를 생성하려는 애플리케이션은 동일한 클라이언트 식별자를 사용해야 합니다.

동일한 이름과 클라이언트 식별자를 가진 공유 되지 않은 영구 구독이 이미 존재하고, 동일한 주제, 메시지 선택기, noLocal 값이 지정되어 있으며, 해당 영구 구독에 활성 상태(즉, 닫히지 않은 상태)가 없다면, 이 방법은 MessageConsumer에 기존 지속 구독을 생성합니다.

동일한 이름과 클라이언트 식별자를 가진 비공유 영구 구독이 이미 존재하고, 해당 영구 구독에 이미 활성 상태(즉, 닫히지 않은 상태)의 소비자가 있으면 JMSException이 실행됩니다.

이미 동일한 이름과 클라이언트 식별자이지만 주제가 다른 비공유 영구 구독이 있고, 메시지 선택기 또는 noLocal 값이 지정되어 있으며, 영구 구독에 아직 활성 상태(즉, 닫히지 않은 상태)가 없다면, 이는 기존 구독을 취소(삭제)하고 새 구독을 생성하는 것과 동일합니다.

공유 구독과 비공유 영구 구독은 이름과 클라이언트 신원이 다를 수 있습니다. 동일한 이름과 클라이언트 식별자를 가진 공유 영구 구독이 이미 존재한다면, JMSException이 실행됩니다.

동일한 이름과 clientID를 가진 영구 구독과 공유 비영구 구독에 제한이 없습니다. 이러한 구독은 완전히 별도로 제공됩니다.

이 메서드는 해당 메서드인 createDurableSubscriber 메서드와 동일하지만, 소비자를 나타내기 위해 TopicSubscriber 대신 MessageConsumer 반환합니다.

매개 변수:
주제 - 비임시 주제 구독
이름 - 이 구독을 식별하는 데 사용된 이름
던지기:
InvalidDestinationException - 잘못된 주제가 지정된 경우.
IllegalStateException - 게스트 식별자가 설정되어 있지 않을 경우
JMSException -
세션이 내부 오류로 인해 비공유 영구 구독과 MessageConsumer 생성에 실패할 경우
동일한 이름과 클라이언트 식별자를 가진 비공유 영구 구독이 이미 존재하고, 소비자가 이미 활성화되어 있다면
동일한 이름과 클라이언트 식별자를 가진 공유 영구 구독이 이미 존재한다면
이후:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal);

여기서 messageSelector는 메시지 선택기입니다; noLocal 플래그는 기본적으로 false이며, true로 설정하면 소비자가 자신과 동일한 연결로 게시된 메시지만 수신할 수 없게 제한되며, 이는 대기열에는 적용되지 않고 주제에만 적용됩니다. 이름은 구독 주제의 고유 식별이며, 이 매개변수는 영구 구독 시 설정되어야 합니다.

Activemq .net은 패키지 다운로드를 참조해야 합니다:하이퍼링크 로그인이 보입니다.

전체 소스 코드 다운로드:

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답




점수

참가자 수1MB+1 무너지다 이유
LXC1118 + 1 정말 강력해!

모든 평점 보기





이전의:Activemq 사용자 권한 구성
다음:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
게시됨 2018. 1. 16. 오전 9:11:47 |
a5192142 2017-10-20 11:46에 게시됨
RE: .net/c# activemq操作示例[源码] [修改]
고급 모드

소스 코드 읽는 방법
게시됨 2019. 12. 11. 오전 11:49:26 |
처방 방식이 까다롭습니다.
게시됨 2017. 10. 20. 오전 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
고급 모드
게시됨 2017. 8. 16. 오후 11:54:36 |
M2MQTT를 사용할 때는 인증서가 오류로 보고됩니다
게시됨 2017. 8. 17. 오전 4:14:37 |
이제 MQTT를 푸시에 어떻게 활용하는지 실험을 시작하세요
게시됨 2017. 8. 17. 오후 3:45:19 |
괜찮을 거라고 생각해요
게시됨 2017. 8. 29. 오전 10:40:38 |
도움이 되었길 바랍니다
게시됨 2017. 8. 29. 오후 1:38:07 |
잘 되길 바랄게요
게시됨 2017. 9. 14. 오후 3:15:04 |
어렸을 때 저는 시와 책을 읽었고, 가는 곳마다 다녔습니다
게시됨 2017. 9. 25. 오전 9:35:22 |
오랫동안 찾아봤는데, 이번에는 도움이 되길 바랍니다, 감사합니다!
게시됨 2017. 9. 25. 오전 9:45:59 |
@小渣渣
     액세서리 구매 방법!
게시됨 2017. 9. 29. 오후 4:35:28 |
결국 저는 관심이 있고, 배우고 배우기 위한 자료를 찾으러 오기 때문입니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com