Golang封装Elasticsearch常用功能
前言(为什么要写这篇文章) 首先看过我博客的都应该知道,我去年发了一篇Python封装Elasticsearch的文章。但那是去年了,今年我将我的检索服务后端用Golang全部重写了一波,相当于用Go重构了以前的Python代码,不过我个人感觉Golang的效率还是高于Python的,而且我还加了一些异常判断和处理,这次的代码只会比以前更好更牛逼,为了纪念这一个多月的重构历程,我将关键功能记录下来,方便自己复习和各位兄弟姐妹查看。 ...
前言(为什么要写这篇文章) 首先看过我博客的都应该知道,我去年发了一篇Python封装Elasticsearch的文章。但那是去年了,今年我将我的检索服务后端用Golang全部重写了一波,相当于用Go重构了以前的Python代码,不过我个人感觉Golang的效率还是高于Python的,而且我还加了一些异常判断和处理,这次的代码只会比以前更好更牛逼,为了纪念这一个多月的重构历程,我将关键功能记录下来,方便自己复习和各位兄弟姐妹查看。 ...
写这篇文章的原因 按理说,你们看过我博客的人,都知道,我是一个相当乐观的人,我从来都不会怎么丧气一些事儿,特别是在工作上,我永远都是顶在最前面,有困难bug我来,有难题我来攻关,按理说我就像是一个长者,身经百战,见的多了!那些naive的问题,我都不放在心上,可今天,恩,一个绩效考评,算是让我有了一些感到心累或者说是心寒吧。 ...
前言 介绍Rabbimq Rabbitmq消息队列是干嘛的? 简单的说,消息队列,引申一下就是传递消息用的队列,也可以称为传递消息的通信方法。用争抢订单的快车举个例子,假如,A用户发送了一个用车的消息,那么消息队列要做的就是把A用户用车的这个消息广而告之,发送到一个公用队列当中,司机只管取到消息,而不管是谁发布的,这就是一个简单的消息队列例子,Rabbitmq其实就是消息队列的一种,用的比较多的还可能有Redis,kafka,ActiceMq等等,这个后面的博文里面我会说,这次我们只说Rabbimq消息队列 ...
前言 上篇文章,大概讲了一下robfig/cron 包的使用,怎么开始一个定时任务,那个东西比较简单,也就是调用函数而已,人家都给你把包都封装好了。鉴于上一章我没提到cron相关,这一章专门我写个cron相关,讲讲怎么cron语法,然后再实现一个自动生成cron语句的逻辑。 ...
前言 Linux的Crontab定时器似乎已经足够强大,但是我认为还是没有办法满足我们所有的需求,例如定时器某一瞬间需要动态添加/删除任务的功能,例如定时器只能在指定的节点上启动(主节点),其他节点不需要定时服务,这种情况Linux自带的Crontab就不能够满足我们的需求了,所以这次要徒手定义一个Crontab定时器,作为自己的备用。 ...
Golang利用context实现一个任务并发框架 消失这么久的原因 疫情太严重,哥们本来打算在新疆滑雪+吃烤肉度过一个美好的假期,结果没成想给困那里了,这不就尴尬了么,这不,博客没更新,现在我又回来了,哈哈哈哈! ...
ETCD分布式锁实现选主机制(Golang) 为什么要写这篇文章 做架构的时候,涉及到系统的一个功能,有一个服务必须在指定的节点执行,并且需要有个节点来做任务分发,想了半天,那就搞个主节点做这事呗,所以就有了这篇文章的诞生,我把踩的坑和收获记录下来,方便未来查看和各位兄弟们参考。 ...
算法笔记-入门-数据结构篇 从大学毕业之后就没研究过算法,都快忘光了,现在开个新坑,从头学起算法,哈哈,希望自己能够坚持住,不过我一定可以坚持住的,我就像易筋洗髓一样,将自己全身打断,重塑自己的一切,回归初心,以一个听者的名义对待一切,因为我做的都是我自己喜欢的事儿。 ...
前言 为什么要写这篇文章呢。。。主要还是业务中有个需求,遍历一个将近200w数据的文件夹,大部分还都是视频文件那种,但是这玩意用的次数还不多,做文件夹index也不是很ok,所以写了一个脚本来处理这个问题,从而发现了自己的一些薄弱点,将其记录下来,方便自己,也方便未来其他的兄弟使用 ...
Elasticsearch for python API模块化封装 模块的具体功能 检测Elasticsearch节点是否畅通 查询Elasticsearch节点健康状态 查询包含的关键字的日志(展示前10条) 查询指定的索引下的数据,并且分页 输出所有日志(输出全部) 输出去重后的日志(分页,带关键字) 删除指定索引的值 往索引中添加数据 获取指定index、type、id对应的数据 更新指定index、type、id所对应的数据 批量插入数据 使用方法 一般作为独立的包进行导入,并且对其进行了大数据预览的优化和处理 作为一个独立Python模块进行导入,并且调取接口使用。 调用方法 ...