代码改变世界

随笔分类 - 开源研究

谈服务可用性监控

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

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

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

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

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

webdav 概览

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

UUID那些事

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

Scala中的override

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

spark的sparkUI如何解读?

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

初识hadoop

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

查询运营商的ip段

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

解锁redis锁的正确姿势

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

说说API的防重放机制

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

laravel的消息队列剖析

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

说说接口封装

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

shell的exec命令

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

Golang汇编命令解读

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

php内核分析(五)-zval

2016-11-28 10:24 by 轩脉刃, 4406 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 实际上,从这个函数开始,就已经进入到了zend引擎的范围了。 实际上是调用Zend/zend_execute_API.c 再进去是调用 这里的retval_ptr为NULL,string_name为"Command lin 阅读全文

php内核分析(一)-sapi_module_struct

2016-11-21 11:56 by 轩脉刃, 2099 阅读, 收藏, 编辑
摘要:这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 首先是寻找php的入口,php有很多种模式,apache,php fpm, cli模式,我要入手的话,只能先从最简单的cli模型开始。 那么,我需要先寻找 这个命令是如何执行的。 首先还是寻找main入口,由于我们看的是命 阅读全文

phpcurl 请求Chunked-Encoded data 遇到的一个问题

2016-10-21 16:51 by 轩脉刃, 2538 阅读, 收藏, 编辑
摘要:最早出现的问题情况是提供es的部门在es的外部封装了一个gateway做请求中转。 当我们转换到gateway上之后,发现了问题: 有的请求可以获取到数据,有的请求获取不到数据。 仔细分析了业务代码,抽取了一个出问题的业务请求,这个业务请求里面包含了多次对es的请求,只有最后一个es请求抛出异常,其 阅读全文