-
Notifications
You must be signed in to change notification settings - Fork 271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请问 influxdb-proxy 和influxdb-relay 这两个有什么特点和不同点该如何选择? #111
Comments
这俩差异太大,让我从何说起呢... |
我看文档的理解是influxdb-proxy 后面可以代理多个influxdb的实例,我插入或者查询的话是随机从多个实例查询的,每个influxdb实例是相同的数据,我这样理解正确吗? |
@zhangyang1995 简单讲:
|
@chengshiwen 首先感谢您的回答。 BACKENDS = { 再请教一下 如果我这个配置两个不同服务器的两个数据数据库 是不是就可以做到数据库的高可用了 挂了一个 还有另一个可以使用? |
@zhangyang1995 是的,KEYMAPS中的每个 key 对应存储的 influxdb 实例个数至少为2时,即至少有2个副本,所以访问该 key 时挂了一个另一个还可以用 |
这里的 'default': ['local'] Line 51 in dfe4050
可以理解为如果有的表没有在这里配置KEYMAPS 默认是走default中local吗? |
@zhangyang1995 是的,匹配 key 的原则有两个:1、精确匹配、2、前缀匹配,如果两个都不匹配则走 default 的配置 |
@chengshiwen 感谢你在这个库上做的工作。 |
@shell909090 感谢,很好的提议,以前的想法是让用户少做选择,后来的想法是把能力开放出去。基于db+measurement做的hash,之所以没有继续用规则,是考虑到一些场景下用户无法事先预知要设置哪些规则,需要关心规则的设计,设计不合理带来数据负载的不合理,后期维护也会有比较高的成本,想法还是让用户少做选择。 |
@chengshiwen |
汗...proxy做过的压力测试,配置足够的机器上,每个backend能容纳11M recs/s的数据。性能要是还不够的话,强烈建议买企业版... |
我是用jemeter-http请求做的 查询测试 同样的sql语句 influxdb数据库和proxy--》influxdb 感觉有点差距 不知道是哪部分限制了http的请求 4286,the client is 192.168.84.1:51394 |
@zhangyang1995 你发的错误是因为 influxdb 机器的句柄数open files太少的缘故,需要设置大一些,至少 20w 起步 |
|
看实际进程的 limits 数量,先 ps 找到进程,然后 |
经过生产验证,influx-proxy 代理转发,确实会有性能损耗,比直接访问 influxdb 的读、写性能略低一点,例如查询使用正则表达式进行语句匹配多少都需要匹配时间,但是可以忽略不计。 |
谢谢,我一会尝试一下, 如果我修改了redis的数据 proxy服务需要重启吗?我这里测试是需要重启有没有开关不用重启? |
@zhangyang1995 Line 35 in dfe4050
|
十分感谢! |
如果插入的时候不带time字段 infuxdb-proxy是怎么处理的呢?感觉同样的数据(不带时间表)直接插入influxdb有23W条,而通过proxy只有240条 我怀疑是proxy做了处理 如果插入时候不带时间可能会把一批数据归集到一个时间上?@chengshiwen [root@localhost data]# cat post.lua [root@localhost data]# wrk -t12 -c1000 -d30s -s post.lua http://172.16.0.147:8086/write?db=demo |
@zhangyang1995 不带时间,插入的时间取决于服务器给出的系统时间,如果直接高速插入 influxdb,其实也会出现少量的时间重复,导致数据被覆盖,如果插入 influx-proxy,proxy 会缓存一部分数据(默认是1w行)后再批写到 influxdb,所以会加剧时间重复。 |
建议使用 influx-stress,或者 tsbs 进行测试 |
请问一下如果我想做读写分离有什么好的方案吗 因为我有一个场景一个inlfuxdb库要一直写入数据,如果在同时查询的话查询效率很低。蟹蟹 |
目前没有,各个 influxdb 是完全独立的,属于 Shared-nothing architecture (SN 架构),基于 proxy 的这个方案无法直接做到读写分离。要改造成真正意义上的读写分离,需要改造 proxy 代码(识别哪些 influxdb 是写,哪些 influxdb 是读),而且还需要支持背景里从 influxdb 写库复制到 influxdb 读库,官方有命令支持 online backup,不过只能支持单实例备份到单实例 |
@zhangyang1995 influx-proxy其实具备了读写分离的基础,可以对某些backend设定write only。但是由于influx-proxy不是集群,backend的两台influx之间没有同步。所以读的那台并不能不写入,因此influx-proxy没有read only选项。如果你有方案能低成本的解决influx之间同步的问题,influx-proxy的改造并不复杂。 |
这个备份是实时的吗 好像还要我还原备份才能看到数据吧 我刚试了下 远程备份显示8088端口连接不通失败了 |
我也有可能记错了 online backup 的功能,或者使用错了,我空了时看看 |
No description provided.
The text was updated successfully, but these errors were encountered: