尚硅谷rabbitmq 2024 Federation创建upstream连接点 第57节答疑

NOTEPAD++里面有三行

1.2.32

1.2.42

1.2.52

我要把2全都改成a,不用替换的方式,有一个什么 竖向改还是竖向选择的方式是什么?

在 Notepad++ 中,你可以使用列模式编辑功能来实现竖向选择和编辑。这种方式可以让你同时编辑多行的特定列位置,非常适合你描述的需求。以下是具体步骤:

使用列模式编辑

  1. **打开 Notepad++** 并加载你的文件。

  2. **进入列模式**:

  • 按住 `Alt` 键,然后用鼠标左键拖动选择你要编辑的列。

  • 或者,按住 `Alt` + `Shift` 键,然后使用箭头键进行选择。

  1. **编辑选定列**:
  • 现在,你可以直接输入新的字符(如 `a`),它会同时替换所有选中的字符。

示例操作

假设你的文件内容如下:

```

1.2.32

1.2.42

1.2.52

```

你想把所有的 `2` 替换成 `a`,可以按照以下步骤操作:

  1. **进入列模式**:
  • 按住 `Alt` 键,然后用鼠标左键从第一个 `2` 开始,向下拖动到最后一个 `2`,形成一个竖向的选区。

  • 或者,按住 `Alt` + `Shift` 键,然后使用箭头键向下选择所有的 `2`。

  1. **编辑选定列**:
  • 直接输入 `a`,所有选中的 `2` 会被同时替换成 `a`。

最终结果如下:

```

1.a.32

1.a.42

1.a.52

```

总结

  • **列模式编辑**:通过 `Alt` + 鼠标拖动 或 `Alt` + `Shift` + 箭头键进入列模式。

  • **同时编辑**:在列模式下直接输入新的字符,所有选中的字符会被同时替换。

这个功能非常强大,可以极大地提高你在 Notepad++ 中处理类似任务的效率。

=============

rabbitmq联邦交换机怎么用的

RabbitMQ 联邦交换机(Federated Exchange)允许你在多个 RabbitMQ 实例之间共享消息,从而实现跨数据中心或跨地理位置的消息传递。通过联邦交换机,你可以将一个 RabbitMQ 交换机中的消息路由到另一个 RabbitMQ 交换机中。

联邦交换机的使用步骤

  1. **安装 RabbitMQ 联邦插件**:

你需要在所有参与联邦的 RabbitMQ 节点上安装联邦插件。可以使用以下命令安装:

```bash

rabbitmq-plugins enable rabbitmq_federation

rabbitmq-plugins enable rabbitmq_federation_management

```

  1. **配置联邦链接**:

联邦链接用于定义 RabbitMQ 节点之间的连接。你可以在 RabbitMQ 管理控制台中配置,也可以通过配置文件或命令行工具配置。

  1. **配置联邦交换机**:

联邦交换机用于将消息从一个交换机路由到另一个交换机。你需要在源交换机和目标交换机上进行配置。

示例:配置联邦交换机

假设你有两个 RabbitMQ 节点:`rabbit1` 和 `rabbit2`,你希望将 `rabbit1` 上的交换机 `source_exchange` 的消息路由到 `rabbit2` 上的交换机 `destination_exchange`。

在 `rabbit1` 上配置联邦链接

  1. **在管理控制台中配置**:
  • 打开 RabbitMQ 管理控制台(通常是 http://localhost:15672)。

  • 进入 `Admin` 标签页。

  • 在 `Federation Upstreams` 部分,添加一个新的上游链接。

  • Name: `rabbit2`

  • URI: `amqp://username:password@rabbit2-hostname`

  1. **通过命令行配置**:

```bash

rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://username:password@rabbit2-hostname"}'

```

在 `rabbit1` 上配置联邦交换机

  1. **在管理控制台中配置**:
  • 进入

在 `rabbit1` 上配置联邦交换机(续)

  1. **在管理控制台中配置**:
  • 进入 `Admin` 标签页。

  • 在 `Federation Upstreams` 部分,确保你已经添加了上游链接 `rabbit2`。

  • 进入 `Exchanges` 标签页。

  • 找到或创建你想要联邦化的交换机,例如 `source_exchange`。

  • 点击交换机名称,进入交换机详情页面。

  • 在 `Federation` 部分,添加一个新的联邦上游。

  • Upstream: `rabbit2`

  • Policy: `federation-upstream`

  1. **通过命令行配置**:

```bash

rabbitmqctl set_policy \

--apply-to exchanges \

federation-upstream "^source_exchange$" \

'{"federation-upstream-set":"all"}'

```

在 `rabbit2` 上配置目标交换机

  1. **在管理控制台中配置**:
  • 进入 `Exchanges` 标签页。

  • 创建一个新的交换机 `destination_exchange`,类型可以根据你的需求选择(例如 `direct`、`topic` 等)。

  1. **通过命令行配置**:

```bash

rabbitmqctl add_exchange \

--vhost / \

destination_exchange \

direct

```

联邦交换机的工作原理

  • **消息流动**:当消息发布到 `rabbit1` 上的 `source_exchange` 时,这些消息会自动被路由到 `rabbit2` 上的 `destination_exchange`。

  • **配置同步**:联邦交换机会自动同步配置和消息,因此你不需要手动处理消息的传输。

  • **可靠性**:联邦交换机可以配置为在网络中断时缓存消息,确保消息不会丢失。

示例:验证联邦交换机

  1. **在 `rabbit1` 上发布消息**:

```bash

rabbitmqadmin publish exchange=source_exchange routing_key=test payload="Hello, RabbitMQ!"

```

  1. **在 `rabbit2` 上查看消息**:

示例:验证联邦交换机(续)

  1. **在 `rabbit1` 上发布消息**

使用 `rabbitmqadmin` 工具发布消息到 `source_exchange`:

```bash

rabbitmqadmin publish exchange=source_exchange routing_key=test payload="Hello, RabbitMQ!"

```

  1. **在 `rabbit2` 上查看消息**

确保 `rabbit2` 上的 `destination_exchange` 已经绑定到一个队列。你可以使用以下步骤在 `rabbit2` 上创建一个队列并绑定到 `destination_exchange`:

  • **在管理控制台中配置**

  • 进入 `Queues` 标签页。

  • 创建一个新的队列,例如 `destination_queue`。

  • 进入 `Exchanges` 标签页。

  • 找到 `destination_exchange`,并点击进入详情页面。

  • 在 `Bindings` 部分,添加一个新的绑定。

  • Destination: `destination_queue`

  • Routing key: `test`

  • **通过命令行配置**

```bash

rabbitmqctl add_queue --vhost / destination_queue

rabbitmqctl set_binding --vhost / exchange destination_exchange queue destination_queue --routing-key test

```

现在,你可以使用 `rabbitmqadmin` 或者其他工具查看 `destination_queue` 中的消息:

```bash

rabbitmqadmin get queue=destination_queue requeue=false

```

如果配置正确,你应该会看到 `Hello, RabbitMQ!` 这条消息已经被路由到 `rabbit2` 上的 `destination_queue`。

高级配置

联邦交换机支持多种高级配置选项,以下是一些常见的高级配置:

  1. **TTL(Time-To-Live)**

你可以设置消息在联邦交换机中的存活时间。超过这个时间的消息将被丢弃。

```bash

rabbitmqctl set_policy \

--apply-to exchanges \

federation-upstream "^source_exchange$" \

'{"federation-upstream-set":"all", "message-ttl":60000}'

```

  1. **最大消息大小**

==========

上下游的交换机名字必须相同吗?

不,上游和下游的交换机名称不需要相同。联邦交换机的设计允许你在不同的 RabbitMQ 实例之间使用不同的交换机名称。这种灵活性使得你可以根据不同的需求和命名约定来配置你的 RabbitMQ 实例。

配置示例:不同名称的上下游交换机

假设你有两个 RabbitMQ 节点:`rabbit1` 和 `rabbit2`,你希望将 `rabbit1` 上的交换机 `source_exchange` 的消息路由到 `rabbit2` 上的交换机 `destination_exchange`。

在 `rabbit1` 上配置联邦链接

  1. **在管理控制台中配置**:
  • 打开 RabbitMQ 管理控制台(通常是 http://localhost:15672)。

  • 进入 `Admin` 标签页。

  • 在 `Federation Upstreams` 部分,添加一个新的上游链接。

  • Name: `rabbit2`

  • URI: `amqp://username:password@rabbit2-hostname`

  1. **通过命令行配置**:

```bash

rabbitmqctl set_parameter federation-upstream rabbit2 '{"uri":"amqp://username:password@rabbit2-hostname"}'

```

在 `rabbit1` 上配置联邦交换机

  1. **在管理控制台中配置**:
  • 进入 `Admin` 标签页。

  • 在 `Federation Upstreams` 部分,确保你已经添加了上游链接 `rabbit2`。

  • 进入 `Exchanges` 标签页。

  • 找到或创建你想要联邦化的交换机,例如 `source_exchange`。

  • 点击交换机名称,进入交换机详情页面。

  • 在 `Federation` 部分,添加一个新的联邦上游。

  • Upstream: `rabbit2`

  • Policy: `federation-upstream`

  1. **通过命令行配置**:

```bash

rabbitmqctl set_policy \

--apply-to exchanges \

federation-upstream "^source_exchange$" \

'{"federation-upstream-set":"all"}'

```

在 `

=========

相关推荐
大道至简以诚为本几秒前
Java泛型的一些细节
java
宋一诺337 分钟前
12-Union联合类型注解
java·开发语言
影子落人间30 分钟前
JAVA使用SM2算法生成密钥对加密解密加签验签
java·开发语言·算法·安全
木子020434 分钟前
Java设计模式
java·开发语言·设计模式
Lill_bin42 分钟前
JDK 17 新特性概览
java·开发语言·windows·python·中间件·rocketmq·策略模式
一只小小汤圆1 小时前
c# sring \\W1.235; 先判断是否包含\\W 如果包含 获取\\W和;之间的数
java·数据库·c#
沈询-阿里1 小时前
用Spring AI 做智能客服,基于私有知识库和RAG技术
java·人工智能·spring
毕业设计制作和分享2 小时前
ssm基于VUE的图书馆管理系统的设计与实现+vue
java·javascript·vue.js·spring boot·毕业设计·mybatis
哎呦没2 小时前
Spring Boot洗衣店订单系统:智能库存管理
java·spring boot·后端
Kenny.志2 小时前
7、Spring Boot 3.x集成RabbitMQ动态实例等操作
spring boot·rabbitmq·java-rabbitmq