EventBridge, bir ApsaraMQ for RocketMQ konusundaki mesajları yoklar, bunları CloudEvents biçimine dönüştürür ve kural tabanlı yönlendirme için özel bir olay veri yoluna iletir. Yapılandırma tamamlandıktan sonra olayları analiz edebilir, olay izlemelerini görüntüleyebilir ve verileri aşağı akış hedeflerine iletebilirsiniz.
Sınırlamalar
Her olay kaynağı için ayrılmış bir tüketici grubu gereklidir. Mevcut üretim iş yüklerini sunan bir tüketici grubunu yeniden kullanmayın. Her olay kaynağı için benzersiz bir grup kimliği atayın.
Hem RocketMQ 4.x hem de RocketMQ 5.x örnekleri desteklenir. Örneğinizle eşleşen sürümü seçin.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
-
ApsaraMQ for RocketMQ
Gerekli izinlerin bir Resource Access Management (RAM) kullanıcısına verildiği, etkinleştirilmiş bir ApsaraMQ for RocketMQ hizmeti. Daha fazla bilgi için bkz. ApsaraMQ for RocketMQ'yu etkinleştirme ve izin verme
En az bir konu ve bir tüketici grubuna sahip bir ApsaraMQ for RocketMQ örneği. Daha fazla bilgi için bkz. Kaynak oluşturma
-
EventBridge
Gerekli izinlerin bir RAM kullanıcısına verildiği, etkinleştirilmiş bir EventBridge hizmeti. Daha fazla bilgi için bkz. EventBridge'i etkinleştirme ve bir RAM kullanıcısına izin verme
Özel bir olay veri yolu. Daha fazla bilgi için bkz. Özel olay veri yolu oluşturma
RocketMQ olay kaynağı ekleyin
EventBridge konsolu üzerinde oturum açın.
Sol gezinme bölmesinde Event Buses öğesine tıklayın.
Üst gezinme çubuğunda bir bölge seçin.
Event Buses sayfasında hedef olay veri yolunun adına tıklayın.
Sol gezinme bölmesinde Event Sources öğesine tıklayın.
Add Event Source seçeneğine tıklayın.
-
Add Custom Event Source panelinde aşağıdaki parametreleri yapılandırın ve OK seçeneğine tıklayın.
Parametre Zorunlu Açıklama Name Evet Olay kaynağı için bir ad girin. Description Evet Bir açıklama girin. Event Provider Evet ApsaraMQ for RocketMQ seçeneğini belirleyin. Region Evet ApsaraMQ for RocketMQ örneğinizin bulunduğu bölgeyi seçin. Version Evet Örnek sürümünü seçin: RocketMQ 4.x veya RocketMQ 5.x. Instance Evet ApsaraMQ for RocketMQ örneğini seçin. Topic Evet Örnekteki konuyu seçin. Tag Hayır Mesajları filtrelemek için bir etiket girin. Group ID Evet Tüketici grubu kimliğini seçin. Bir grup, belirli bir türdeki iş mesajına karşılık gelir. Diğer uygulamalar veya olay kaynaklarıyla paylaşılmayan, ayrılmış bir grup kullanın. Consumer Offset Evet Mesajların tüketilmeye başlanacağı ofseti seçin. Varsayılan: Latest Offset.
Entegrasyonu doğrulayın
Olay kaynağını oluşturduktan sonra RocketMQ konusuna bir test mesajı yayınlayın ve EventBridge konsolundaki olay izlemesini kontrol edin. Yapılandırma doğruysa mesaj, CloudEvents biçiminde bir olay olarak olay veri yolunda görünür.
Örnek olay
Olay kaynağı oluşturulduktan sonra RocketMQ konusuna yayınlanan mesajlar, aşağıdaki biçimde CloudEvents olarak olay veri yoluna iletilir:
{
"id": "94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source": "acs:mq",
"specversion": "1.0",
"type": "mq:Topic:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mq:cn-hangzhou:123456789098****:MQ_INST_123456789098****_BXhFHryi%TopicName",
"time": "2021-04-08T06:01:20.766Z",
"aliyunpublishtime": "2021-04-08T06:01:20.725Z",
"aliyuneventbusname": "BusName",
"data": {
"topic": "TopicName",
"systemProperties": {
"MIN_OFFSET": "0",
"TRACE_ON": "true",
"MAX_OFFSET": "8",
"MSG_REGION": "cn-hangzhou",
"KEYS": "systemProperties.KEYS",
"CONSUME_START_TIME": 1628577790396,
"UNIQ_KEY": "AC14C305069E1B28CDFA3181CDA2****",
"TAGS": "systemProperties.TAGS",
"INSTANCE_ID": "MQ_INST_123456789098****_BXhFHryi"
},
"userProperties": {},
"body": "TEST"
}
}
CloudEvents zarf alanları (id, source, specversion, type, datacontenttype, subject, time) hakkında daha fazla bilgi için bkz. Olaylara genel bakış.
Veri alanı referansı
data nesnesi aşağıdaki alanları içerir.
| Alan | Tür | Örnek | Açıklama |
|---|---|---|---|
| topic | String | TopicName | RocketMQ konu adı. |
| systemProperties | Map | -- | Sistem düzeyindeki mesaj özellikleri. Aşağıdaki alanlara bakın. |
| systemProperties.MIN_OFFSET | Int | 0 | Kuyruktaki en eski ofset. |
| systemProperties.TRACE_ON | Boolean | true | Mesaj izlemesinin var olup olmadığı. Geçerli değerler: true, false. |
| systemProperties.MAX_OFFSET | Int | 8 | Kuyruktaki en son ofset. |
| systemProperties.MSG_REGION | String | cn-hangzhou | Mesajın gönderildiği bölge. |
| systemProperties.KEYS | String | systemProperties.KEYS | Mesajı filtrelemek için kullanılan anahtarlar. |
| systemProperties.CONSUME_START_TIME | Long | 1628577790396 | Milisaniye cinsinden mesaj tüketiminin başlangıç zamanı. |
| systemProperties.UNIQ_KEY | String | AC14C305069E1B28CDFA3181CDA2**** | Benzersiz mesaj tanımlayıcısı. |
| systemProperties.TAGS | String | systemProperties.TAGS | Mesajı filtrelemek için kullanılan etiketler. |
| systemProperties.INSTANCE_ID | String | MQ_INST_123456789098****_BXhFHryi | ApsaraMQ for RocketMQ örnek kimliği. |
| userProperties | Map | Yok | Mesaja eklenen özel, kullanıcı tanımlı özellikler. |
| body | String | TEST | Mesaj gövdesi. |