第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

無(wú)法使用 RabbitMQ (RPC) 和 Apache Camel 進(jìn)行簡(jiǎn)單的請(qǐng)求

無(wú)法使用 RabbitMQ (RPC) 和 Apache Camel 進(jìn)行簡(jiǎn)單的請(qǐng)求

Go
慕姐4208626 2023-03-07 17:04:22
我希望你一切都好!首先,我是 EIP 世界的新手。我正在嘗試做一個(gè)簡(jiǎn)單的請(qǐng)求回復(fù):一個(gè) Golang rabbitMQ 客戶端Kotlin 中的 apache Camel 路由充當(dāng) RabbitMQ 服務(wù)器我試圖閱讀所有可能的文檔并搜索答案,但我什么也沒找到。我基本上是絕望的。主要是我看到了這個(gè),但還沒有任何效果。我的目標(biāo)是像圖像一樣進(jìn)行同步請(qǐng)求-回復(fù)。我的 Golang 客戶端如下所示:func (r *RabbitMQConn) GetQueue(name string) *amqp.Queue {    ch := r.GetChannel()    defer ch.Close()    q, err := ch.QueueDeclare(        name,        false,        false,        true,        false,        nil,    )    if err != nil {        panic(err)    }    return &q}func (r *RabbitMQConn) PublishAndWait(routingKey string, correlationId string, event domain.SyncEventExtSend) (domain.SyncEventExtReceive, error) {    message, err := json.Marshal(event)    if err != nil {        return domain.SyncEventExtReceive{}, apperrors.ErrInternal    }    ch := r.GetChannel()    defer ch.Close()    q := r.GetQueue("response")    h, err := ch.Consume(        q.Name,        "",        true,        false,        false,        false,        nil,    )    if err != nil {        return domain.SyncEventExtReceive{}, err    }    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)    defer cancel()    err = ch.PublishWithContext(        ctx,        "",        routingKey,        false,        false,        amqp.Publishing{            ContentType:   "application/json",            Body:          message,            CorrelationId: correlationId,            ReplyTo:       q.Name,        },    )    if err != nil {        return domain.SyncEventExtReceive{}, err    }    for d := range h {        fmt.Println("Received a message:", string(d.Body))        if d.CorrelationId == correlationId {            var event domain.SyncEventExtReceive            err = json.Unmarshal(d.Body, &event)            return event, err        }    }    return domain.SyncEventExtReceive{}, apperrors.ErrInternal}基本上,只是使用命名響應(yīng)隊(duì)列從默認(rèn)交換中消費(fèi)。此外,我將隊(duì)列名稱作為ReplyTo參數(shù)發(fā)送,并為其提供相關(guān) ID。發(fā)送的路由密鑰是daily-weather在這種情況下。我問是否有人有任何簡(jiǎn)單的例子可以用 Apache Camel 做到這一點(diǎn),因?yàn)槲曳浅C悦!H绻c我聯(lián)系,可以分享任何進(jìn)一步的細(xì)節(jié)。
查看完整描述

1 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

解決了

你好!一段時(shí)間后,我決定看一下spring-rabbitmq Camel 組件。我意識(shí)到 Camel 有exchange patterns,而 rabbitmq 默認(rèn)設(shè)置為inOut. 這樣,自動(dòng)將信息返回給屬性replyTo。

  val RABBIMQ_ROUTE =
      "spring-rabbitmq:default?queues={{rabbitmq.weather.daily.routing_key}}"

default指的是默認(rèn)交換隊(duì)列。


查看完整回答
反對(duì) 回復(fù) 2023-03-07
  • 1 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)