首页 helight0

helight0

  • Redis的事件处理模型2:客户端命令执行过程

    Redis的事件处理模型2:客户端命令执行过程

    前言 上篇分析了Redis的事件处理模型,了解了Redis的事件处理基本过程,这篇还想继续顺着上面的思路分析一下这种情况:在客户端向服务端发起一个set指令或者get指令后,服务端接收后怎么执行这个命令,这个命令操作的简单过程是怎么样的。在分析了这个过程之后,我们就知道了Redis客户端和服务端交互的整个过程。清楚交互过程之后,我再会分析每个数据类型的结构和原理。所以今天继续分析Redis的事件处理模型。 redis客户端命令处理分析 命令字解析 还是从上一篇分析的延续下来,我们从服务端接收到客户端请求开始...

    linux 应用 2019-03-29 225 2 c
  • Gartner整理的未来5年流行技术词

    Gartner整理的未来5年流行技术词

    这两周梳理了一下Gartner上新技术点,看到这篇点,感觉还挺有意思,试着简单翻译了一下,有些词我也在网上又搜索了一番,也学习学习. Glossary of Emerging Technology Trends Digitalization is boundless, A dozen other emerging technology trends are destined to improve trend sensing over the next 5 years 数字化是无限的,十多种新兴技术趋势注定要...

    未命名 2019-03-28 329 0
  • Redis源码分析2:Redis的事件处理模型

    Redis源码分析2:Redis的事件处理模型

    前言 上一篇分析了一下redis的大致框架和启动过程,这篇我想分析一下redis的事件处理模型,当然也包含了网络事件的处理模型。redis除了其高效的nosql存储非常有名以外,另外一个比较被称赞的就是其服务效率。像这类服务的是怎么设计的,为什么这么高效。所以我想这里来分析分析。 事件驱动框架 redis的代码中有一个ae框架,是整个redis事件框架的基础,所以这里先来看看整个东东。按照ae.c文件中的注释说A simple event-driven programming library. Origi...

    linux 应用 2019-03-22 158 0 c
  • Redis源码分析1:Redis启动分析

    Redis源码分析1:Redis启动分析

    前言 近期决定把redis的源码阅读分析一下,在官网下载了最新稳定版本5.0.3。整个代码包还是比较小的,下载之后整个包才9M,解压之后看src文件夹也才3.7M,也就是说redis的源码就这么点,其它占空间的主要是几个依赖组件:hiredis(redis的C客户端), lua, jemalloc(内存池), linenoise(配置文件解析),这些代码占了大概6.3M. 看了redis的代码首先直观感觉就是:规范,非常规范。代码格式,缩紧,注释,命名都是非常规范的,可以说又是一个C代码的软件的典型。所以读...

    linux 应用 2019-03-09 197 1
  • Function as a Service介绍

    Function as a Service介绍

    本文是在去年梳理的关于FaaS的一个文档,主要目标是梳理FaaS的基本概念,发展势头,应用场景和一些基本的架构设计。后来在内部参考FaaS的设计思路,我们实现了一套适用于我们自己业务特点的函数服务,结合了DevOps,目前在内部使用的还算不错。目前可以用在实时排行服务,实时用户触达,实时数据清洗处理等等一些场景,以后也会把实现思路拿出来分享的。 现在的各种技术发展,必然是以服务的形式出现的,所以所有的技术以服务化的方式提供这是必然的。在内部我们建设各种系统和平台,在架构设计思路上也必然遵循这样的规范:分层设...

    linux 应用 2019-03-02 344 0
  • 自2013到2019年大数据领域发生了什么变化

    自2013到2019年大数据领域发生了什么变化

    What changed in the Big data landscape from 2013 to 2019 自2013到2019年大数据领域发生了什么变化 作者:Abbass Marouni 翻译:helight 原文地址:https://blog.marouni.fr/bidata-trends-analysis/ 译者序 在网上看到这篇文章之后发现还挺有意思,文章也算比较简短,就试着联系了一下作者说:我想把他翻译成中文,不做商业用途只是练习和技术布道。作者的回应也非常快,当晚就给我回复,所以就...

    storm 2019-02-14 235 0 stormkafkafaas
  • golang单元测试之mock

    golang单元测试之mock

    golang单元测试之mock 序言 前面介绍了golang的一般单元测试,以及如何使用vscode进行高效的go单元测试开发。同时也说过一般单元测试重点在于cpu和内存类型的测试,而对io类型的测试是比较敏感的。那么针对这类测试就没法做单元测试了吗?有的,肯定是有的,这就是mock技术。 mock测试不但可以支持io类型的测试,比如:数据库,网络API请求,文件访问等。mock测试还可以做为未开发服务的模拟、服务压力测试支持、对未知复杂的服务进行模拟,比如开发阶段我们依赖的服务还没有开发好,那么就可以使用m...

    linux 应用 2019-02-01 272 0 go
  • Golang UnitTest单元测试

    Golang UnitTest单元测试

    Golang UnitTest单元测试 单元测试是程序开发者适用一段代码来验证另外一段代码写的是否符合预期的一种相对高效的自我测试方法。 对于程序开发来说,经过长期的积累和方法总结,单元测试是一种比较好的开发程序验证方式,但是单元测试却是在正真的软件开发之外要写的额外的代码,而且编写和管理维护都有比较大的成本。但是单元测试确实能够提高程序开发的质量,所以基本上各种语言都有相应的单元测试框架来支持更为方便编写和管理单元测试。 golang也是一样,不过golang的测试框架的支持是自生就提供了,不像C/C++,...

    linux 应用 2019-01-25 194 1 go
  • Golang官方依赖管理工具dep学习使用笔记

    Golang官方依赖管理工具dep学习使用笔记

    golang的之前的版本一直缺乏官方的包管理,第三方的包管理个人感觉还是比较麻烦的,但是看到dep现在样子之后还是有了很大的兴趣,使用了之后发现也确实方便了很多。推荐使用dep Golang官方依赖管理工具:dep 今天在看一个内部项目的时候发现内部一个项目的体积非常大,一看原来是vendor占了很大空间。里面的库都是静态提交到git库的,更新和管理都很不方便,想想java开发中的maven多好用啊。之前也知道golang一直在开发类似的东西,借这个机会了解了一下,golang也已经有了这样的工具了:gode...

    linux 应用 2019-01-25 223 0 go
  • 这些年积累的一些小项目

    这些年积累的一些小项目

    github项目 Oneflow 项目简介:可视化分布式流程控制系统,数据流和业务流控制系统。使用golang开发,调度端采用了lua虚拟机,在web端可以创建串行流程,并且在每个流程中写lua脚本,发送到制定或者自动选择对远端机器进行任务执行。是之前项目openflow的升级版本。 项目地址:https://github.com/helight/oneflow DP设计模式golang实现 项目简介:用golang实现设计模式的测试程序,还在持续积累。 项目地址:https://github.com/...

    linux 应用 2019-01-18 189 0
  • golua虚拟机的使用

    golua虚拟机的使用

    前言 ​ 之前一直想把openflow这样的分布式流程系统做起来,但是时间和应用场景的问题所以都是做了一个半拉子工程,而且之前想的也有点简单了,认为只要有同学愿意,在开发上应该没问题,但是最终还是出现了项目管理和开发能力的问题,最终搁浅了。但是我想做一个分布式流程调度系统的想法一直没有断,其实在公司内和另外一个同学做过一个flow系统,也在线上使用了,直到现在还在使用。前一段时间就想把这个系统再优化梳理一下,目标是做一个小巧的开源可用版本。经过一段时间的梳理目前已经初步完成了,后台+前端代码的重新梳理也...

    linux 应用 2019-01-04 177 0
  • 使用gitbook来写文档和文章啦

    使用gitbook来写文档和文章啦

    前言​ 项目中文档管理是一个比较麻烦的事情,一般的做法都是写word文档,或者pdf;针对代码或者接口文档高级一点的可以使用Doxygen或者swagger这样的工具自动生成更新文档。但是项目中还有很多文档有是图文混合的。那这样的文档怎么有效管理呢? ​ 在找了几个工具之后,发现了一个比较合适的工具gitbook。这个工具之前也接触过,主要是用来书籍编写管理,这方面确实做的非常专业。但是我发现用来做文档管理也是非常好用的,所以拿来测试了一下,效果还是不错的。看看这个效果,也是左右分栏,左边是目录分类列表,右...

    linux 应用 2018-11-24 270 0
  • golang1.8以后yacc安装和使用

    golang1.8以后yacc安装和使用

    golang在1.8以后的tool工具中默认移除了yacc工具,如果要使用只能自己安装。 今天在测试代码中要用一下这个工具,突然发现没有,需要自己安装 首先这里下载代码: http://github.com/golang/tools/cmd/goyacc/ 然后编译,过程非常简单 go build goyacc root@ecee334078d1:/usr/share/go-1.10/src/cmd/goyacc# go build yacc.go root@ecee334078d1:/u...

    生活 2018-11-07 402 0
  • windows10下使用dockerfile制作镜像

    windows10下使用dockerfile制作镜像

    其实操作系统没有关系,主要还是Dockerfile的编写和执行,过程来说比较简单。 1.编写Dockerfile 我的dockerfile如下,主要是用于golang和c++的开发,所以相关软件安装都是和这方面有关的。 本来打算使用163的源的,后来看了一下官方源速度也还不错,就直接用官方的源了。 安装的主要软件是mysql,git,nginx,golang,vim #Version 0.1 FROM ubuntu:latest MAINTAINER helight "helight@q...

    linux 应用 2018-11-07 140 0
  • Windows10下安装Docker记录

    Windows10下安装Docker记录

    之前一直使用window安装虚拟机的方式来做linux应用,这次想使用docker来试试,这里顺便记录一下,部分资料来自网上。 一、启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图: 点击确定后,启用完毕会提示重启系统,我们可以稍后再重启。 二、安装Docker Docker下载地址为:https://store.docker.com/editions/community/docker-ce-desktop-...

    linux 应用 2018-11-05 138 0
  • Apache Flink 1.6 Documentation: Jobs and Scheduling

    Apache Flink 1.6 Documentation: Jobs and Scheduling

    Jobs and Scheduling 作业和调度 这边文档简要的描述了Flink怎么样调度作业和Flink在JobManager中如何表述和跟踪作业。 Scheduling 调度 Flink中的执行资源是通过任务执行槽来确定的。每个TaskManager有一个或者多个任务执行槽,每个可以运行一个并行任务的流水线。每个流水线包含多个连续的任务,像N次的MapFunction的并行实例跟一个ReduceFunction的n次并行实例。注意Flink经常同时执行多个连续的任务:对数据流程序来说都会...

    未命名 2018-08-15 140 0 kafka
  • Apache Flink 1.6 Documentation: Component Stack

    Apache Flink 1.6 Documentation: Component Stack

    Component Stack 组件栈 作为一个软件栈,Flink是一个分层设计的系统。不同的层基于底层创建,不断提升程序表现的抽象。 运行时层接受JobGraph 形式的程序,一个JobGraph 是一个通用的并行数据流,它具有消费和生产数据流的任意任务。 DataStream的API和DataSet的API都通过独立的编译过程生成JobGraphs。DataSet的API用一个优化程序来确定程序的优化计划,而DataStream的API使用流构建器 根据Flink中各种不同部署...

    未命名 2018-08-14 100 0 kafka