代码改变世界

随笔分类 - 开源研究

MYSQL如何比对版本号字符串

2022-05-17 09:28 by 轩脉刃, 365 阅读, 收藏, 编辑
摘要: MYSQL如何比对版本号字符串 mysql 数据库中存储了一个形如“2.7.6.526” 的版本号,现在要获取出小于某个版本号的数据,怎么做?这个就是昨天遇到的一个问题,记录下查到的解决方法: SELECT * FROM device_table WHERE CONCAT( LPAD(SUBSTRI 阅读全文

丈量你的代码,从cloc开始

2021-12-19 15:50 by 轩脉刃, 468 阅读, 收藏, 编辑
摘要: 如果我想统计我当前的项目有多少代码量?行数最高的代码文件有哪些?并且排除某些目录,怎么统计?要统计出注释多少行,和代码多少行?使用cloc就行。 cloc是一款使用Perl语言开发的开源代码统计工具,支持多平台使用、多语言识别。 mac上安装cloc还是用brew最为简单, brew install 阅读全文

使用plantuml,业务交接就是这么简单

2021-12-14 07:09 by 轩脉刃, 937 阅读, 收藏, 编辑
摘要: 使用plantuml,业务交接就是这么简单 你好,我是轩脉刃。 最近交接了一个业务,原本还是有挺复杂的业务逻辑的,但发现交接过来的项目大有文章,在项目代码中有一个docs文件夹,里面躺着若干个 puml 文件,这些puml文件把业务中最核心的一些业务流程图和时序图都绘制清楚了。看到这个文件夹无异于发 阅读全文

谈服务可用性监控

2020-12-24 10:00 by 轩脉刃, 1581 阅读, 收藏, 编辑
摘要: 谈服务可用性监控 一个服务的监控从整体考虑,要达到哪些才能算是完善的?我想,如果没有一个全局性的监控思考,一个服务的监控即使加的再多也是会有监控盲区的。 监控的层次 从基础机器到上层业务,分为三个不同层次:系统,应用,业务。不同的层次都应该有其不同的监控目的。 系统监控 这个层次监控服务所在服务器的 阅读全文

从零开始搭建运维体系 - ansible

2018-12-17 14:27 by 轩脉刃, 2170 阅读, 收藏, 编辑
摘要: 从零开始搭建运维体系 ansible 基本配置好了局域网内的机器后,第一个遇到的问题就是如何批量操作这么多台机器,ansible就是这么一个自动化运维工具。 ansible是一个基于ssh的批量远程操作命令工具。它有分管理端和被管理端,管理端安装ansible,被管理端什么都不需要安装。这个是非常方 阅读全文

从零开始搭建运维体系 - 开始篇

2018-12-15 22:01 by 轩脉刃, 1466 阅读, 收藏, 编辑
摘要: 从零开始搭建运维体系 开始篇 如果给你一批机器,并且这一批机器在和外部不通的局域网内部,让你从零开始搭建一套运维体系,应该怎么做呢?有哪些开源工具和项目可以使用呢?这个系列的文章就想带大家一起讨论这个问题。 重现场景 首先我们需要使用vagrant搭建3台centos7的机器,这三台机器使用的配置大 阅读全文

webdav 概览

2018-08-14 21:08 by 轩脉刃, 1987 阅读, 收藏, 编辑
摘要: webdav 概览 WebDav(Web Distributed Authoring and Versioning) 是一个控制远端Web资源的协议,它基于HTTP1.1。它的定义在RFC 4918(https://tools.ietf.org/html/rfc4918)。这个协议的场景可以是分布式 阅读全文

c 编译器大全

2018-06-12 15:50 by 轩脉刃, 3273 阅读, 收藏, 编辑
摘要: c 编译器大全 看了下nginx的auto/cc下的目录,nginx对多种c语言的编辑器都进行了支持。才知道c语言有那么多编辑器。 编译器原理 所谓编译器,就是执行下面的三步骤: 1 将目标语言转换为AST抽象语法树 2 优化抽象语法树 3 将抽象语法树转化为适用于各个系统架构的指令集 各种编译器 阅读全文

UUID那些事

2018-05-16 12:25 by 轩脉刃, 4986 阅读, 收藏, 编辑
摘要: UUID那些事 "UUID" 是一个全局唯一的通用识别码。它使用某种规则,而不是某种中心化的自增方式,来保证这个识别码的全局唯一性。UUID 有非常多的使用场景,比如在分布式系统中,需要生成全局唯一 ID 来进行日志记录。UUID 的生成规则由 "rfc4122" 来进行定义。 UUID 和 GUI 阅读全文

Scala中的override

2017-12-12 10:30 by 轩脉刃, 7918 阅读, 收藏, 编辑
摘要: Scala中的override override是覆盖的意思,在很多语言中都有,在scala中,override是非常常见的,在类继承方面,它和java不一样,不是可写可不写的了,而是必须写的。如果不写而覆盖了对应的属性或者方法的话,编译器就会报错了。今天把scala中的override的各种地方都 阅读全文

spark的sparkUI如何解读?

2017-11-01 07:44 by 轩脉刃, 6430 阅读, 收藏, 编辑
摘要: spark的sparkUI如何解读? 以spark2.1.4来做例子 Job schedule mode 进入之后默认是进入spark job 页面 这个说明有很详细的解释,spark有两种操作算子:转换算子(transformation)和执行算子(Action)。当执行到行为算子的时候,就出发了 阅读全文

spark在idea中本地如何运行?(处理问题NoSuchFieldException: SHUTDOWN_HOOK_PRIORITY)

2017-10-20 15:49 by 轩脉刃, 1790 阅读, 收藏, 编辑
摘要: spark在idea中本地如何运行? 前几天尝试使用idea在本地运行spark+scala的程序,出现了问题,http://www.cnblogs.com/yjf512/p/7662105.html 当时还以为是本地spark安装问题,今天发现原来不是。记录如下: 现象 使用pom写了一个程序,发 阅读全文

初识hadoop

2017-05-05 18:32 by 轩脉刃, 826 阅读, 收藏, 编辑
摘要: 初识hadoop 概念 hadoop首先是大数据领域。大数据领域至少是分布式的,分布式数据必然是有一定规模了。如果数据只有几个G或者更小就没有什么意义了。 hadoop最核心的概念就是HDFS和MapReduce。hadoop的源码在github上也有对应的开源:https://github.com 阅读全文

查询运营商的ip段

2017-03-30 06:39 by 轩脉刃, 4557 阅读, 收藏, 编辑
摘要: 查询运营商的ip段 所有的IP地址都是通过国际组织NIC(Network Information Center)统一分配的,目前世界上有三个这样的网络信息中心: InterNic: 负责美国及其他地区 ENic: 负责欧洲地区 APNIC: 负责亚太地区 像我们中国的所有运营商,比如六大运营商(中国 阅读全文

解锁redis锁的正确姿势

2017-03-22 07:11 by 轩脉刃, 10733 阅读, 收藏, 编辑
摘要: 解锁redis锁的正确姿势 redis是php的好朋友,在php写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为。这个时候我们就要用到锁。锁的方式有好几种,php不能在内存中用锁,不能使用zookeeper加锁,使用数据库做锁又消耗比较大,这个时候我们一般会选用redis做锁机 阅读全文

说说API的防重放机制

2017-03-20 18:19 by 轩脉刃, 29204 阅读, 收藏, 编辑
摘要: 说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正常逻辑是插入数据库操作,那么一旦插入数据库的语句写的不好,就有可能出现多条重复的数据。一旦是比 阅读全文

laravel的消息队列剖析

2017-03-18 10:33 by 轩脉刃, 8339 阅读, 收藏, 编辑
摘要: laravel的消息队列剖析 这篇来自于看到朋友转的58沈剑的一篇文章: "1分钟实现“延迟消息”功能" 在实际工作中也不止遇见过一次这个问题,我在想着以前是怎么处理的呢?我记得当初在上家公司的时候直接使用的是laravel的queue来实现的。当然,这里说的laravel的queue实际上也是基于 阅读全文

说说接口封装

2017-03-09 15:36 by 轩脉刃, 11321 阅读, 收藏, 编辑
摘要: 今天给同事封装了一个接口,说起接口封装的事情,其实其实很有的聊。很多时候,说一个服务好,一个服务烂,实际上都是在吐槽服务队外暴露的接口好坏。不管什么语言,封装接口,抽象起来,就是由一个函数名,若干个参数,若干个返回值组成的。封装的好坏,就在这几个上面。 函数名 首先是函数名。函数名的好坏很明显,我的 阅读全文

shell的exec命令

2017-03-02 21:38 by 轩脉刃, 12898 阅读, 收藏, 编辑
摘要: 工作中遇到运维人员挂supervisor的时候建议启动使用命令control.sh start, 并且在control.sh 里面启动命令: 使用man看下说明,可以看到exec是一个内部命令, 如这里说的exec是将要exec的命令替换当前的这个命令。所以这个意思是 如果你使用了exec之后,你当 阅读全文

Golang汇编命令解读

2016-12-05 10:12 by 轩脉刃, 10744 阅读, 收藏, 编辑
摘要: 我们可以很容易将一个golang程序转变成汇编语言。 比如我写了一个main.go: 使用命令: 我们就获取了main.S是main.go的汇编版本。 首先这个程序根据TEXT是定义函数的,分为3个部分 这个"". 代表的是这个函数的命名空间。 g(SB) 这里就有个SB的伪寄存器。全名未Stati 阅读全文