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

企业如何真正使用Docker

企业喜欢Docker。在许多企业的2016战略规划上,Docker已成为科技创业公司和金融服务集团的宠儿,尽管Docker还非常“年轻”。 众所周知,企业不需要在“DevOps改造”到某个阶段才能开始使用Docker。他们不需要一个微服务模型或一批全栈工程师。事实上,Docker多年IT改造最合适的选择,实际上可以帮助大团队更快地实现DevOps最佳实践。 混合云是将近一半企业的目标,其中大部分都在采用DevOps工具链。企业招聘云顾问,整合数据中心,打破工程团队之间壁垒,新应用程序迁移到AWS或其他公共云。 ### 精通混合云 尽管混合云想象中有灵活性的好处,但是跨多个复杂系统管理安全性和可伸缩性不是一件轻而易举的事情。绝大多数企业的内部应用程序受困于内部依赖,网络...阅读全文

DockOne微信分享(七十四):传统金融 IT 对混合云管理的一些思考

【编者的话】在新常态经济背景下,金融脱媒加剧,跨界融合和互联网金融的发展加速传统金融企业变革转型。传统金融 IT 需要积极面对以互联网、云计算、大数据为代表的新技术带来的机遇与挑战,主动进行架构转型。本次交流分享在落实企业云计算规划工作中的一些思考。 一、 传统金融 IT 的行业特点受行业特点所限,传统金融 IT 需要接受银监会的多项监管要求,重要的包括: 在《商业银行信息科技风险管理指引》的推动下,建设信息科技管理(由 IT部门负责)、风险管理(由风控部门负责)、审计(由审计部门负责)“三道防线”体系。在《商业银行数据中心监管指引》的推动下,建设生产数据中心和灾备数据中心,后续有演进为“2地 3 中心”架构。在《商业银行业务连续性监管指引》的推动下,建设业务连续性管理组织体系。在《商业银行...阅读全文

博文 2017-06-25 16:25:11 远洋li

go中的main函数和init函数

Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个package中每个文件只写一个init函数。 Go程序会自动调用init()和main(),所以你不需要在任何地方调用这两个函数。每个package中的init函数都是可选的,但package main就必须包含一个main函数。 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用...阅读全文

博文 2016-02-14 04:00:00 yangyangye

老司机带你用 Go 语言实现 Raft 分布式一致性协议

老司机带你用 Go 语言实现 Raft 分布式一致性协议   随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。   为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。任何一个分布式系统都无法同时满足 Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中两项。 但是,一个分布式系统无论在 CAP 三者之间如何权衡,都无法彻底放弃一致性(Consistency),如果真的放弃一致性,那么就说明这个系统中的数据根本不可信,数据也就没有意义,那么这个系统也就没有任何价值可言。...阅读全文

博文 2017-02-09 06:00:24 chauncy

阿里云Elasticsearch的X-Pack:机器学习、安全保障和可视化

摘要: ELK是日志分析领域较为流行的技术选择,不少阿里云用户选择在ECS上搭建开源Elasticsearch。与自建开源Elastisearch相比,阿里云Elasticsearch做了性能优化,支持弹性扩容,并搭载了商业版组件X-Pack,为用户提供即开即用的托管服务。 ![图片描述][1] X-Pack ELK是日志分析领域较为流行的技术选择,不少阿里云用户选择在ECS上搭建开源Elasticsearch。目前,阿里云和ES官方Elastic公司展开了产品合作,联合推出了阿里云Elasticsearch。与自建开源软件相比,这款产品做了性能优化,支持弹性扩容,并搭载了商业版组件X-Pack,为用户提供即开即用的托管服务。本文将对商业版组件X-Pack做深入解读。 **...阅读全文

Go Modules与GOPROXY三分钟学会

前言: 随着Go 1.13发布,GOPROXY默认值proxy.golang.org在中国大陆不能被访问。七牛云顺势推出goproxy.cn,以利于中国开发者更好使用Go Modules,它是非盈利性的项目,首先感谢七牛云。Windows下使用教程:(1)升级到Go1.13(2)运行 //开启mod(3)运行 //设置七牛云goproxy代理可以通过运行go env查看(2)、(3)步骤是否设置成功 (4)在项目跟目录下执行go mod init 执行成功后生成go.mod文件其他指令 go get -u /...阅读全文

Go中error类型的nil值和nil

先看C语言中的类似问题:空字符串。 const char* empty_str0 = ""; const char* empty_str1 = "\0empty"; const char* empty_str2 = NULL; 以上3个字符串并不相等,但是从某种角度看,它们都是对应空的字符串。 empty_str0 指向一个空的字符串,但是empty_str0本身的值是有效的。 empty_str1 指向一个非空的字符串,但是字符串的第一个字符是'\0'。 empty_str2 本身是一个空的指针。 Go的error是一个interface类型,error的nil问题和C语言的字符串类似。 参考官方的error文档说明: http://golang.org/doc/go_faq.html#n...阅读全文

博文 2014-10-25 10:34:21 chai2010

一致性hash算法原理及golang实现

概述 这里存在一种场景, 当一个缓存服务由多个服务器组共同提供时, key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目), 这里乍一看没什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成服务的不稳定. 为了解决类问题,一致性hash算法应运而生. 1. 一致性hash算法特点 在分布式缓存中, 一个好的hash算法应该要满足以下几个条件: 均衡性(Balance) 均衡性主要指,通过算法分配, 集群中各节点应该要尽可能均衡. 单调性(Monotonicity) 单调性主要指当集群发生...阅读全文

博文 2016-09-10 16:00:01 u010511236

游戏测试技术综述

近两年,IT业一直经历着“寒冬”,但是游戏软件业却呈现出了勃勃生机。网络游戏仅在中国游戏市场出现不过两三年,正式投入商业运营的游戏数目已超过100款,但众所周知,都是国外的(主要是韩国的游戏)统治着国内大部分的市场,国内游戏软件想要突围而出,主要从二个方面,一是可玩性,由于中国有上下五千年的传统文化,博大精深,是我们得天独厚的优势,二是游戏的质量,游戏测试作为游戏开发中质量保证的最重要的环节,在游戏设计与开发的过程中发挥着越来越重要的作用。    游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同的特性:测试的目的是发现软件中存在的缺陷。测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书,需求文档,产品文件,或是用户手册,源代码,或是工作的可执行程...阅读全文

Golang的一致性哈希实现

Golang的一致性哈希实现 一致性哈希的具体介绍,可以参考:http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html 1 import ( 2 "hash/crc32" 3 "sort" 4 "strconv" 5 "sync" 6 ) 7 ​ 8 const DEFAULT_REPLICAS = 100 9 type SortKeys []uint32 10 ​ 11 func (sk SortKeys) Len() int { 12 return len(sk) 13 } 14 ​ 15 func (sk SortKeys) Less(i, j int) bool { 16 return sk[i] < sk[j] 17...阅读全文

博文 2016-04-21 03:00:03 ldaniel

基于AMQP实现的golang消息队列MaxQ

---- *背景* ---- 饿厂此前一直是重度rabbitmq使用者,在使用的过程中遭遇了大量的问题,性能问题、故障排查问题等。Rabbitmq是用erlang开发的,该语言过于小众,实在无力在其之上再做运维和开发。痛定思痛,我们于是决定自研一个消息队列,为了降低业务层的接入难度,所以该消息队列需要兼容AMQP协议,这样就可以在业务层完全无感知的情况下接入MaxQ。 ------------ *什么是AMQP协议?* ------------ AMQP(Advanced Message Queuing Protocol),是一套消息队列的七层应用协议标准,由摩根大通和iMatrix在2004年开始着手制定,于2006年发布规范,目前最新版是AMQP 1.0,MaxQ基于AMQP 0.9.1...阅读全文

博文 2017-09-09 13:16:23 饿了么

深入浅出 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

ByteEdu 每日新闻(2019-03-11)

ByteEdu 每日新闻(2019-03-11) Golang资料集Go最新资料汇总链接更改 http://www.byteedu.com/forum.php?mod=viewthread&tid=25 字节教育 Go语言初学者的学习资料 http://www.byteedu.com/forum.php?mod=viewthread&tid=191&extra=page%3D1 Go语言贪吃蛇实战项 上传完成(VIP免费看) http://www.byteedu.com/forum.php?mod=viewthread&tid=267&extra= LollipopGo开源游戏服务器源码剖析(视频教程) http://www.byteedu.com/forum.php?mod=viewthr...阅读全文

博文 2019-03-11 09:34:44 Golang语言社区

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

本文是大型分布式网站架构的技术总结,文末有分布式架构设计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

“三国杀”?铂链的突围

“EOS三国”DApp最近一度处于舆论的风口浪尖,这款在EOS链上连续24h和7天排名第一的游戏“EOS三国”,本来成绩十分漂亮,却被扒出根本就是一款偷梁换柱剽窃铂链同类DApp的产品,目的是偷梁换柱大肆捞金。据相关人士爆料,该DAPP创始人张吉杭曾是铂链前DAPP项目负责人,在职期间就与铂链发生龃龉,屡次延期跳票产品上线,去年十月甚至出现任性离岗事件。据称这些任性的行为曾一度导致铂链大户十分受伤,善济等大户对DTO的投资打了水漂,对DTO和BTO持币人造成严重损失,对铂链志愿者系统也造成严重摧残,最终其恶劣的行为导致去年11月份善济愤而砸盘,BTO从5毛跌至7分,跌幅达70%。如今张吉杭被铂链开除后更是深陷盗版剽窃DAPP的罗生门,颇为吊诡的是,张吉杭在一次采访中自称是“EOS三国”的创始...阅读全文

博文 2019-07-11 15:32:47 宏链财经

一个上线90天就被焦点访谈报道的APP 如何通过阿里云升级它的创业体验

在这个脑洞大开的APP上面,你可以出售任何你想出售的“商品”,包括你的时间、你的技能,你可以陪人聊天、代人跑腿,甚至只是笑给你听。这款特别的APP上线仅仅60天就获得了1个亿的A轮融资,平台服务人次超10万,最近还得到了中央电视台《焦点访谈》的关注。这款APP的名字是“空格”。 据公司创始人兼CEO唐永波介绍,“空格”的使命是升级生活方式。于他而言,他要通过“空格”打造一个更广阔的“升级生活”的格局:1个新商业模式和1个新生态系统,最终实现“1+1>2”的效果。 ![空格配图3.PNG](http://studygolang.qiniudn.com/160105/048e68ce5f595c257b6fcf60c49176c5.PNG) 1个新的商业模式指S2C(Serv...阅读全文

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

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