我们有一个用例,用一个唯一的密钥缓存3亿个这样的数据.
我知道这是非正统的,但我的公司已经建议DNS可以用作小型(<512字节)数据的快速分布式缓存. DNS条目为{Key}.{散列密钥的模数} .mycompany.local. 即U5333145311.1.mycompany.local 我们将以每秒5000到7500的速率从10到15台服务器发出请求. 我们将通过区域文件更新每个DNS服务器. 由于我是程序员,这对我来说都是新手
>这甚至可行吗?
>有哪些陷阱?
>我如何调整DNS服务器的大小.
谢谢
更新:数据是1到30个整数的数组(不是512K对不起),所以它非常小.我的CTO来自网络运营,就像这个解决方案一样,因为它是一个已知的,成熟的系统,并且内置了容错功能,他可以使用网络操作来管理它.我非常谨慎,但心胸开阔.
解决方法
DNS在某些情况下有意义:
>广泛分布的数据
例如,DNS黑名单是有效的,因为缓存基础设施
已经存在于用户(即他们的ISP)附近,或者他们可以为大用户
轻松运行自定义软件,如(rbldnsd).不过重点在于它的运用
现有的广泛部署的协议.
>小响应(最大约500字节)
人们通过DNS分发的大多数有趣的东西都很小,甚至通常只是
记录的存在与否是足够的(例如,DNSBL表示IP
地址不好,或者表示此文件的校验和的信号是“坏”).
我写了这个:https://dgl.cx/wikipedia-dns,它几乎推动了极限
您可以在DNS中安全地执行响应大小.不是每个人都实施或支持
EDNS0和其他人说,一旦你回到TCP的利益
无国籍者消失了.
正如其他人所说,听起来我觉得你会更好像memcached.试图将自己约束到DNS似乎很愚蠢内部使用.如果您可以控制客户端,则可以轻松地在故障转移和负载平衡方面做得比DNS本身更好.