Windows Azure újdonságok – Service Bus I.

Ahogy korábban olvasóinknak ígértük, igyekszünk folyamatosan frissíteni a blogot a könyv megjelenése után bejelentett Azure frissítésekkel és új szolgáltatásokkal, amik bizonyos időközönként bekerülnek majd a könyv elektronikus kiadásaiba is. Ezúttal a Service Bus újdonságokat mutatjuk be egy több részes sorozatban:

A Windows Azure SDK 2.0-s változata több újdonságot is hozott a közvetített üzenetek továbbítását megvalósító üzenetsorok és feliratkozások kezelésében, és egyúttal bemutatkozott az esemény-vezérelt programozási modell is. A főbb újdonságok az alábbi témakörökbe csoportosíthatóak:

  • Újdonságok az üzenetsorok és feliratkozások kezelésében
  • Eseményvezérelt programozási modell
  • Task alapú aszinkron API
  • Shared Access Signature (SAS) autentikáció

Üzenettovábbító entitások lekérdezése

A szolgáltatás névtérben létrehozott üzenetsorok és feliratkozások végpontjait együttesen üzenettovábbító entitásoknak (Messaging Entities) nevezzük. Adott névtérben az általad létrehozott entitásoknak egyedi útvonallal kell rendelkezniük. Komplex megoldások esetén könnyen előfordulhat, hogy már nem olyan egyszerű ezek követése, nyilvántartása. Már az Azure SDK 2012 októberi változatában elérhetővé vált számodra, hogy szabványos, ODATA protokollnak megfelelő formátumban, lekérdezd a témákat, üzenetsorokat és feliratkozásokat.

Az ODATA protokollról a http://www.odata.org oldalon olvashatsz bővebben!

var connectionString = CloudConfigurationManager.GetSetting(
 "Microsoft.ServiceBus.ConnectionString");
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
// példa uri
// $Resources/Queues/?$filter=startswith(path, 'test')+eq+true&api-version=2012-08
var queueDescriptions = namespaceManager.GetQueues("startswith(path, 'test') eq true");
foreach (QueueDescription queueDescription in queueDescriptions)
{
 Trace.WriteLine("queue : {0}", queueDescription.Path);
}

A NamespaceManager osztály GetQueues, GetTopics, GetSubscriptions és GetRules metódusait használhatod lekérdezésre. Lehetőséged van szűrni az üzenetek számára, az utolsó elérés dátumára vagy az útvonalra.

Küldés és fogadás tiltása

Minden üzenetküldő entitás esetén engedélyezhető az üzenetek fogadása és továbbítása. Ezt a legfőképp diagnosztikai és menedzsment célokra alkalmas opciót az EntityDescription osztály leszármazottjainak Status tulajdonságán keresztül érheted el. A tulajdonság típusát az EntityStatus felsorolás definiálja:

EntityStatus Leírás
Active Üzenetek küldése és fogadása is engedélyezett
Disabled Az adott entitás le van tiltva
ReceiveDisabled Ha üzenetet próbálsz olvasni olyan sorból vagy feliratkozásból amelynek a státusza ReceiveDisabled, az MessagingEntityDisabledException kivételt fog eredményezni
SendDisabled Ha üzenet küldesz olyan sorba vagy témára, amelynek státusza SendDisabled, az MessagingEntityDisabledException kivételt eredményez
Restoring Az entitás állapota az előző állapotra tér vissza.

Az üzenetküldő entitások állapotának megváltoztatását az alábbi példa szerint teheted meg:


var queueDescription = namespaceManager.GetQueue("testQueue");
if(queueDescription.Status == EntityStatus.Active)
 queueDescription.Status = EntityStatus.Disabled;
namespaceManager.UpdateQueue(queueDescription);

Üzenetek és munkamenetek tallózása

Hibakeresési és naplózási célokból rendkívül hasznos új lehetőség az üzenetsorokban álló üzenetek tallózása és megtekintése, anélkül hogy az üzenetek zárolódnának vagy törlődnének a sorból. A QueueClient osztály Peek metódusával lehetőséged van vagy a sor elején lévő, vagy a sor elejétől számított n-edik üzenet kiolvasására. A PeekBatch metódus segítségével pedig kötegelten olvashatod ki az üzeneteket. Nézzünk rá egy-egy példát!


var messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
var queueClient = messagingFactory.CreateQueueClient("testQueue");
var message = queueClient.Peek();
var messages = queueClient.PeekBatch(messageCount: 10);

Természetesen, ha az egymással korreláló üzeneteket munkamenetekbe szervezed, lehetőséged van a munkamenetek (session) tallózására is:

Az üzenetsorok mellett a feliratkozások is értelmezik a fentebbi műveleteket, melyek felhasználásával egyszerű és hatékony diagnosztikai megoldásokat implementálhatsz.

Ezeket az újdonságokat Te is kipróbálhatod! Regisztrálj az ingyenes, 90 napos Azure előfizetésre!

Holnap folytatjuk!

6 thoughts on “Windows Azure újdonságok – Service Bus I.

  1. Visszajelzés: Windows Azure újdonságok – Service Bus II. | Felhők között

  2. Visszajelzés: Windows Azure újdonságok – Service Bus II. - A magyar Windows Azure közösség blogja - devPortal

  3. Visszajelzés: Windows Azure újdonságok – Service Bus III. | Felhők között

  4. Visszajelzés: Windows Azure újdonságok – Service Bus III. - A magyar Windows Azure közösség blogja - devPortal

  5. Visszajelzés: Windows Azure újdonságok – Service Bus IV. | Felhők között

  6. Visszajelzés: Windows Azure újdonságok – Service Bus IV. - A magyar Windows Azure közösség blogja - devPortal

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s