java - 如何检查AWS SQS连接空闲时间

标签 java amazon-web-services

事情是这样的, 我正在创建 SQS 连接。我使用相同的连接来创建消费者来监听两个不同的队列(Q1、Q2)。

启用和禁用队列由应用程序的管理员用户通过 UI 处理。

因此,每当我禁用 Q1 消费者时,我不应该关闭连接,并且仅当 Q1 和 Q2 消费者都被禁用时才关闭连接,我无法编写复杂的代码来检查两个消费者是否都被禁用。

  1. 有没有办法检查打开的 SQSConnection 的空闲时间。

  • 我想知道保持 SQSConnection 始终打开的成本
  • 打开两个不同的连接怎么样
  • 这是我创建连接的方式

    SQSConnectionFactory connectionFactory = new SQSConnectionFactory(
                new ProviderConfiguration(), ((AmazonSQSClientBuilder)
                    AmazonSQSClientBuilder.standard().withRegion(sqsRegion)).
                    withCredentials(
                        _getCredentialsProvider(awsSecretKey, awsAccessKey)));
    _connection = connectionFactory.createConnection();
    

    最佳答案

    这里的整个问题似乎是以不幸的名称 SQSConnectionFactory 为前提的,但这并不是真正的名称。更准确的名称可能类似于 SQSConfiguredClientFactory

    None of the createConnection methods set-up the physical connection to SQS

    https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/SQSConnectionFactory.java

    ...因为 SQS 实际上并不使用已建立的/连续的“连接”。

    服务 API 交互通过 HTTPS 进行,并根据其他方法(例如 receiveMessage(queueUrl))需要创建、保持 Activity 和销毁瞬时连接。

    因此,关于您的问题: 1. 连接在任何有意义/相关的意义上都没有保持“开放”状态,因此无需检查; 2. 唯一的成本来自于实际使用连接来发送/接收/删除消息; 3. 由于上述原因,这似乎没有必要。

    关于java - 如何检查AWS SQS连接空闲时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53649291/

    相关文章:

    java - 在 Java 中重写 toString() 的简单方法

    java - CXF 使用的类中的公共(public)方法上的@Transactional 问题

    amazon-web-services - Elasticsearch 1.3.2升级后的问题

    mysql - Amazon Aurora 是否为在从属节点上运行的只读事务提供可序列化隔离?

    python - 亚马逊 AWS EC2 : How to host an API and a website on EC2 instance

    java - 如何强制Java以300dpi打印图形

    java - 查找字符串中的单词数

    java - 跳过的测试不会在 ExtentReport4 中记录为“已跳过”

    amazon-web-services - 为什么 VPC 终端节点不支持 Amazon RDS?

    php - Amazon Elastic Transcoder - 将持续时间添加到输出返回错误