Go语言中文网 为您找到相关结果 158

深入浅出 Raft - 基本概念

引子 因为一直在跟 Raft 打交道,虽然对 Raft 很熟悉了,但如果你要我去给一个完全不知道什么是 Raft 的人讲 Raft,我觉得难度还是非常大的。所以我决定使用我一贯罗里吧嗦,用比喻和讲故事的方式,来尝试说说 Raft。 如果你跟你孩子一起看过小猪佩奇,你大概就能知道我为啥用了这么怪的取名。如果没看过的,强烈推荐你去看看,这真的是一部很不错的儿童动画。 日志和状态机 兔小姐准备在泥坑小镇成立一家银行(就叫泥坑银行吧)。对于银行储蓄系统的设计,兔小姐找来了猪爸爸。 兔小姐:『猪爸爸,我们要保证,无论怎样用户的金钱不能有错误。假如客户存了 100 块钱,那么他的账户就会多出来 100 块钱,不会是 101,也不会是 99。』 猪爸爸:『好的,兔小姐,我觉得我们可以这样。如果一个客户来存...阅读全文

博文 2017-10-16 02:43:35 siddontang

Monkey测试的策略和分析

Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象、目的及类型如下: 测试的类型分为:应用程序的稳定性测试和压力测试 测试对象分为:单一apk和apk集合 测试的目的分为:解决问题的测试(忽略异常的测试)和验收测试(不忽略异常的测试) 对于应用程序的稳定性测试有两中情况 在针对单个apk是,对不忽略异常的,在进行单个apk的验收测试时,则使用单一apk且不忽略异常的命令执行。对忽略异常的,在进行单个apk的解决问题的测试时,则使用单一apk且忽略异常的命令执行,这样可以在一次执行的过程中发现应用程序中的多个问题。 而针对多个apk时,对不忽略异常,这里就直接举个列子 例如:monkey –pkg-whitelist-fi...阅读全文

Go 开发进程说明

Go in Go随着 Go 1.5 版本的开发,现在整个系统都是使用 Go 编写的(有一小部分汇编)C 已经成为过去时了。注: gccgo 仍然很强大 这篇文章主要探讨原始编译器 gcc为什么之前用 C 编写?启动(而且 Go 的主要目的不是作为一个编译器实现语言)为什么编译器使用 Go 重写?不单单是验证,我们还有更多实际的原因:Go 比 C 容易编写(实际上)Go 比 C 容易调试(即使没有调试器的情况下)Go 将成为你唯一需要会的语言,鼓励贡献 Go 有更好的模块化,工具链,测试工具,配置工具等等Go 很简单就能进行并行操作虽然看起来很多优势,但是还是夸的太早了:)设计文档: golang.org/s/go13compiler 为什么运行时也是用 Go 重写?我们有自己的 C 编译器来...阅读全文

博文 2015-05-29 12:00:00 叶秀兰

同步文件和目录命令行工具Rclone

Rclone 是一个用于和同步云平台同步文件和目录命令行工具。采用Go语言开发。 **特性:** MD5/SHA1检查文件完整性。 时间戳支持。 部分同步。 文件复制。 目录同步。 检查文件是否一致。 可以同步不同云平台的数据。 可选的加密。 可选的FUSE挂载。 **支持以下平台:** Google Drive Amazon S3 Openstack Swift / Rackspace cloud files / Memset Memstore Dropbox Google Cloud Storage Amazon Drive Microsoft One Drive Hubic Backblaze B2 Yandex Disk The local...阅读全文

开源项目 2017-02-07 03:16:43 ncw

大型分布式网站架构技术总结:高性能+高可用+可扩展+可伸缩架构

本文是大型分布式网站架构的技术总结,文末有分布式架构设计33精讲资料~ 一、大型网站架构特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 二、大型网站架构目标 高性能:提供快速的访问体验。 高可用:网站服务一直可以正常访问。 可伸缩:通过硬件增加/减少,提高/降低处理能力。 安全性:提供网站安全访问和数据加密,安全存储等策略。 扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块。 敏捷性:随需应变,快速响应; 三、大型网站架构模式 分层:一般可分为,应用层,服务层,数据层,管理层,分析层; 分割:一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。 ...阅读全文

Erlang和Go的并行化concurrent比较

说到concurrent,一般会想到Erlang和Go语言,这两种语言的主打特性都是concurrent,Erlang有着20多年的历史,是为简化开发电信大并发和高可靠性应用而发明的语言,Go是Google从2007年开始设计,2009年opensource出来的,Go属于一种system language,opensource的就算这两种语言吧,公司内私有的语言则有TNSDL,SDL的一个变种,以前写过一篇SDL和Erlang比较的文章(http://bookjovi.iteye.com/blog/1233299),这三种concurrent语言各有不同,下面看看: 1)语言设计 Erlang的实现基于虚拟机beam,Go是编译型语言,有着独成一体的compiler(不同于gcc,Go很好...阅读全文

博文 2014-10-16 13:00:01 chenyi8888

go 接口静态与动态校验

go 接口静态与动态校验 go 的接口是duck模型,类型不需要显式的声明实现某个接口,只需实现该接口的所有methods,就认为该类型实现该接口。在实际中,大部分接口转换是静态的,发生在编译时刻;go 也支持动态接口转换,转换发生在运行时。 比如,需要传递 *os.File 到一个需要io.Reader参数的函数,如果*os.File 没有实现接口io.Reader,则程序在编译期就无法通过; 有些接口装换发生在运行期,一个实例就是 encoding/json 包,其定义了一个 Marshaler接口,当JSON解析器接收的value实现该接口,就调用该value的marshaling 方法转换,反之则调用系统默认的转换器。这种转换可以通过go的type类型断言实现: if m, ok :...阅读全文

博文 2015-06-17 20:12:40 hittata

采用interface实现的限时调用方法

在实时性要求高的工程项目中,对于方法执行的时间有较高的要求,本示例程序,实现了一种安全的传入任意参数的方法限时调用工具类,能执行方法的最大容忍运行时间,保证服务不超时。