Elasticsearch聚合性能优化

在业务量增加的背景下,一个全局搜索接口出现了少量超时问题。通过排查发现,问题主要出在 Elasticsearch (ES) 的 terms 聚合阶段。进一步分析发现,这是由于 ES 的 Global Ordinals 机制在动态构建映射表时导致的性能瓶颈。本文将带你剖析这一现象背后的根本原因——Global Ordinals 机制,并分享几种有效的解决方案。
2025年1月11日 15时34分 阅读全文

如何在WSL配置代理

经常在WSL中进行开发,偶尔需要通过代理访问一些资源,本文对wsl下配置代理的几种方法做了一些记录和总结
2024年10月21日 14时48分 阅读全文

Podman入门札记

Podman简介

容器技术已经成为现代软件开发和部署的重要工具。它通过将应用和其依赖打包在一起,实现了应用的快速部署和移植。在这个背景下,Podman作为一款开源的容器管理工具套件,因其独特的特性和优势,逐渐受到开发者和系统管理员的青睐。

Podman的优势

Podman提供了与Docker相似的功能,可以编译镜像和管理容器,但它在某些方面优于Docker:

  • 无守护进程:Podman CLI 直接与底层的libpod API交互,无需守护进程。
  • 安全性:无需Root权限即可运行容器,提高了系统的安全性。
  • Kubernetes兼容性:Podman与Kubernetes的集成更加紧密,可以通过podman kube命令根据Kubernetes的yaml文件生成Pod或者container,也可以将本地的Pod配置导出成Kubernetes的yaml。
2024年4月16日 19时17分 阅读全文

golang的Context分析

Context是golang中非常重要的package,Context不仅能够传递基础公共参数,还能处理信号、超时等关键信息,从而确保请求流程的控制和资源的有效利用。
2019年11月2日 10时32分 阅读全文

golang中对时间的处理整理

最近开始使用go进行后台开发,其中遇上比较多的问题是对时间的处理和其他语言有一点点不一样,以此文做一些记录
2019年3月11日 5时16分 阅读全文

linux下进程控制

我们的一个系统在父进程退出后子进程偶尔出现不能正常的退出问题,这篇文章就是记录解决这个问题的过程。
2018年12月8日 10时14分 阅读全文

关于字节序的一些备忘

字节序指的是在计算机内存中多字节数据类型的存储顺序,主要分为大端序(Big-Endian)和小端序(Little-Endian)。大端序将高字节存储在低地址,适合网络传输;小端序则相反,广泛应用于如Intel X86/AMD64架构的计算机上。理解字节序对于处理跨平台数据交换至关重要,尤其是在网络编程时,通过API如htonl、ntohl等实现本机字节序与网络字节序之间的转换。值得注意的是,位运算过程中不需要考虑字节序问题。
2018年10月7日 13时43分 阅读全文

使用CMake进行项目构建

根据维基百科上的介绍,CMake是一款跨平台的自动化构建系统。我们可以编写与编译平台无关的配置文件(CMakeLists.txt), 然后再生成对应编译平台的编译配置(例如Linux下的Makefile)然后再执行对应的编译指令。
2018年4月30日 12时45分 阅读全文

Let's Encrypt-免费HTTPS证书申请

HTTPS通信是建立在一条加密通道上进行的,能够保证数据的完整性和机密性。如果将自己的网站从HTTP升级到HTTPS,首先需要拥有CA颁发的证书, 本文记录了Let's Encrypt 免费HTTPS证书申请的过程
2017年4月29日 4时43分 阅读全文

python 模块静态编译

最近有个需求,需要在服务器上跑一个简单的web服务,由于服务器上环境差异较大,准备编译一个独立的静态python。这样以后服务扩容,迁移都比较轻松。通过几天的研究,虽然中间报了一些错误,python的静态版本,基本编译成功。
2016年1月9日 7时5分 阅读全文

毕业旅行

记得很久之前,就想着毕业旅行的时候一定要去西藏,去拉萨,也许是因为那句“我是世间最美的情郎”, 也许是对藏族文化的好奇吸引了我。但是毕业临近才发现各种烦碎的小事却异常多,最后拉萨的旅行计划只能作罢。 在完成毕业答辩之后,我们临时决定跟团前往九寨沟。
2015年7月6日 6时34分 阅读全文

python with statement

这篇文章主要对工作中经常接触到python 文件读写及with语句做一个总结.

文件打开

try:
    with open(filename,'r') as filea:
        do_process()
except IOError as e:
    print e.strerrpr

打开多个文件:

2014年12月6日 16时0分 阅读全文

md5的简单实现

md5是一种消息摘要算法,它能够将输入的任何数据经过运算产生128 bit的hash值(这个hash便是这段消息的摘要) 一般情况下,md5产生的消息摘要发生碰撞得可能性很低(还是存在的),所以人们常用通过对比经md5运算后摘要 来验证一段消息的完整性。
2014年4月5日 16时0分 阅读全文