kubernetes - Kubernetes 中托管的容器之间的快速数据交换
问题描述
我正在移动一个应用程序,该应用程序需要在 kubernetes 集群中的多个容器中运行的进程之间进行近乎实时的数据交换。我正在考虑为此目的使用redis缓存。
需要交换的数据类型是简单类型,例如双精度、字符串值。交换频率需要接近实时(亚秒级)
是否有其他更高效的机制可用于在 Kubernetes 环境中托管的容器之间交换数据?
解决方案
这是一个非常复杂的问题,其中的细微差别远远超出了这里的范围。这在很大程度上取决于对象大小、正常运行时间要求、集群规模等。我建议您尝试所有这些,评估性能并分析适用于您的用例的故障模式。
您可以尝试一些事情:
- 雷迪斯
- 内存缓存
- 带有 mmap 的本地文件
- 带 mmap 的网络块设备
- 带 mmap 的 NFS
- 以上所有三个都与 RocksDB
- Postgres
- 卡夫卡
在编码方面评估:
- JSON(不要使用它,仅用于基线)
- 协议缓冲区
- CapnProto
- 消息包
- 也许是 BSON?
推荐阅读
- java - Java 类继承覆盖 List 字段
- ios - 使用选取器查看选定的行文本
- django - 如何仅更改当前用户模型中字段的值?
- node.js - 我应该使用什么 HTTP 动词来请求一些新数据但不将它们保存在数据库中?
- yii2 - 创建逆形式时出错:在 null 上调用成员函数 isAttributeRequired()?
- c++ - Accessing the runtime type of a polymorphic object by switch and static_cast
- rust - 在使用关联类型的情况下,如何为通用容器实现 Borrow?
- c# - OntriggerEnter 未调用 playerController
- javascript - 如何从字符串制作 HTML 元素,然后在 React 中选择一个元素?
- css - 如何在 React 中隐藏包装的组件