了解 Amazon SQS 的 Apache Camel 路由

Understanding Apache Camel routing for Amazon SQS

我有一个 SQS 队列。我要完成的 objective 是根据消息属性过滤消息,如果符合过滤条件则将其删除。所以我在 Java 中有一个函数看起来像这样

public String getUri(){
    String uri = String.format("aws-sqs://%s?accessKey=%s&secretKey=%s&attributeNames=test&deleteIfFiltered=true",queueUrl,key,secret)
    return uri;
}

Post这个我调用这个函数

public Builder extends RouteBuilder{

    @Override
    public void configure(){
        try{
            from(getUri())
            .setHeader()
            ...
        }

    }

看起来正在构建的路由无法删除消息。

您需要按照文档中的说明进行操作:https://camel.apache.org/components/latest/aws2-sqs-component.html

关于 deleteIfFiltered 选项。

您需要将密钥 CamelAwsSqsDeleteFiltered 的交换 属性(不是 header)设置为 true

查看文档和这个例子: https://camel.apache.org/components/latest/aws2-sqs-component.html#_jms_style_selectors