小编Mel*_*leD的帖子

通道关闭:通道错误

有时我在我的日志文件中发现了以下条目。我不知道问题是什么。我的猜测是设置一个较低的请求心跳。还有其他想法吗?此外,我的情况是,在兔子重新启动后,我的服务器无法在兔子回来后重新建立服务。我必须重新启动我的服务器,才能重新连接。

[AMQP Connection xxx:5672] [ERROR] org.springframework.amqp.rabbit.connection.CachingConnectionFactory - Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'xxxx' in vhost 'aaa', class-id=60, method-id=40)
Run Code Online (Sandbox Code Playgroud)

交换和队列不是自动删除的?

公共类 AmqpConfiguration {

@Autowired
private ConnectionFactory connectionFactory;  

@Bean
public Queue receiverQueue() {
    return new Queue("receiverQueue", true, false, false, getDeadLetterExchangeArgs());
}

@Bean
public FanoutExchange senderExchange() {
    return new FanoutExchange("xxxx");
}

@Bean
public Queue deadLetterQueue() {
    return new Queue("deadLetterQueue");
}

@Bean
public FanoutExchange exchangeDeadLetter() {
    return new FanoutExchange("deadLetter.exchange");
}


@Bean
public Binding bindDeadLetterQueueToExchange() {
    return BindingBuilder.bind(deadLetterQueue()).to(exchangeDeadLetter());
} …
Run Code Online (Sandbox Code Playgroud)

spring amqp rabbitmq spring-rabbit

5
推荐指数
1
解决办法
1万
查看次数

更改现有队列的参数

我想设置现有队列的“x-message-ttl”,但表示这是不可能的:

重要 RabbitMQ 代理将不允许声明具有不匹配参数的队列。例如,如果队列已经存在且没有生存时间参数,并且您尝试使用 key="x-message-ttl" value="100" 来声明它,则会引发异常。

默认情况下,RabbitAdmin 会在发生任何异常时立即停止处理所有声明;这可能会导致下游问题 - 例如侦听器容器无法初始化,因为未声明另一个队列(在错误队列之后定义)。

可以通过在 RabbitAdmin 上将 ignore-declaration-failures 属性设置为 true 来修改此行为。此选项指示 RabbitAdmin 记录异常,并继续声明其他元素。

http://docs.spring.io/spring-amqp/docs/1.3.9.RELEASE/reference/html/amqp.html#broker-configuration

RabbitAdmin 不支持此功能的原因是什么?通过 Rabbit UI 或 CLI,可以更改现有队列的参数,或者?

是否有更改现有队列参数的解决方法?

谢谢!

丹尼斯

spring spring-amqp

3
推荐指数
1
解决办法
2766
查看次数

使用 terraform 添加 azure SQL 用户

是否有可能通过 terraform 将 sql 用户添加到 azure sql? https://www.mssqltips.com/sqlservertip/5242/adding-users-to-azure-sql-databases/

或者是否有更好的建议如何创建 SQL 用户?

谢谢

terraform terraform-provider-azure

3
推荐指数
1
解决办法
3630
查看次数

模块的动态嵌套块

我想为 Azure 应用程序网关创建一个模块。

我想使用内联块 disabled_rule_group 禁用一些规则组,但是如何在模块中进行配置?这应该是一个可选变量。

我找到了for_each嵌套块的 。

例子:

variable "disabled_rule_groups" {
  default     = [
    {
      rule_group_name = "REQUEST-931-APPLICATION-ATTACK-RFI"
      rules           = [
        931100,
        931130]
    },
    {
      rule_group_name = "REQUEST-942-APPLICATION-ATTACK-SQLI"
      rules           = [
        942100
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)
resource "azurerm_application_gateway" "AppGateway" {
  dynamic "disabled_rule_group" {
    for_each = [var.disabled_rule_groups]
    content {
      rule_group_name = disabled_rule_group.value.rule_group_name
      rules           = disabled_rule_group.value.rules
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用。

有人知道如何修复语法吗?

此外,该变量disabled_rule_groups应该是可选的。所以如果没有设置 disabled_rule_groups 块应该被禁用。我怎样才能做到这一点?我是否需要第二个布尔变量和一个 if ?

terraform terraform-provider-azure terraform0.12+

3
推荐指数
1
解决办法
2060
查看次数