批量删除redis数据库中的key
线下环境测试时,由于配置的命名空间未做隔离,造成开发环境和测试环境中的数据污染,现需要批量删除两个命名空间下的数据:nlas和nlas-test。
特别说明:redis中命名空间,只是一种叫法,其实就是固定的key前缀,且以冒号:做分隔(当然也可以是其他分隔符,只要符合key命名规范)。
redis客户端本身不支持指定固定key前缀的批量删除操作,但我们可以借助linux的管道符处理工具对其操作。redis-cli是redis的命令行客户端,可以通过命令的方式执行redis的命令,此处我们要执行keys和del命令。xargs是linux的管道符命令。
下面就以删除nlas:命令空间为例:
1redis-cli -h 10.59.6.54 -p 6379 -a B213547b69b13224 -n 0 keys "nlas:*" | xargs -r -t -n1 redis-cli -h 10.59.6.54 -p 6379 -a B213547b69b13224 -n 0 del
执行,删除成功!
本质上,上面命令分为两个部分执行:1、先登录查出需要删掉 ...
Aerospike客户端常用命令
Aerospike提供一套类SQL操作,和Mysql语法极其相似(命令解析参考注释),在安装aerospike的服务器上,通过aql --help 可以查看系统提供的帮助文档,里面还有很多DEMO语句。然后通过aql -h ip -p port 连上服务器(直接aql默认连接127.0.0.1 3000)。
AS常用命令
登录AS:先登录到服务器上,然后直接输入命令:aql
连接:aql -p 3000 -h 192.168.0.1
显示所有命名空间:show namespaces(namespace类似mysql的db)
12345678910aql> show namespaces+------------+| namespaces |+------------+| "ns1" || "ns11" |+------------+[127.0.0.1:3000] 2 rows in set (0.002 secs)OK
显示所有表(集合):show sets(sets类似mysql中的table,相当于 ...
Python分析GrayLog日志脚本
日志聚合工具中的后起之秀-GrayLog,是一个开源的日志聚合、分析、审计、展现和预警工具。在功能上来说,和 ELK 类似,但又比 ELK 要简单很多。依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐。
本文不涉及graylog的工作流程以及架构设计的介绍,只介绍其三个查询数据的接口。
接口介绍
查询结束时间点的日志
api/load_logs_with_time接口查询当前时间最新的日志(如果查询条件中给定了end_time,最新的日志则是end_time之前的400条数据)。该接口时GET方式,写脚本的时候需要将将查询参数经过URLENCODE编码才可以使用。
三个参数:
start_time: 开始时间,非必须
end_time: 结束时间,非必须
query: 查询条件,非必须,查询条件支持字段A:值1 AND 字段B:值2的方式表示查询字段A包含值1并且字段B包含值2,其中AND也可以用OR,表示或。字段A和字段B也可以相同。举个例子:app:demo AND message:“测试” AND message:“youzan”,表示查询应用为deme,并且日志消 ...
maven编译jmc缺少javax.mail:dsn:1.4依赖包的解决方法
0x00 记录病例
在本地编译 jmc(JDK Mission Control)7.1 时,需要构建releng/third-party,由于某些条件的约束限制,不能在 maven 公共仓库中下载javax.mail:dsn:jar:1.4的jar包。
错误信息如下:
1234567891011121314151617181920212223$ mvn p2:site...[info] [JAR] jakarta.activation-1.2.1.jar[info] Resolving artifact=[javax.mail:dsn:1.4] transitive=[true] source=[false]Downloading: http://maven.aliyun.com/nexus/content/groups/public/javax/mail/dsn/1.4/dsn-1.4.pomDownloading: http://repository.ops4j.org/maven2/javax/mail/dsn/1.4/dsn-1.4.pom[WARNING] The POM ...
离线安装OpenSearch和k-NN插件
Open Distro 项目将 Elasticsearch 和 Kibana 的开源发行版与 Apache-2.0 许可插件捆绑在一起,为用户提供企业级功能、安全性和分析工具。自推出以来的两年中,世界各地的开发者都使用 Open Distro 来支持他们的应用程序。
开源 Elasticsearch 和 Kibana 7.10.2 即将结束生命周期,不再接受积极的开发、安全补丁或错误修复。所有用户都应该运行能够及时收到安全补丁的软件。启动 OpenSearch 项目的目的是为开源 Elasticsearch 和 Open Distro 用户提供一条前进的道路,以确保他们始终能够获得安全性和新的创新。
以上引用官网文档《https://opendistro.github.io/for-elasticsearch/#prod》
x000 下载软件包
K-NN是Amazon公司开发并开源的一款支持Elast ...
JFR(Java Flight Recorder)使用教程
0x00 概念
JFR,全称为Java Flight Recorder,简称JFR,是Oracle JDK的商业特性,JFR数据是JVM的历史事件,用来诊断JVM的历史性能和操作,该数据是作为时间上的数据点(称为事件)记录的。是一种监控工具,可以在Java应用程序执行期间收集有关JVM事件的信息。JFR会开启一组事件,当有对应的事件发生时,就会保留相应的数据到文件中或者内存中(假如有开启缓存池),JMC可以显示这些事件——实时从JVM获取或者从文件中获取,JMC可以展示详细的JFR记录的数据。JFR对于被监控的应用程序来说,默认设置的性能开销很低:程序性能的1%以下,但是随着开始的事件或者记录线程增多,性能开销也会随之增多。
JFR有两种主要的概念:事件和数据流。
0x00_01 事件
JFR在Java应用运行时收集对应发生的事件,主要有三种类型的事件提供给JFR收集:
即时事件:一旦事件发生会立即进行数据记录
持续事件:如果持续时间超过指定阈值则进行数据记录
简单事件:用于记录应用所在系统的活跃指标(例如CPU,内存等)
0x00_02 数据流
JFR收集的事件包含大量数据,将这 ...
Mac Big Sur 升级后 JD-GUI 无法打开的问题修复
Mac Big Sur 升级后 JD-GUI 无法打开的问题修复
升级 Big Sur 后发现JD-GUI 打开报错:
ERROR launching ‘JD-GUI’
No suitable Java version found on your system!
This program requires Java 1.8+
Make sure you install the required Java version.
参见 JD-GUI 的issue :Update universalJavaApplicationStub to be able to launch on macOS Big Sur #336
我们需要替换一个文件;universalJavaApplicationStub.sh (version 3.0.6),问题出现的原因是在 MacOS Big Sur的版本中,/usr/libexec/java_home组合选项-F和-v不再支持有+的字符串查看 JVM 版本,软件的的 info.plist 如果java的版本是一个包含+的字符串,如1.8+,则会出现错误无法开 ...
HTTP压测工具之wrk
wrk是一款简单的HTTP压测工具,托管在Github上,https://github.com/wg/wrk。wrk 的一个很好的特性就是能用很少的线程压出很大的并发量,原因是它使用了一些操作系统特定的高性能 io 机制,比如 select, epoll, kqueue 等. 其实它是复用了 redis 的 ae 异步事件驱动框架,确切的说事件驱动框架并不是 redis 发明的, 它来自于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而更多的被大家所熟知。
安装
123git clone https://github.com/wg/wrk.git cd wrk make
如果编译过程中出错:
12src/wrk.h:11:25: fatal error: openssl/ssl.h: No such file or directory #include <openssl/ssl.h>
则需要安装openssl,使用sudo apt-get install libssl-dev或 sudo yum install openssl-d ...
Apache HttpClient调用webflux的服务出现Connection Reset
问题
最近,决策引擎上线了kunpeng-gateway网关,hermod直连kunpeng-gateway的内网域名,存在少量的rst。应用服务端客户端都没有更多的日志信息。
排查经过
针对该问题,我们内部讨论,首先排查域名使用问题,其次确认集群内容器内访问svc数据包的流向。(kunpeng-gw ip 10.158.158.44)
在我们cni为kube-router的集群上,数据包从容器内出来,直接送到容器所在物理机的kube-dummy-if 网卡。经过本机的ipvs规则(集群外调用svc就很难找到哪个节点的ipvs规则在生效)dnat到目标容器10.157.32.66。
既然起作用的ipvs就是客户端容器所在物理机,这下问题排查起来就容易很多了。除了客户端服务端容器内抓包,我观察客户端所在ipvs规则就可以了。
导入一笔测试流量,在客户端抓包。可以看到tcp三次握手,以及后续push的数据包,并没有收到fin包。客户端到服务端使用了长链接方式。触发一次测试调用后,我收不到任何数据包了就。
看了下客户端到服务端的链接是存在的。
客户端
服务端
ipvs,其中第 ...
关键词DAT细节梳理
0x00 关键词构建DAT细节
0000. 普通关键词DAT
查询的关键词自组装成成一个字符串,组装格式为:关键词内容 + “\r” + 是否排序 + “\r” + 是否整词检索 + 属性json字符串。
其中属性json的格式为:
123456789101112{ "origin_content": "关键词", "level": "分级映射", "level_code": "分级编码", "classify_code": "分类编码", "industry_code": "行业编码", "sp_only_show_official": "特殊时期是否只展示官方信息", "sp_show_official_ctl": "特殊时 ...