Message Queuing (MSMQ)
description
Transcript of Message Queuing (MSMQ)
MSMQ – co to jest?
Co to jest MSMQ? infrastruktura najnowsza wersja: MSMQ 3.0 (.Net Server, XP)
Cechy MSMQ gwarantowane dostarczenie wiadomości, transakcje, bezpieczeństwo (autentykacja, szyfrowanie), wydajne kierowanie ruchem, priorytety, inne: HTTP, triggers, multicast, message lookup, AD
integration, cross-platform, active/active cluster support, Windows CE Client, backup and restore
MSMQ – serwery, klienci
MSMQ Server dostęp do AD, także dla klientów wcześniejszych
wersji: MSMQ 1.0/2.0 (wymagany MSMQ Downlevel Client Support)
obsługa kierowania ruchem wiadomości (routing) wsparcie dla klientów zależnych
MSMQ Client (Independent) mogą pracować bez połączenia (mobility) rozłożenie ruchu (in/out-routing servers) nie można zainstalować „Routing Component” oraz
wsparcia dla klientów MSMQ 1.0/2.0 („Downlevel Client Support”)
MSMQ – serwery, klienci (c.d.)
MSMQ Client (Dependent) wymaga komputera wspierającego: MSMQ Server lub
MSMQ Independent Client nie może wysyłać wiadomości bez połączenia (offline) zalety: mniej do administrowania wady: osłabione szyfrowanie, gorsza wydajność
(RPC, wiele klientów/serwer), kolejki klienta na serwerze, nie może korzystać z transportu HTTP, list dystrybucyjnych, czy wieloczęściowych nazw „Format Names”
MSMQ – kolejki
Kolejki (Queues)publiczne / prywatne (Public/Private Queues)
ComputerName\QueueNameComputerName\Private$\QueueName
transakcyjne / nietransakcyjneadministracyjne (Administration Queues, tylko
nietransakcyjne)kolejki odpowiedzi (Response Queues)kolejki raportowania (Report Queues, tracing)
Label: MQReport QueueGUID: {55EE8F32-CCE9-11CF-B108-0020AFD61CE9}
MSMQ – kolejki (c.d.)
Kolejki (Queues)kolejki systemowe (System Queues):
kolejki kopii (Journal Queues)MACHINE=ComputerGUID;JOURNAL
systemowe kolejki prywatne (Internal Private Queues) i kolejki wysyłające (Outgoing Queues)
kolejki wiadomości niedostarczonych (Dead-letter Queues)
kolejki połączeń (Connector Queues)
MSMQ – nazwy kolejek
Path Names ComputerName\QueueName ComuterName\QueueName\Journal$ ComputerName\Private$\QueueName MachineName\Journal$ MachineName\Deatletter$ MachineName\XactDeatletter$
MSMQ – nazwy kolejek (c.d.)
Format Names Direct Format Names:
DIRECT=ComputerAddress\PublicQueueNameDIRECT=ComputerAddress\PRIVATE$\PrivateQueueNameDIRECT=ComputerAddress\SYSTEM$;SystemQueueNameDIRECT=HTTP://URL_Address/msmq/PublicQueueNameDIRECT=HTTPS://URL_Address/msmq/PublicQueueNameDIRECT=HTTPS://URL_Address/msmq/private$\PrivateQueue
DIRECT=TCP:157.18.3.1\MyPublicQueueDIRECT=OS:elvisp.ms.com\MyPublicQueue
MSMQ – nazwy kolejek (c.d.)
Format Names Public Format Names:
PUBLIC=QueueGUIDPUBLIC=QueueGUID;JOURNAL
PUBLIC=308FB580-1EB2-11CA-923B-08002B1075A7
Private Format Names:PRIVATE=ComputerGUID\QueueNumberPRIVATE=ComputerGUID\QueueNumber;JOURNAL
PRIVATE=ae0c5671-f190-12ce-ae10-00dd0114290f\0000000d
Queue Aliases
MSMQ – Journaling
Target Journalingustawiane dla każdej kolejki niezależnie
Source JournalingPositive Source JournalingNegative Source Journaling (Dead-letter
queues)
MSMQ – wiadomości
Typy wiadomości wiadomości, potwierdzenia, raporty, odpowiedzi
Właściwości wiadomości dłuuuuga lista.... () TTRQ, TTBR (uwaga na wartości domyślne!)
Dostarczanie express messaging vs. recoverable messaging
Wiadomości transakcyjne ACID, exactly once in-order delivery external transactions (DTC, XA-Compliant) internal transactions (single message implicit)
MSMQ – wiadomości (c.d.)
Formatowanie wiadomości XMLMessageFormatter
mq.Formatter = new XmlMessageFormatter (new string[] {”Assembly.ClassName,Assembly”});
mq.Formatter = new XmlMessageFormatter (new Type[] {typeof (ClassName)});
BinaryMessageFormattermq.Formatter = new BinaryMessageFormatter ();
ActiveXMessageFormatter
MSMQ – bezpieczeństwo
Bezpieczeństwoautentykacja (Authentication)
serwerówzapytania do kontrolerów domeny i serwerów MSMQ (Kerberos V5, certyfikaty dla MSMQ 1.0)
wiadomościszyfrowanie (Encryption) 40-bit, 128-bit
(MSMQ 3.0), asymetryczne, symetrycznetylko w czasie transmisji sieciowej
autoryzacja (Access Control)
MSMQ – Queued Components
Queued ComponentsServiced Component (COM+ Services)
GAC, Server, regsvsc.exeasynchronicznyzdalny transakcyjnycallbacks, exceptions, COM+ events
MSMQ - Triggers
Triggers reguły (Rules)
reguły wywoływania akcji (Rule Condition)akcje (Rule Action) – wywołania COM lub EXE
pułapki (Triggers)monitorowana kolejkaaktywne reguły
dla MS Windows 2000/NT dostępne jako osobno instalowany pakiet
MSMQ – aspekty wydajności
express / recoverable mode używaj wielowątkowości bez transakcji / transakcje wewnętrzne /
transakcje zewnętrzne minimalizuj otwieranie i zamykanie kolejek autentykacja i szyfrowanie optymalizuj nagłówek wiadomości (Sender SID
tylko jeśli używasz autentykacji) potwierdzenia (acknowledgment) journalling (recoverable mode!)
MSMQ – aspekty wydajności (c.d.)
optymalizacja fizycznych dysków (storage) odbieraj wiadomości tylko lokalnie unikaj zapytań do MQIS implementuj TTRQ i TTBR stosuj odpowiednią serializację odpowiednio dobierz kontekst użytkownika
(security context) pamiętaj o wielkości liter testuj aplikację z pełnym restartem i offline
MSMQ – co jeszcze?
RoutingInternet Messaging (SRMP)Clusters, NLBCross-platform Messaging
Bibliografia
MS Windows Server 2003 MS Help MSDN: http://msdn.microsoft.com/msmq/
artykuły techniczne, optymalizacja, testy wydajności
Grupy dyskusyjnemicrosoft.public.msmq.programming i inne
MS Visual Studio .Net Documentation MSMQ Administrator’s Guide (MS Windows 2000 online
documentation) http://www.informit.com/
artykuły, „Queued Components”
Visual Basic Programmer’s Guide to the .Net Framework Class Library, SAMS
Miłych kolejek!