Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 216172|Yanıt: 69

[Konsol Programı] .NET/C# ActiveMQ işlem örneği [Kaynak kodu]

  [Bağlantıyı kopyala]
Yayınlandı 27.07.2017 13:19:10 | | | |

ActiveMQ ve RabbitMQ hakkında bilgi özeti
http://www.itsvse.com/thread-4659-1-1.html
(Kaynak: Architect_Programmer)

Çünkü projenin bazı verilerin itilmesi ve alınması gerekiyor, veri miktarı nispeten büyük, günde yaklaşık 3 milyon veri

Başlangıçta http post kullanarak veri gönderdim, ancak çok yavaş olduğunu ve gönderme hızının alıcı hızdan çok daha düşük olduğunu fark ettim.

Bu nedenle, uzun bir soket bağlantısı kullanarak veri almak ve itmek istiyorsanız, soket sunucusunu ve istemciyi kendiniz yazabilirsiniz, bir tane zaman kaybı olur ama iyi yapılmayabilir

Son olarak, activemq veri itmek ve almak için kullanılır

İlk olarak, üretici kodu şöyledir:



Tüketici, iki model var:

1: Sıradan abonelik, sürekli "abonelik" gerekmiyor, yani bağlanırken mesaj alabilirsiniz ve bağlanmadan önce mesaj alamazsınız, "CreateConsumer" ile
2: Kalıcı abonelik, bağlandıktan sonra, "CreateDurableConsumer" kullanarak daha önce itilmemiş verileri alabilirsiniz


CreateDurableConsumer'ın tanıtımına bağlantılar:Bağlantı girişi görünür.

Belirtilen konu için zaten mevcut olmayan bir abonelik oluşturun ve o kalıcı abonelikte bir tüketici oluşturun. Bu yöntem, mesaj seçici kullanmadan kalıcı bir abonelik oluşturur ve noLocal değeri yanlıştır.
Uygulama kalıcı bir abonelik kullanır ve uygulama, aktif tüketiciler olmadığı zamanlarda yayımlanan mesajlar da dahil olmak üzere, konuyla ilgili tüm mesajları almalıdır. JMS sağlayıcısı, bu kalıcı aboneliğin kaydını tutar ve ilgili yayıncıdan gelen tüm mesajların, tüketiciye teslim edilene ve bu kalıcı abonelik tarafından süresi dolana kadar saklanmasını garanti eder.

Sürekli abonelikler, abonelikten çıkma yöntemiyle silinene kadar mesajlar biriktirmeye devam eder.

Bu yöntem yalnızca paylaşılmayan kalıcı aboneliklerde kullanılabilir. Bu yöntemle oluşturulan kalıcı abonelikler paylaşılmadan kaldırılır. Bu, aynı anda abonelikte yalnızca bir aktif (yani kapalı olmayan) bir tüketicinin bulunabileceği anlamına gelir. Buradaki "tüketici" terimi, herhangi bir istemcideki TopicSubscriber, MessageConsumer veya JMSConsumer nesnesini ifade eder.

Paylaşılmayan kalıcı abonelik, istemci tarafından belirlenen bir ad ve ayarlanması gereken bir istemci tanımlayıcısı ile tanımlanır. Daha sonra paylaşılmayan kalıcı abonelikte tüketici oluşturmak isteyen uygulamalar aynı istemci tanımlayıcısını kullanmak zorundadır.

Aynı isim ve istemci tanımlayıcıya sahip paylaşılmayan kalıcı bir abonelik zaten mevcutsa, aynı konu, mesaj seçicisi ve noLocal değeri zaten belirtilmişse ve kalıcı abonelikte zaten aktif (yani kapalı değil) bir tüketici yoksa, bu yöntem MessageConsumer'da mevcut bir kalıcı abonelik oluşturur.

Aynı isim ve istemci tanımlayıcıya sahip paylaşılmayan kalıcı bir abonelik zaten varsa ve kalıcı abonelikte zaten aktif (yani kapatılmamış) bir tüketici varsa, JMSException uygulanır.

Zaten aynı isim ve istemci tanımlayıcısına sahip ancak farklı bir konuya sahip paylaşılmayan kalıcı bir abonelik varsa, bir mesaj seçicisi veya noLocal değeri belirlenmişse ve kalıcı abonelikte zaten aktif (yani kapalı değil) bir tüketici yoksa, bu eski aboneliği iptal edip yenisini oluşturmakla eşdeğerdir.

Paylaşılan ve paylaşılmayan kalıcı abonelikler aynı isim ve istemci kimliğine sahip olmayabilir. Aynı isim ve istemci tanımlayıcısına sahip paylaşılan kalıcı abonelik zaten varsa, bir JMSException atılır.

Aynı isim ve clientID ile kalıcı abonelikler ve paylaşılan kalıcı olmayan abonelikler için bir sınır yoktur. Böyle bir abonelik tamamen ayrı olacaktır.

Bu yöntem, karşılık gelen createDurableSubscriber yöntemiyle aynıdır, ancak tüketiciyi temsil etmek için TopicSubscriber yerine MessageConsumer döndürür.

Parametre:
Temalar - Geçici olmayan konu abonelikleri
isim - Bu aboneliği tanımlamak için kullanılan isim
Atış:
InvalidDestinationException - Geçersiz bir konu belirtilmişse.
IllegalStateException - Eğer misafir tanımlayıcısı ayarlanmamışsa
JMSException -
Oturum, dahili bir hata nedeniyle paylaşılmayan kalıcı abonelik ve MessageConsumer oluşturulamazsa
Aynı isim ve istemci tanımlayıcıya sahip paylaşılmayan kalıcı bir abonelik zaten varsa ve tüketici zaten aktifse
Aynı isim ve istemci tanımlayıcısına sahip paylaşılan kalıcı bir abonelik zaten varsa
Sonra:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopic hedefi, dizi adı, dizi seçicisi, bool noLocal);

burada messageSelector mesaj seçicisidir; NoLocal bayrağı varsayılan olarak yanlıştır ve doğru olarak ayarlandığında, kullanıcıların yalnızca kendi bağlantılarıyla yayınlanan mesajları almasını kısıtlar; bu da yalnızca konular için geçerlidir, kuyruklar için değil. İsm, abonelik konusunun benzersiz kimliğidir ve bu parametrenin kalıcı aboneliğe abone olduğunuzda ayarlanması gerekir.

Activemq .net'in paket indirme referansına başvurması gerekiyor:Bağlantı girişi görünür.

Tam kaynak kodu indir:

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt




Puan

Katılımcı sayısı1MB+1 Çökmek sebep
lxc1118 + 1 Çok güçlü!

Tüm puanları gör





Önceki:Activemq kullanıcı izni yapılandırması
Önümüzdeki:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
Yayınlandı 16.01.2018 09:11:47 |
a5192142 2017-10-20 11:46 tarihinde yayınlandı
RE: .net/c# activemq操作示例[源码] [修改]
Gelişmiş mod

Kaynak kodu nasıl okunur?
Yayınlandı 11.12.2019 11:49:26 |
Reçete yöntemi zahmetlidir,
Yayınlandı 20.10.2017 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
Gelişmiş mod
Yayınlandı 16.08.2017 23:54:36 |
M2MQTT kullanıldığında, sertifika hata olarak bildirilir
Yayınlandı 17.08.2017 04:14:37 |
Şimdi MQTT'yi push için nasıl kullanacağımı denemeye başla
Yayınlandı 17.08.2017 15:45:19 |
Bence iyi olmalı
Yayınlandı 29.08.2017 10:40:38 |
Umarım yardımcı olur
Yayınlandı 29.08.2017 13:38:07 |
Umarım işe yarar.
Yayınlandı 14.09.2017 15:15:04 |
Gençken şiir ve kitaplar okurdum, gittiğim her yere giderdim
Yayınlandı 25.09.2017 09:35:22 |
Uzun zamandır arıyorum, umarım bu sefer yardımcı olur, teşekkürler!
Yayınlandı 25.09.2017 09:45:59 |
@小渣渣
     Aksesuar nasıl alınır!
Yayınlandı 29.09.2017 16:35:28 |
Sonuçta ilgimi çekiyorum ve öğrenmek ve öğrenmek için materyaller bulmaya geliyorum
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com