摘要:
本片文章主要初步介绍什么是CICD流程,并且把整个流程进行拆分理解整个流程的跑通过程。 1.CICD概述 什么是CICD呢? 简单的说CICD就是持续集成自动构建自动测试自动部署. 从概念上就可以看出,CICD主要由四个部分组成代码集成、打包构建、自动测试、自动部署。我们只需要把代码推送到gitla 阅读全文
摘要:
1.概述 最近看了一篇关于热key导致redis服务集群挂掉的文章, 非常的精彩导致我在想当流量非常大时为什么redis服务会挂掉,于是我就找了大量的资料研究服务为什么会挂掉及其原理,服务器为什么会宕机等等就有了如下内容。 其实服务崩溃总结起来无非就两种,一种是资源枯竭导致的服务崩溃,另一种就是超时 阅读全文
摘要:
线上连接gone away问题 我们业务中需要执行一个时间超过8小时的脚本,然后发生了连接gone away的问题,然后开始找原因,首先我们的伪代码如下: app = create_app() def prod_script(): with app.app_context(): machine_ob 阅读全文
摘要:
1、概述 在java的程序设计中,有去对程序中的类、变量、方法做访问权限设计,比如public关键字修饰的允许所有程序访问,有private关键字修饰的只允许类内部访问等。那么java这样设计的初衷是什么呢? 目的: 为了应对程序的变化,并去封装变化保证调用者的稳定。 举个例子: 如果你是一个类库的 阅读全文
摘要:
我们在分布式环境下为什么用雪花算法去生成主键id, 为什么单机情况下推荐mysql自增id而不推荐使用uuid,雪花算法的具体实现是怎么样的?接下来详细讲述一下。 1、概述 分布式id方案那么多种,我们该以什么样的角度去思考并选择,下面我给出我的出发点。 1.1、常用的索引方案 mysql自增id: 阅读全文
摘要:
我们在缓存json数据到redis时经常会面临是选择string类型还是选择hash类型去存储。接下来我从占用空间和IO两方面来分析这两种类型的优势。 1、占用空间 根据数据结构的共识我们知道hashtable类型是要比string类型更占用空间, 而ziplist类型与string类型占用的空间基 阅读全文
摘要:
本篇博客将结合python官方文档和源码详细讲述lru_cache缓存方法是怎么实现, 它与redis缓存的区别是什么, 在使用时碰上functiontools.wrap装饰器时会发生怎样的变化,以及了解它给我们提供了哪些功能然后在其基础上实现我们自制的缓存方法my_cache。 1. lru_ 阅读全文
摘要:
众所周知日志是我们排查问题和跟隔壁团队撕逼的最佳利器, 真的很重要防止被甩锅(血泪教训), 在一次撕扯中我去线上查看日志发现很多重要证据都没有记录在文件中, 经过对比发现肯定了发生了日志丢失问题, 直接导致本该10分钟解决的战斗,愣是持续了2个小时。 言归正传, 我们的程序是用gunicorn作为我 阅读全文
摘要:
此次主要介绍介绍在flask框架中如何集成swagger文档, 我们知道以前给同事提供接口文档主要是写一个文档, 当遇到频繁修改时,就需要更新文档非常麻烦, 这时swagger文档就出现了,一个在线得接口文档,同事可以在线上查看接口文档, 当需要修改接口时秩序修改对应得代码,文档也会随之更新。如下图 阅读全文
摘要:
一、 需求: 我们团队给客户做数据处理,然后给我们提供几台电脑windows系统,我们通过云桌面进行平时的办公,并且连接不了网络,然后我们几个同事进行项目开发需要代码版本管理没法上传带gitlab或者github的代码管理平台,然后想搭建基于windows局域网的代码管理平台。 二、准备工作: 1、 阅读全文