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

发布于:2024-10-13 ⋅ 阅读:(12) ⋅ 点赞:(0)

NOTEPAD++里面有三行
1.2.32
1.2.42
1.2.52

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

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

### 使用列模式编辑

1. **打开 Notepad++** 并加载你的文件。
2. **进入列模式**:
   - 按住 `Alt` 键,然后用鼠标左键拖动选择你要编辑的列。
   - 或者,按住 `Alt` + `Shift` 键,然后使用箭头键进行选择。
3. **编辑选定列**:
   - 现在,你可以直接输入新的字符(如 `a`),它会同时替换所有选中的字符。

### 示例操作

假设你的文件内容如下:

```
1.2.32
1.2.42
1.2.52
```

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

1. **进入列模式**:
   - 按住 `Alt` 键,然后用鼠标左键从第一个 `2` 开始,向下拖动到最后一个 `2`,形成一个竖向的选区。
   - 或者,按住 `Alt` + `Shift` 键,然后使用箭头键向下选择所有的 `2`。

2. **编辑选定列**:
   - 直接输入 `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
   ```

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

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

### 示例:配置联邦交换机

假设你有两个 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`

2. **通过命令行配置**:
   ```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`

2. **通过命令行配置**:
   ```bash
   rabbitmqctl set_policy \
     --apply-to exchanges \
     federation-upstream "^source_exchange$" \
     '{"federation-upstream-set":"all"}'
   ```

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

1. **在管理控制台中配置**:
   - 进入 `Exchanges` 标签页。
   - 创建一个新的交换机 `destination_exchange`,类型可以根据你的需求选择(例如 `direct`、`topic` 等)。

2. **通过命令行配置**:
   ```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!"
   ```

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


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

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

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

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

2. **在 `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}'
   ```

2. **最大消息大小**

   你


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


不,上游和下游的交换机名称不需要相同。联邦交换机的设计允许你在不同的 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`

2. **通过命令行配置**:
   ```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`

2. **通过命令行配置**:
   ```bash
   rabbitmqctl set_policy \
     --apply-to exchanges \
     federation-upstream "^source_exchange$" \
     '{"federation-upstream-set":"all"}'
   ```

#### 在 `

=========