簡體   English   中英

io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED 同時從谷歌雲 PubSub 獲取主題(發布者)名稱

[英]io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED while getting the topic(publisher) name from Google cloud PubSub

我們的應用程序使用 Google PubSub(Publisher-Subscriber) 進行跨服務的異步通信。 在應用程序中的一項服務中,它檢查主題(發布者)名稱是否存在於 PubSub 中。 如果它在 PubSub 中不存在,則該服務具有在重新啟動時創建主題(發布者)名稱的邏輯,否則它會記錄主題(發布者)名稱已存在於 Google PubSub 中的消息。

問題描述:

  • 在其中 JSON 存儲在文件中並上傳到 AWS S3 的服務中構建了一項新功能。
  • 作為該功能的一部分,需要將 AWS S3 依賴項添加到 Gradle 文件中。
  • 在 Gradle 啟用 AWS S3 依賴項后,PubSub 在獲取主題名稱(已存在於 PubSub)時遇到問題,並引發異常"io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED" 此外,服務無法將消息發布到引發異常"java.util.concurrent.TimeoutException"的主題。
  • 在 Gradle 禁用 AWS S3 依賴項后,PubSub 能夠獲取主題(發布者)名稱,並且能夠將消息發布到主題也按預期工作。

概括:

  • 在 Gradle 禁用 AWS s3,PubSub 正在按預期工作。
  • 在 Gradle 啟用 AWS s3,PubSub 拋出異常。
// Reading the PubSub Configurations from file
File file = new File(ServiceConfigJson.PUBSUB_CONFIG_FILE_PATH); 
InputStream stream = new FileInputStream(file);

// Authenticating and Checking whether topic name exists or not 
AuthCredentials.ServiceAccountAuthCredentials auth = AuthCredentials.createForJson(stream);
pubsub = PubSubOptions.builder().projectId("anna-us").authCredentials(auth).build().service();
Topic pubSubTopic = pubsub.getTopic(topicName);

if (pubSubTopic == null)
{
   // Creates the new topic
   Topic topic = pubsub.create(TopicInfo.of(topicName));
   logger.debug("PubSubTopic with topic name {} created", topic.name());
}
else
{
   logger.info("PubSubTopic with topic name {} already exists", topicName);
}

如果有人可以對此提供見解,那將有很大幫助。

使用的版本:

compile group: 'com.google.cloud', name: 'google-cloud-pubsub', version: '0.4.0'
compile group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.931'

我已經改變了我對 Gradle 的依賴,只為 AWS S3 添加了一個庫,而不是整個 AWS SDK。

compile group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.931' compile group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.934'

更改此設置后,PubSub 開始對我正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM