源码阅读——robfig/cron cron一个用于管理定时任务的库,用 Go 实现 Linux 中crontab这个命令的效果。这个包提供的功能相对比较底层,许多分布式任务管理系统中在定时部分使用了这个cron。 cronsun gocron dkron crawlab 我最近也用这个包比较多,今天看了一下整体的源码。 源码结构12345678910111213141516171819cron 2021-09-17 源码阅读计划 #Golang
GitHub Actions+Serverless搭建博客 这个博客网站架构经历了好几次的变更: 为了学习django:在学校对着视频,自己写了一个传统博客站点,对应的项目:Github 自己写的前端太丑:转入博客园 博客园也不稳定:转入gitpage gitpage太慢:转入腾讯云 去年在V站上面,看到小伙伴在推荐良心云的云开发 CloudBase可以有免费的cdn用,也是觉得gitpage的访问速度属实太慢了,去年年底就把博客挂在了良心云上面,目前 2021-09-11
聊聊 MongoDB 聊聊 MongoDBMongoDB 是目前主流的 NoSQL 数据库之一。由于历史原因,接手的一个项目底层大量使用了 MongoDB 。在学生时代对 MongoDB 也有一些了解,但是真正用到生产项目里面还是第一次。不出意外的,在使用过程中也伴随着许多不适应,也不止一次的怀念便捷的 ORM、熟悉的 SQL (甚至 InfluxDB 这种时序数据库也是兼容SQL查询的) 。这里主要讲一下,在过去一年 2021-08-20 计算机技术 #数据库 #MongoDB
聊一聊:敏捷开发 近期由于一些工作上的安排,开始负责公司一个开源项目管理的事务,经过团队近两个月的努力总算赶在 deadline 前完成了大版本的发布。在这个项目期间我们尝试通过敏捷开发的模式,解决前期由于团队架构变化带来的问题。 什么是敏捷开发?敏捷 开发是用于描述迭代软件开发的术语。 迭代软件开发通过以较小的增量(通常称为冲刺)对工作执行来缩短DevOps生命周期。 冲刺(sprint) 的时长通常为 1-4 2021-07-15 #杂记 #敏捷开发
聊一聊:常见的分布式锁 前言在分布式系统中,为了实现对互斥资源的安全访问(独占),必须要用到分布式锁。另外在工作中,还有一个应用场景是,在分布式的后台服务中,某些服务只允许单个实例(机器或 Docker)运行,其他的备份机器作为 BackUps 备份节点(比如在笔者的项目中,负责数据同步的逻辑同一时刻只能有一台机器进程来执行),当正在运行的单实例机器(进程)故障后,在线的 BackUps 按照排队顺序,争抢到分布式锁,继 2021-04-05 #Golang
sentry部署 Sentry 是一个日志收集和统计平台, 由客户端和服务端组成,目前支持大部分主流的编程语言,并提供 SDK,当程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个 Web 端显示。 准备工作前置条件 Docker 19.03.6+ Compose 1.24.1+ 硬件最低要求: 2G+内存 部署流程拉取源码做完了准备工作,就可以开始搭建 sentry 了。 从 GitH 2020-12-26 #sentry #日志
MongoDB——TTL索引 MongoDB 有几种很实用的特殊索引,在特定场景中可以达到事半功倍的效果,TTL 索引即其中之一。 过期特定数据是一种常见场景,对 IoT 设备日志、网站 session 等数据而言,我们一般只关心一定时间内的数据,过期数据需要及时删除,TTL 索引很适合用于该场景。 索引创建TTL 索引是特殊的 单字段 索引,且字段类型必须是: BSON date,或时间戳 BSON date 数组 创建 2020-12-15 #mongodb
S3协议入门 前言S3是AWS服务最早推出的几项服务之一,也是使用最为频繁的几个AWS服务之一。官网文档以及网上文章零零散散看了不少,实际使用中也用过S3的大多数功能,但“纸上得来终觉浅,绝知此事要躬行”,决定给自己挖个坑,结合已读资料和实际使用经验,系统地来梳理一下S3的已有功能。 S3 是什么 Amazon Simple Storage Service(简称S3),是亚马逊AWS服务在2006年第一个正式对 2020-12-12 #云计算
使用 Go 客户端控制 Kubernetes 早期我已经在本地搭建了一个两台机器的k3s集群,并部署了Crawlab( 一个使用Golang 开发的分布式爬虫管理平台),实现了本地的分布式集群服务环境的搭建。服务起来以后,动态的控制容器节点,监控容器运行状态,实现即使的扩容,这都需要我们Kubernetes进行控制。幸运的是Kubernetes直接提供了python、golang的客户端,可以方便的实现Kubernetes API 操作。所 2020-09-24 #Golang #k8s #docker