我想要一个关于如何使用hg loghg过滤器轻松使用的命令行示例,并将其安全地输出到JSON(带有包含文件的数组).
多平台(windows/unix)会很棒.
我们正在微服务架构中构建一个orchestrator.我们选择websockets作为RPC协议,以建立一个流媒体管道,可以通过支持websocket的服务器(如Kestrel)进行扩展.此协调器主要在Linux服务器上运行(dockerized).
出于管理和监控目的,我们计划使用http://dotnetify.net/构建一个响应式Web管理门户(可以通过推送通知以半实时方式显示计算和客户端的数量).
DotNetify使用SignalR,我们不能在Websockets上使用SignalR层.我们在TCP协议之上需要最小的开销.Websocket本身就是一个漂亮的标准,并且足够轻巧,但SignalR增加了对我们并不真正需要的东西的支持(LAN,微服务).我们考虑使用WAMP,但在概念验证中,我们将在websocket总线中使用简单而简单的自定义握手.另一个原因是:我们的主要后端是IBM AIX,而RDBMS流程引擎是商业预构建二进制文件,因此在那里实现SignalR协议非常麻烦(几乎不可能).但我们不必,因为我们不想.
在1个过程中拥有[A]"纯"和[B]"signalR"websocket服务器的可能解决方案是启动多个Kestrel.我试过这个(在Windows和ubuntu上)它似乎运行没有问题.我只是使用了一个Task.Run()数组,然后是Task.WaitAll(backgroundTasks).一个带有SignalR的红隼,一个没有,在不同的端口上运行.
注意:我找不到在一个Kestrel中使用多个端口的正确方法,并从一个端口中排除SignalR
我的问题是:虽然这似乎运行得很好,有人可以确认这是安全的吗?特别是libuv和os信号处理?
对于我的应用程序,我需要一个包含数百万行的集合的字母索引。当我使用排序集并给所有成员相同的分数时,结果看起来很完美。性能也很棒,在 200 万行的测试集上,后三分之一的性能并不明显低于前三分之一。
但是,我需要查询这些结果。例如,获取前(最多)100 个以“goo”开头的项目。我尝试过 zscan 和 sort,但它没有给我一个有效的和高性能的结果。
由于 Redis 在向排序集中插入新成员时速度非常快,因此技术上必须能够立即(嗯,非常快)转到正确的内存位置。我想 Redis 使用某种快速排序机制来完成此任务。但是..当我只想查询数据而不写入数据时,我似乎没有得到结果。
我们使用复制的从属设备进行读取操作,并且我们更喜欢(默认)只读配置开关。因此,创建一个虚拟密钥并随后将其删除(尽管不优雅)并不是一个真正的选择。
我有点卡住了,我正在考虑在 redis-server 本身中编写一个 ZLEX 命令。我可以这样使用:
HELP "ZLEX" -> (ZLEX set score startswith)
-- Query the lexicographical index of a sorted set, supplying a 'startswith' string.
127.0.0.1:12345> ZLEX myset 0 goo LIMIT 0 100
1) goo
2) goof
3) goons
4) goozer
Run Code Online (Sandbox Code Playgroud)
你怎么看?我是否遗漏了标准 redis 命令中的某些内容?
我们在 Debian 上使用 Redis 2.8.4 x64。
亲切的问候,TW
编辑:
注意: 相关问题:indexing-using-redis-sorted-sets -> 至少我给 ZLEX 起的名字似乎符合 Antirez(Salvatore)的标准。截至 2014 年 1 月 24 日,我正在致力于实施 ZLEX。对于这个用例来说,这似乎是最简单、最直接的解决方案,Antirez …
我们需要监视目录的大小(例如InfluxDB的数据目录)以在Grafana中设置警报.如上所述:如何配置telegraf将文件夹大小发送到InfluxDB,没有内置的插件.
我们不介意使用inputs.execTelegraf 的部分.目录不是很大(低文件数+ dircount),所以深度扫描(如使用du)对我们来说很好.
我们需要监控的目录之一是/var/lib/influxdb/data.
什么是一个简单的脚本来执行,有什么警告?