记录一次KeyDB缓慢的定位过程
这个问题出现在一套搭建在虚拟机上的Kubernetes 1.18集群上。集群有三个节点:
1 2 3 4 5 |
# kubectl get node -o wide NAME STATUS VERSION INTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME 192.168.104.51 Ready v1.18.3 192.168.104.51 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 192.168.104.72 Ready v1.18.3 192.168.104.72 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 192.168.104.108 Ready v1.18.3 192.168.104.108 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 |
KeyDB通过StatefulSet管理,一共有三个实例:
1 2 3 4 5 |
# kubectl -n default get pod -o wide -l app.kubernetes.io/name=keydb NAME READY STATUS RESTARTS IP NODE keydb-0 1/1 Running 0 172.29.2.63 192.168.104.108 keydb-1 1/1 Running 0 172.29.1.69 192.168.104.72 keydb-2 1/1 Running 0 172.29.1.121 192.168.104.51 |
这三个实例:
- 由于反亲和设置,会在每个节点上各运行一个实例
- 启用Active - Active(--active-replica)模式的多主(--multi-master)复制 :每个实例都是另外两个的Slave,每个实…
Istio Mixer与Envoy的交互机制解读
在前些日子的文章Istio Pilot与Envoy的交互机制解读中我们详细研究了Istio Pilot如何基于xDS协议和Envoy代理进行各种配置信息的交换。Istio的另一个核心组件是Mixer,它提供三类功能:
- 遥测报告(Telemetry Reporting),该功能是服务网格可观察性的基础。…
Istio Pilot与Envoy的交互机制解读
在基于Istio+Envoy实现的服务网格中,Istio的角色是控制平面,它是实现了Envoy的发现协议集xDS的管理服务器端。Envoy本身则作为网格的数据平面,和Istio通信,获得各种资源的配置并更新自身的代理规则。
除了实现xDS协议,Istio…
阅读全文基于Broadway的HTML5视频监控
Broadway是一个基于JavaScript的H.264解码器,支持Baseline Profile,我们在HTML5视频监控技术预研一文中介绍过这个库。如果你的监控摄像头支持Baseline的H.264码流,利用Broadway可以实现不需要重新编码的视频监控,这样服务器的…
阅读全文基于C/C++的WebSocket库
libwebsockets是一个纯C语言的轻量级WebSocket库,它的CPU、内存占用很小,同时支持作为服务器端/客户端。其特性包括:
- 支持ws://和wss://协议
- 可以选择和OpenSSL、CyaSSL或者WolfSSL…
C++日志组件spdlog
spdlog是基于C++ 11的日志组件,它非常轻量,使用时你仅仅需要引入头文件就可以了。
名字空间 spdlog::之下的大多数函数都是线程安全的,除了:
1 2 3 |
void spdlog::set_pattern(const std::string&); void spdlog::set_formatter(formatter_ptr); void spdlog::set_error_handler(log_err_handler); |
日志器对象的大部分方法也是线程安全的,除了:
所有以_mt结尾的SINK都是线程安全的,以_st结尾的则不是。
spdlog默认的输出格式为:
要定制输出格式,可以调用:
或者实现自己的格式化器:
输出格式的Pattern中可…
阅读全文HTML5视频监控技术预研
安防类项目中通常都有视频监控方面的需求。视频监控客户端主要是Native应用的形式,在Web端需要利用NPAPI、ActiveX之类的插件技术实现。
但是,IE式微,Chrome也放弃了NPAPI,另一方面,监控设备硬件厂商的视频输出格式则逐渐标准化。这…
阅读全文