尚硅谷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"}'

```

在 `

=========

相关推荐
GitCode官方12 分钟前
GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台
分布式·开源·gitcode
wm104317 分钟前
java web springboot
java·spring boot·后端
smile-yan19 分钟前
Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
java·maven
老马啸西风20 分钟前
NLP 中文拼写检测纠正论文-01-介绍了SIGHAN 2015 包括任务描述,数据准备, 绩效指标和评估结果
java
Earnest~23 分钟前
Maven极简安装&配置-241223
java·maven
皮蛋很白26 分钟前
Maven 环境变量 MAVEN_HOME 和 M2_HOME 区别以及 IDEA 修改 Maven repository 路径全局
java·maven·intellij-idea
青年有志28 分钟前
JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介
java·web
上海研博数据32 分钟前
flink+kafka实现流数据处理学习
java
KpLn_HJL33 分钟前
leetcode - 2139. Minimum Moves to Reach Target Score
java·数据结构·leetcode
小扳2 小时前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构