Linux平台软件设计与开发

记录学习、工作、生活中的点滴

LevelDb实现原理

引言 LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解LevelDB的存储结构以及工作流程,我们可以从两个不同的角度来分析一下LevleDb的原理:静态角度和动态角度。静态角度:主要了解系统如何对数据进行存储的,其数据是如何组织管理的;动态角度,主要是了解...

2017-04-28 17:27:15

阅读数 711

评论数 1

Kafka——性能逆天的存在

Kafka——性能逆天的存在 (by 刘延允,2016-12-17) 0、引言 Kafka是LinkedIn开源出来的一款消息服务器,用scala语言实现;这货的性能是百万级的QPS(估计是挂载了多块磁盘),我随便写个测试程序就是十万级。 1、Kafka基本概念 在Kafka中消息是按照Topi...

2016-12-20 11:39:49

阅读数 12284

评论数 3

Binglog格式与主从复制——Mysql

一Mysql Binlog协议格式 二主从复制各种文件偏移量说明 三通过Binlog恢复数据 四通过Relay log恢复数据 一个Binlog格式文件,前四个字节是:0xfe62696e;对应0xfe、’b’、’i’、’n’,这是雷打不动的公理。 后面是一系列的Binlog Event,每个Ev...

2016-11-30 14:07:14

阅读数 1352

评论数 0

基于MYSQL的Binlog增量数据同步服务

系统工作原理 基于MYSQL日志增量数据同步原理: - 1、DBAsync伪装自己为mysql slave,向mysql master发送dump协议 - 2、mysql master收到dump请求,开始推送binary log给DBAsync - 3、DBAsync解析binary l...

2016-08-10 16:45:31

阅读数 7171

评论数 0

Mysql主从同步中Binlog Dump线程僵尸问题

Mysql主从同步中Binlog Dump线程僵尸问题问题起因 自己开发程序伪造为mysql的从服务器,不停重连、以及重启后出现如下错误: too many connections(1040) 在主服务上运行:show processlist发现大量Binlog Dump线程 ...

2016-07-20 15:32:35

阅读数 7583

评论数 1

MySQL 数据库事务与复制

好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适。 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类。 结合实际工作中碰到的问题,以寻找答案的方式来剖解技术,很多时候我们都不是在创造新技术,而是在应用技术。 为了更有效率与效果...

2017-06-16 10:51:58

阅读数 550

评论数 0

Rsync同步算法

rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及...

2017-05-18 10:14:59

阅读数 777

评论数 1

Bitcast存储引擎特性

Bitcast存储引擎:由一棵hash tree在内存中管理全量的key,根据key可以获取value在磁盘文件上面的postion,进一步获取value本身的值。写入流程比较简单,顺序写一次磁盘文件,更新hash tree; 读取也比较简单,根据key从内存的hash tree中获取value在...

2017-05-03 11:17:14

阅读数 1120

评论数 0

结合Wireshark分析DNS 协议

摘要:     本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析。 一、概述 1.1 DNS     识别主机有两种方式:主机名、IP地址。前者便于记忆(如www.yahoo.co...

2017-04-07 09:57:12

阅读数 418

评论数 0

Base64编码规则

Base64编码规则是一种用64个字符来表示任意二进制数据的方法。 平时用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是...

2017-04-06 14:34:49

阅读数 370

评论数 0

Kafka消息队列实现业务端确认的方案

参考TCP协议滑动窗口的方式,实现业务端消息的确认;需要自己维护消费到的位置。 根据Kafka消息队列的两个特性: 1. 每个分区的消息只能被一个消费者消费。 2. 每个分区中消息offset是有序递增的。 每个分区在内存中维护一个相对应的滑动窗口,消息的offset为其序列号;只有小...

2017-02-17 10:28:25

阅读数 1205

评论数 0

Kafka跨集群同步工具——MirrorMaker

MirrorMaker是为解决Kafka跨集群同步、创建镜像集群而存在的;下图展示了其工作原理。该工具消费源集群消息然后将数据重新推送到目标集群。 MirrorMaker使用方式 启动mirror-maker程序需要一个或多个consumer配置文件、一个producer配置文件是必须的其他参...

2017-02-16 17:57:40

阅读数 7681

评论数 0

Golang RPC调用例子程序(实现超时机制)

package mainimport ( "fmt" "log" "net" "net/rpc" "time" )func main() { log....

2017-02-05 10:54:09

阅读数 2557

评论数 0

kafka配置文件说明 - server.properties

server.properties中所有配置参数说明(解释)如下列表: 参数 说明(解释) broker.id =0 每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况 log.dirs=/...

2017-01-20 09:35:33

阅读数 305

评论数 0

运行中的处理器所处的三种状态--写在2016年最后一贴

做应用层开发的这图都应该看过很多遍了。 1. 最底层是硬件层支撑所有软件层的运行以及特定功能的实现;像CPU、内存、鼠标、键盘、硬盘、光驱、网卡等等。 2. 在硬件之上的是设备驱动程序,用于驱动硬件设备;这一层相当于硬件对应的软件实现。 3. 再往上是操作系统内核层这是操作系统的最核心的部分...

2016-12-30 16:15:15

阅读数 571

评论数 0

Mysql 设置所有机器都可访问

GRANT ALL PRIVILEGES ON . TO ‘user’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION; FLUSH PRIVILEGES; 设置用户名为:user,密码为:password的账号可能通过任意一台机器访问数据库

2016-12-27 17:00:17

阅读数 2158

评论数 1

最简单的Redis客户端实现——Golang

使用Golang分析Redis协议,实现一个简单客户端;使用方法简单,Connect完成后直接Write、Read进行操作,或者使用Cmd。可有助于理解Redis协议,其实挺简单的。 package redisimport ( "bufio" "err...

2016-11-30 16:00:40

阅读数 1280

评论数 0

Go语言string与[]byte类型转化避免拷贝

在Go语言中string类型与[]byte强制类型转化的是后会发生内存拷贝,这是由于这两种类型的特性所决定的; string类型是不允许修改内容,[]byte是可以修改的。 下面提供两个函数使用时不会发生内存拷贝吗,但是使用过程中药慎重,确保不会修改底层内容,否则很大可能会导致程序异常imp...

2016-11-30 15:39:36

阅读数 6079

评论数 0

RedisProxy 系统设计与使用说明

RedisCloud是一套基于GO语言实现的Redis分布式解决方案, 对于使用方来说, 使用RedisCloud与使用原生的 RedisServer 没有区别 (有些Redis原生命令在RedisCloud作为命令黑名单不予支持), 上层应用可以像使用单机的 Redis 一样使用多个Redis服...

2016-11-24 11:39:56

阅读数 3588

评论数 0

GO-log日志封装

Go封装日志: 支持归档输出,一个小时压缩归档一份 最多保留三天的日志 支持日志级别自定义 如果没有指定输出文件默认输出到控制台。 支持输出文件名行号,以及时间、日志界别 如: info 10:08:40.826836 handler.go:81 package loggerimpo...

2016-08-12 15:23:08

阅读数 3385

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭