对通过 nats-server 参与消息交换的每个人使用完全相同的 encryption/decryption 机制时性能提升?
Performance gains when using the exact same encryption/decryption mechanism for everyone participating in message-exchange via nats-server?
基本上是主题所说的内容。我想知道当客户端通过消息 sent-to/received-from 相同的 nats 服务器进行通信时,使用相同的 encryption/decryption 机制是否可以获得性能方面的好处。
我在这里提出了同样的问题,如果有人感兴趣的话:
https://github.com/nats-io/nats-server/discussions/2740
例如考虑以下两种基于 nats 的通信场景:
- 场景#1:
发布者 (P) 正在使用加密解密方案 (A) 和他自己的加密密钥 (A)
将主题“foo.bar”发布给 nats
消费者 (C) 订阅了 nats-subject“foo.bar”,使用加密解密方案 (B) 和他自己的加密密钥 (B)
在这种情况下,我假设 nats-server 将使用解密方案 (A) 解密 (P) 发布的消息,检查主题并将“foo.bar”消息转发给消费者 (C)使用加密方案 (B) 重新加密这些消息。
- 场景#2:
发布者 (P) 正在使用加密解密方案 (A) 和他自己的加密密钥 (A)
将主题“foo.bar”发布给 nats
消费者 (C) 订阅了 nats-subject“foo.bar”,使用与发布者完全相同的加密解密方案 (A)
在这种情况下,我假设 nats-server 只需要使用解密方案 (A) 解密 (P) 发布的消息的主题,并在检查主题后转发“foo.bar”通过“按原样”“复制粘贴”消息的有效负载(数据)将消息传递给消费者(C),因为加密解密机制完全相同。
我猜加密解密中的这种对称性应该在负载高时提供更好的性能。
我的这些假设是否正确?还是我想念什么?我还没有看到有人指出方案 #2 是提高性能和减少延迟(也可能降低错误率)的一种方法。
想法?见解?相关文档的链接?
在此主题中得到用户“Todd Beets”的回复:
https://github.com/nats-io/nats-server/discussions/2740#discussioncomment-1799935
<< NATS 不会像您假设的那样在 NATS 协议 [1](第 7 层)级别执行 encrypt/decrypt。
“在线”NATS 完全支持带有 NATS 客户端的 TLS [2]。
当 TLS 在 NATS 服务器终止时,实际上,NATS 正在播放场景 1 中的模式(即 1..N 订阅 NATS 客户端具有 独立 TLS 连接和密钥).
[1] https://docs.nats.io/reference/reference-protocols/nats-protocol#client-protocol
[2] https://docs.nats.io/using-nats/developer/security/tls >>
(强调我的)
基本上是主题所说的内容。我想知道当客户端通过消息 sent-to/received-from 相同的 nats 服务器进行通信时,使用相同的 encryption/decryption 机制是否可以获得性能方面的好处。
我在这里提出了同样的问题,如果有人感兴趣的话:
https://github.com/nats-io/nats-server/discussions/2740
例如考虑以下两种基于 nats 的通信场景:
- 场景#1:
发布者 (P) 正在使用加密解密方案 (A) 和他自己的加密密钥 (A)
将主题“foo.bar”发布给 nats消费者 (C) 订阅了 nats-subject“foo.bar”,使用加密解密方案 (B) 和他自己的加密密钥 (B)
在这种情况下,我假设 nats-server 将使用解密方案 (A) 解密 (P) 发布的消息,检查主题并将“foo.bar”消息转发给消费者 (C)使用加密方案 (B) 重新加密这些消息。
- 场景#2:
发布者 (P) 正在使用加密解密方案 (A) 和他自己的加密密钥 (A)
将主题“foo.bar”发布给 nats消费者 (C) 订阅了 nats-subject“foo.bar”,使用与发布者完全相同的加密解密方案 (A)
在这种情况下,我假设 nats-server 只需要使用解密方案 (A) 解密 (P) 发布的消息的主题,并在检查主题后转发“foo.bar”通过“按原样”“复制粘贴”消息的有效负载(数据)将消息传递给消费者(C),因为加密解密机制完全相同。
我猜加密解密中的这种对称性应该在负载高时提供更好的性能。
我的这些假设是否正确?还是我想念什么?我还没有看到有人指出方案 #2 是提高性能和减少延迟(也可能降低错误率)的一种方法。
想法?见解?相关文档的链接?
在此主题中得到用户“Todd Beets”的回复:
https://github.com/nats-io/nats-server/discussions/2740#discussioncomment-1799935
<< NATS 不会像您假设的那样在 NATS 协议 [1](第 7 层)级别执行 encrypt/decrypt。
“在线”NATS 完全支持带有 NATS 客户端的 TLS [2]。
当 TLS 在 NATS 服务器终止时,实际上,NATS 正在播放场景 1 中的模式(即 1..N 订阅 NATS 客户端具有 独立 TLS 连接和密钥).
[1] https://docs.nats.io/reference/reference-protocols/nats-protocol#client-protocol
[2] https://docs.nats.io/using-nats/developer/security/tls >>
(强调我的)