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

移动APP测试要点之性能、兼容、接口、交叉测试

之前有写过APP功能测试和安全测试的要点,今天在分享一部分,包括,性能测试、兼容性测试、借口测试、交叉测试。 性能测试:评估App的时间和空间特性 ; 极限测试:在各种边界压力情况下,如电池、存储、网速等,验证App是否能正确响应。包括:内存满时安装App、运行App时手机断电、运行App时断掉网络 响应能力测试:测试App中的各类操作是否满足用户响应时间要求。包括:App安装、卸载的响应时间、App各类功能性操作的影响时间 压力测试:反复/长期操作下、系统资源是否占用异常。包括:App反复进行安装卸载,查看系统资源是否正常、其他功能反复进行操作,查看系统资源是否正常。 性能评估:评估典型用户应用场景下,系统资源的使用情况。 容...阅读全文

Go语言学习(二):array、slices和map

前言 近来个多月忙于论文,各方面原因的综合,说多都是泪,等着结果了。关于Go语言的学习,本文的内容老早就学习了,之前时间也不知去哪了,而且也没心思,现在誊写上来吧。 数组array 定义形式: [n],n标示array长度,标示类型。 // e.g: [32]byte // 长度32的数组,每个元素为1个byte [16]*float64 // 指针数组 [3][5]int // 二维数组 在Go语言中,数组长度在定义后不可更改。获取array元素个数方法:arrLength := len(array) 元素访问与C一致。需要注意的一点,Go语言中数组属于值类型,不能像C一样用于指针传递。也就是说,如果数组作为函数入参,则在调用该函数时,函数将对数组做一份拷贝副本,...阅读全文

博文 2014-11-08 00:00:02 fzy0201

Golang 心跳的实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lengyuezuixue/article/details/79235850 在多客户端同时访问服务器的工作模式下,首先要保证服务器的运行正常。因此,Server和Client建立通讯后,确保连接的及时断开就非常重要。否则,多个客户端长时间占用着连接不关闭,是非常可怕的服务器资源浪费。会使得服务器可服务的客户端数量大幅度减少。 因此,针对短链接和长连接,根据业务的需求,配套不同的处理机制。 短连接 一般建立完连接,就立刻传输数据。传输完数据,连接就关闭。服务端根据需要,设定连接的时长。超过时间长度,就算客户端超时。立刻关闭连接。 长连接 建立连接后,传输数据,然后要保持连接,然后再次传输数据。直...阅读全文

博文 2019-01-15 09:31:34 lengyuezuixue

Golang上传文件到七牛云

### 获取 首先要获取的是七牛云官方的SDK ``` go get -u github.com/qiniu/api.v7 ``` ### 七牛云 - [七牛云](https://www.qiniu.com/)没有帐号的去注册一个帐号。 - [个人中心](https://portal.qiniu.com/user/key)有账号的直接进个人中心,去查看秘钥 AccessKey/SecretKey ### 代码 一些常变量 ``` const ( //本地保存的文件夹名称 upload_path string = "/files/" ) var ( //BUCKET是你在存储空间的名称 ACCESS_KEY = "******EA09VCy5EfN_*******************" S...阅读全文

博文 2018-04-17 22:38:30 mu1er

我有点不想当程序员了,有没有人开导我几句,骂我几句也行?

:知乎问答我没有学历 24岁那年走投无路去培训机构学java1.25岁那年入职一家国企 干了一年零八个月 这国企就是洗钱公司 其间就是维护21世纪初的老项目 对技术没什么提高 后来得重病住院休息了四个月 工作被迫辞了 现在这国企裁员60%这家公司薪资给3k 各种奖金4w左右 一年7w多 进这家公司是因为没有别的地方能要我 除了外包 没学历+培训机构+简历不造假的话一个月就2-3次面试机会2.然后加入一家做体制内项目的私企 工作十个月 技术总监和老板不合成心摆烂项目 他成心让项目始终处于不能上线的状态 那公司离职率奇高 基本三个月换一拨人 我在那里没有新项目做 只能每天改前面离职的同事留下的没完没了的bug 公司随即欠薪多次 技术总监还不让上班时间学习东西 随时溜达监视谁学习东西就批评谁 无奈...阅读全文

博文 2018-07-25 21:34:47 Java架构技术分享

通用的去中心化应用平台Vite

Vite 是一个通用的去中心化应用平台,在兼顾安全性的同时,满足了工业级应用对高吞吐、低延迟和扩展性的要求。 Vite 采用 DAG 账本结构,账本中的交易按账户分组。Vite 中的快照链结构,可以弥补账本自身防篡改能力的不足。通过分层共识算法 HDPoS,将交易的写入和确认解耦,并保障系统的高性能和扩展性。 Vite 的虚拟机部分兼容 EVM,智能合约语言在 Solidity 基础上进行了适当扩展,提供了更为强大的描述能力。另外,在 Vite 设计中,一个重要改进是采用了基于消息驱动的异步架构,智能合约之间通过消息传递信息,从而极大提高了系统的吞吐率和扩展性。 Vite 除了内置原生代币之外,还支持用户发行自己的数字资产,同时提供了跨链价值传输以及基于路印协议 [1] 的...阅读全文

【预警】新型勒索病毒来袭,eCh0raix紧盯NAS设备

病毒预警 近日,研究人员发现了新型勒索病毒eCh0raix,该勒索病毒针对QNAP网络附属存储(NAS)设备进行攻击,其攻击行为类似于Ryuk和LockerGoga勒索病毒,亚信安全将其命名为Ransom.Linux.ECHORAIX.A。NAS设备是网络连接的存储设备,主要用于文件存储和备份系统。由于其成本低,效率高并且可扩展,受到用户欢迎,其市场占有率高达80% 。受本次勒索病毒影响的NAS设备包括QNAP TS-251、QNAP TS-451、QNAP TS-459 Pro II和 QNAP TS 253B。病毒技术细节分析eCh0raix勒索病毒使用Go/Golang语言编写,该病毒通过检查语言来确定被感染的NAS设备所处的位置,如果其位于俄罗斯、乌克兰和白俄罗斯等国家,其会终止自身...阅读全文

博文 2019-07-19 23:32:43 鸿萌数据恢复

软件定义网络(SDN)系统 DaoliNet

** DaoliNet是道里云公司自主研发的为基于Docker的应用平台量身打造的动态敏捷高效网络技术,DaoliNet将以全新的技术变革,通过技术开源模式,为全球Docker容器网络贡献价值。 ** Docker是 目前最火的容器技术 ,而DaoliNet是一个软件定义网络(SDN)系统,其设计目的是为Docker容器提供动态、高效的链接。在Docker容器中,微服务工作负载具有轻量且短暂的性质,DaoliNet恰好适用于这种性质。 ### DaoliNet介绍: **顶层特点** 资源高效:当容器处于相互不主动通信,但可随时切换到提供全连接性能的状态下,容器之间的连接几乎不消耗主机资源。这同容器高效利用主机CPU资源的方式相同。使用者可以从服务器资源中获得更多; ...阅读全文

Go 在 Google I/O 2011 的视频

Google I/O 2011 的官方视频大部分都已经放出了。昨天 Golang 团队也发布了 Google I/O 2011 上关于 Go 的相关视频。 由于众所周知的原因,大家不能拜访“油吐伯”。所以视频我放到土豆上了。 大家看到的这个蓝色毛绒公仔叫“Gopher”,很有爱的 Golang 吉祥物,这次也出现在 Google I/O 2011 的现场。 不知道能不能搞到一个正版的。其实我严重怀疑这个来自悉尼的公仔是东莞产的……你们懂…… 用 Go 编写 Web 应用 演示文稿下载(英文) 这个演讲通过一步步开发并部署第一个 Go App Engine 应用:Moustachio,展示了 Go 版本的 App Engine 的应用开发。 Go 实例 演示文稿下载(英文) 这是在 I/O B...阅读全文

博文 2014-10-09 16:15:37 mikespook

基于TableStore构建简易海量Topic消息队列

摘要: 12月7日,2017苏州·云栖大会上,阿里云发布全新的混合云数据存储和灾备方案,此次发布的内容包括最新推出的混合云容灾服务HDR和混合云备份服务HBR,以及全面升级的混合云存储阵列CSA2000和CSA3000。 12月7日,2017苏州·云栖大会上,阿里云发布全新的混合云数据存储和灾备方案,此次发布的内容包括最新推出的混合云容灾服务HDR和混合云备份服务HBR,以及全面升级的混合云存储阵列CSA2000和CSA3000。 ![3d6b1826d99c00df1619050f7111bd2d417523c2[1].png](https://static.studygolang.com/171213/1c82ed88ac1bbb5c35c7c3896c1971a7....阅读全文

【GO for java programmers】面向Java开发者的GO编程2

英文原文在此www.nada.kth.se/~snilsson/go_for_java_programmers 译文同步至http://blog.csdn.net/kkkloveyou/article/details/8308534 http://bbs.gocn.im/thread-73-1-1.html ====================接上文,以下正文========================. 条件语句 Go在条件语句中并不使用括号,像 if条件语句 , for 条件语句的表达式, switch 条件语句的值. 另一方面,它并不需要在if或 for条件语句中加花括号 if a < b { f() } if (a < b) { f() } // 括号是不必要的. if (a...阅读全文

博文 2014-11-19 01:00:02 kkkloveyou

Golang 实现LRU算法

缓存文件置换机制是计算机处理缓存存储器的一种机制。 计算机存储器空间的大小固定,无法容纳服务器上所有的文件,所以当有新的文件要被置换入缓存时,必须根据一定的原则来取代掉适当的文件。此原则即所谓缓存文件置换机制。 缓存文件置换方法有: 先进先出算法(FIFO):最先进入的内容作为替换对象 最近最少使用算法(LFU):最近最少使用的内容作为替换对象 最久未使用算法(LRU):最久没有访问的内容作为替换对象 非最近使用算法(NMRU):在最近没有使用的内容中随机选择一个作为替换对象 type Lru struct { max int l *list.List Call func(key interface{}, value interface{}) cache map[interface{}]*l...阅读全文

博文 2019-08-29 11:33:03 howie_矜暮

Go语言二分之查找

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列查找过程:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。算法要求:1.必须采用顺序存储结构。2.必须按关键字大小有序排列。要求:请对一个有序数组进行二分查找 {1,8, 10, 89, 1000, 1234} ,输入一个数看看该数组是否存 在此数,并且求出下标,如果没有就 ...阅读全文

博文 2019-03-11 20:35:22 GoDevops

【互联网安全】阿里手把手教学,DDoS攻防原理及实战

课程介绍 DDoS(Distributed Denial of Service,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的攻击之一。 本课程中,阿里云安全专家为你讲解DDoS攻防原理。 课程列表 • 课时1:DDoS介绍和发展史 • 课时2:DDoS攻防之Syn Flood • 课时3:DDoS攻防之DNS Flood • 课时4:DDoS攻防之HTTP Flood 阅读原文http://click.aliyun.com/m/27940...阅读全文

区块链开发工程师要干什么?

区块链开发工程师要干什么?如何成为一名合格的区块链工程师,其必备技能有掌握加密技术、共识算法、Go/java/C++、以太坊平台等内容,才能够完成公司区块链项目的研发和维护工作内容。 区块链开发 目前学完区块链专业的课程的两个就业方向: 一是Go编程开发工程师,多从业于软件开发公司,从事以下领域的编程:服务器编程、分布式系统编程、网络编程、数据库操作、开发云平台等。 目前很多云平台采用Go开发,Go语言是目前项目转型区块链首选的语言,也是软件工程师转型首选的语言,是添加技术栈的首选语言。 二是区块链开发工程师,当前区块链开发人员多需要在以下行业:互联网金融行业、电子商务行业、物流行业、游戏行业等。 区块链工程师岗位职责:负责区块链底层技术研发。 以下是小编网罗的几个区块链工程师岗位要求: 1...阅读全文

博文 2018-12-13 21:34:47 晚qkl

数据结构-(队列顺序存储)循环队列的实现(golang)

import ( "errors" ) //循环队列结构体(顺序存储) type CirularQueue struct { elem []ElemType //储存的数据 front int //头指针 rear int //尾指针 } //初始化循环队列 func InitCQueue() *CirularQueue { cqueue := new(CirularQueue) cqueue.elem = make([]ElemType, MAXSIZE) cqueue.front = 0 cqueue.rear = 0 return cqueue } //清空循环队列 func (cqueue *CirularQueue) ClearCQueue() { cqueue.front = 0...阅读全文

博文 2017-02-09 16:59:44 卑微了承诺-life

为什么全力推荐Golang

为什么全力推荐Golang 转自:  https://zhuanlan.zhihu.com/p/19959647 讨论哪个语言更好,就像在争论姚明和刘翔谁是更优秀的运动员。因为各自的坐标象限不同,常常会陷入一个难有结论怪圈。 所以本文绝不是在说Golang是比其他语言更好的语言。Golang只是最值得推荐的语言,尤其适合快速成长中的后端研发团队。 我推荐Golang的主要理由,并不是技术性的要素:不是他的高并发能力,编译的速度,跨平台能力,内存效率,也不是社区的活跃度等等。 事实上,创业之后,或者说成为一个技术管理者之后,技术优点就已经不再是我推荐任何一种语言的关键因素了。 因为,对于一个研发团队来说,项目成败的关键因素是:成本、质量和时间! 1、人力资源的成本 人力资源是研发团队最重要...阅读全文

博文 2018-06-06 00:32:02 yueguanyun

大规模指标储存平台Uber M3

M3  是 Uber 开源的一个基于分布式时序数据库 M3DB 构建的度量平台,可每秒聚合 5 亿个指标,并且以每秒 2000 万笔的速度持续存储这些结果。 M3 目前拥有超过 66 亿条时序数据,每秒聚合5亿个指标,并在全球范围内每秒持续存储 2000 万个指标(使用 M3DB),批量写入将每个指标持久保存到不同区域的三个副本中。它还允许工程师编写度量策略,以不同的时间长度和不同粒度对资料进行保存。这使得工程师和数据科学家能以不同的留存规则,精细和智能地存储有不同保留需求的时序数据。 基于 Uber 日益增长的度量存储工作负载的经验,M3 具备以下特性: 优化指标管道的每个部分,为工程师提供尽可能多的存储空间,以实现最少的硬件支出成本。 通过自定义压缩算法 [M3TSZ](...阅读全文

适合Go语言初学者的资料

适合Go语言初学者的资料 本页是为那些对Go语言学习感兴趣的开发者列举的一些学习资料。(注:部分网站无法访问,请自备翻墙工具) 安装GO语言和配置工作空间 从这里开始学习如何创建一个工作空间来写Go代码 How to Write Go Code Writing, building, installing, and testing Go code 在线资源 一旦你配置完Go语言的环境后,这里有一些学习Go的优秀资源。 The Go programming language tour Go by example Effective Go The Go language FAQ Going Go Programming by WIlliam Kennedy 教程 Writing table dri...阅读全文

博文 2014-10-11 12:00:01 wuwenxiang91322

Serverless 架构:用服务代替服务器

Serverless 架构:用服务代替服务器 转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究。如需 加入微信群参与微课堂、架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号 ”。 还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值520亿美元的SaaS之王。今天谈谈『No Server』有关的事, 继OpenStack、Docker 、MiscroService、Unikernel、Kubernetes和Mesos之后,ServerLess正成为Google、AWS乃至创业公司暗战的新战场,它能否成为云计算领域的颠覆性趋势? 我相...阅读全文

go的学习记录(二)--- 数组与数组切片

在go语言的学习中,少不了接触的就是数组和数组切片,并且这两者的使用也是非常频繁的。因此如果不能进行很好的理解,或许很容易犯错。那么在go中,数组和数组切片都有什么特点,又是怎么声明赋值的,如何使用的呢,下面我就自己的理解总结一下,个人总结可能不全或者有错,望指点。 一、数组和数组切片的特点 数组是什么就不用多说了,作为开发者,这是经常会用到的东西,相信大家都有自己的理解。现在先总结一下数组的特点 1. 数组的长度在定义之后就不可被更改 2. 数组声明时的长度必须为常量或常量表达式,即可以在编译器确定长度,分配内存 3. 数组的下标从0开始,最后一个元素的下标为(长度-1),即在go中可以写为 len(arr)-1 4. go语言的数组是值类型,在作为参数传递时会做数组的复制操作。因此作为参...阅读全文

博文 2016-01-27 13:00:00 haust_wang

分布式文件存储gdfs

# gdfs 分布式文件系统 #### 介绍 gdfs分布式文件服务基于GO语言,前端页面使用vue-admin,主要用于小型文件存储。 它使用了带权重RoundRobin算法实现的负载均衡,使用技术框架gin+jwt+viper+gorm...等. #### 软件架构 网关和存储服务关系,如下图所示。 网关下一级是节点,每个节点下可以有N个服务,服务之间数据互相同步,互相备份。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/170052_eca3d8a8_4814434.png "gdfs架构.png") #### 网关服务介绍: 主要功能 ...阅读全文

开源项目 2021-11-01 09:49:09

自动化部署运维工具TiDB Operator

TiDB Operator 是 [TiDB](https://www.oschina.net/p/tidb) 在 Kubernetes 平台上的自动化部署运维工具,借助 TiDB Operator,TiDB 可以无缝运行在公有云厂商提供的 Kubernetes 平台上,让 TiDB 成为真正的 Cloud-Native 数据库。 第一,使用传统的自动化工具带来了很高的部署和运维成本。TiDB 的分层架构对于分布式系统是比较常见的,各个组件都可以根据业务需求独立水平伸缩,并且 TiKV 和 TiDB 都可以独立使用。比如,在 TiKV 之上可以构建兼容 Redis 协议的 KV 数据库,而 TiDB 也可以对接 LevelDB 这样的 KV 存储引擎。 但是,这种多组件的分布式系统增加了手...阅读全文

剖析使Go语言高效的5个特性(1/5): 变量的处理和存储

翻译原文链接 转帖/转载请注明出处 英文原文链接 发表于2014/06/07 我最近受邀在Gocon会议上做了一个演讲。Gocon是一个非常棒的,每半年一次在日本东京举行的Go会议。Gocon 2014是完全由社区举办的一整天活动。它包括了培训以及一个下午的演讲。演讲的主题主要围绕在Go语言在线上环境中的应用。 以下是我的演讲稿。原始的演讲稿强调慢而清楚的演讲,所以我做了略微的修改使得它更具可读性。 这里我要感谢Bill Kennedy,Minux Ma,特别是Josh Bleecher Snyder。Josh为准备这次演讲给予了很多的帮助。 下午好,我的名字叫David。我很高兴今天能够参加Gocon会议。我两年前就打算要参加这个会议,非常感谢会议组织者给我这个演讲的机会。我想让我的演讲以...阅读全文

博文 2017-08-13 05:34:57 曼托斯

分布式文件系统JuiceFS

## JuiceFS JuiceFS 是一款高性能 POSIX 文件系统,针对云原生环境特别优化设计,在 GNU Affero General Public License v3.0 开源协议下发布。使用 JuiceFS 存储数据,数据本身会被持久化在对象存储(例如,Amazon S3),而数据所对应的元数据可以根据场景需求被持久化在 Redis、MySQL、SQLite 等多种数据库引擎中。JuiceFS 可以简单便捷的将海量云存储直接接入已投入生产环境的大数据、机器学习、人工智能以及各种应用平台,无需修改代码即可像使用本地存储一样高效使用海量云端存储。 **项目地址**: https://github.com/juicedata/juicefs 📺 **视频**: [什...阅读全文

Go语言中的运算符

1 概述 Go语言提供了,算术,关系,逻辑,位,指针,赋值运算符。本篇整体说明一下。 2 算术运算 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 几个细节,需要留意一下。 整数与浮点数进行运算,会将整数转化为浮点数,再运算。 两个整数相除,结果是整数,取整数部分。5/3 结果会是 1。 求余,如果被除数或除数存在负数,那么余数与被除数保持一致。此处是求余不是取模。 ++/--,不区分前后,只有变量后的语法,就是 v++。同时++/--构成语句而不是表达式,意味着不能直接赋值。 3 字符串连接运算 + +运算符,也可以完成字符串的连接运算。 "Hello" + " " + "Hank!" 4 关系运算 == 检查两个值是否相等 != 检查两个值是否不相等 \> 检查...阅读全文

博文 2018-10-28 07:35:08 小韩说课

10年大数据架构师:日访问百亿级,如何架构并优化日志系统?

日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台为例,双 11 大促活动期间,它们可能每小时的日志数量达到百亿规模,海量的日志数据暴增,随之给技术团队带来严峻的挑战。 本文将从海量日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比;后续调优过程:横向扩展与纵向扩展,分集群,数据分治,重写数据链路等实际现象与问题展开。日志系统架构基准 有过项目开发经验的朋友都知道:从平台的最初搭建到实现核心业务,都需要有日志平台为各种业务保驾护航。 如上图所示,对于一个简单的日志应用场景,通常会准备 master/slave 两个应用。我们只需运行一个 Shell 脚本,便可查看是否存在错误信息。随着业务复杂度的增加,应用场景也会变得复杂。虽然监控系统能够显示...阅读全文

博文 2018-08-17 10:34:57 养码场

Go语言中的数组(array)和数组切片(slice)

在Go语言中,数组长度在定义后就不可更改,在声明时长度可以为一个常量或者一个常量表达式(常量表达式是指在编译期即可计算结果的表达式)。数组的长度是该数组类型的一个内置常量,可以用Go语言的内置函数len()来获取。 数组的长度在定义后无法再次修改;数组是值类型,每次传递都产生一份副本。 初看起来数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是一个指针。数组切片的数据结构可以抽象为以下3个变量: 一个指向原生数组的指针 数组切片中元素的个数 数组切片已分配的存储空间 从底层实现的角度看,数组切片实际上仍然使用数组来管理元素,基于数组,数组切片添加了一系列管理功能,可以随时动态扩充存放空间,并且可以被随意传递,而不会导致所管理的元素被复制。 下面用 reflect 包来反射...阅读全文

博文 2014-10-28 10:44:53 ghj1976

[go语言]一种自适应资源分配器的实现

在上一篇博文《利用缓冲信道来实现网游帐号验证消息的分发和等待》中提到提到利用缓冲信道来实现数据包的分发和等待,并给出了一个原型实现。但是其中的缓冲信道有一个不足,即只能允许一定数量的goroutine在同时使用SendAndReceive函数等待消息的分发;如果有更多的goroutine需要等待消息,则必须等其他goroutine获得消息并释放信道以后自己才能发送数据包并等待回应。这个不足在高并发时限制了系统的吞吐量。 为了解决这个问题,本文提供一种自适应的信道分配器的实现作为一种解决方案。因为信道也可以换成别的资源,所以认为它本质上是一种资源分配器。这个自适应资源分配器的原理是: 1.预先分配一定数量的资源放到缓冲信道(缓冲池)里,以便在申请资源时能够快速获得资源 2.如果申请资源时缓冲池...阅读全文

博文 2014-11-02 15:03:54 stevewang

K8S命令的梳理

K8S命令的梳理 kubectl是一个基础的K8S集群管理命令,可以实现对K8S资源的查询,创建,删除,更新,回退等各种各样的操作。由于其复杂的功能体系,命令灵活度又高,因此需要进行常见的一些命令和使用场景的梳理。 1 K8S命令的组成 K8S基础命令由三段式组成: kubectl 动作 资源 [选项] 2 K8S命令的基础动作 常见的K8S命令有8个动作。分别是: get:展示一个或者多个资源 create:通过资源配置文件名或者键盘输入创建资源 expose:选择一个RC,Service,Deployment或者Pod,并且暴露为新的K8s服务 run:在集群上运行指定镜像 set:在对象上设置指定属性 explain:资源的文档 edit:编辑服务器上的资源 delete:通过资源创建...阅读全文

博文 2018-11-16 19:34:48 小孩真笨

切片的内部实现

最近比较忙也没有时间打理专栏,今天决定写一个关于切片的内部实现。 ---- 内部实现 ---- Go中的切片是一种数据结构,切片可以按照自己的方式增长或者减短,切片是一个很小的结构,在我的64位电脑上只有24字节,切片有三个字段如下: type slice struct { array unsafe.Pointer len int cap int } 阅读全文

博文 2017-08-10 00:54:32 诺唯

Golang 数据结构之【4.7环形队列】

package main import ( "errors" "fmt" ) //循环队列 const ( MaxSize int = 20 // 存储空间初始分配量 ) type QElemType int // QElemType类型根据实际情况而定,这里假设为int // 循环队列的顺序存储结构 type SqQueue struct { data [MaxSize]QElemType front int //头指针 rear int //尾指针 } //初始化队列 func (q *SqQueue) InitQueue() { q.front = 0 q.rear = 0 } //清空队列 func (q *SqQueue) ClearQueue() { q.front = 0 q....阅读全文

博文 2019-05-17 06:34:40 JiBadBoy

Kingbloc Pear是为中小企业云服务系统

Kingbloc Pear是什么:Kingbloc Pear是为中小企业云服务系统,应用系统,计算型,管理系统,数据处理平台准备的开发环境。系统整合企业可用案例及开发文档。Kingbloc Pear企业云系统开发平台特点:1 云计算领域主流开发语言golang,语法简洁易懂,部署方便,后期维护方便2 编译后不易被反编译,3 采用Nsq亿万级别消息分发工具,4 免费的开源数据库:mysql,5 高效,简洁的XORM框架,6 最新最靠谱的前端框架angular5 ( 相对与其它流行框架不需要各种额外集成,额外的扩展,整体架构需要提前精心规划)7 全新的前端组件库 ionic38 在大数据展示领域,灵活可控的D3js,和免费的图表展示库echartsjs9 PC 和 H5移动展示一套组件库10 可...阅读全文

以太坊源码分析—账户的管理

前言 以太坊是一个巨大的状态机,在网络中,每一个全节点都保存着以太坊状态机的全部历史,只要愿意,我们可以查询到任何时刻的状态(黄皮书中 World State),其中账户状态便是其中的一部分,这部分功能由主要由state包提供 基本概念 账户地址 在以太坊中,无论是外部账户还是合约账户,都以一个160bit的数组表示地址,它是由特定椭圆曲线上的一个点表示的公钥经过Keccak Hash算法截取而来。 外部账户和合约账户的区别 账户内容 以太坊中,账户用 Account 表示 type Account struct { Nonce uint64 Balance *big.Int Root common.Hash CodeHash []byte } Nonce:账户发起交易的次数 Balance...阅读全文

博文 2018-11-13 19:34:40 187J3X1

golang 生成二维码海报

生成带头像的二维码 import ( "errors" "fmt" "github.com/nfnt/resize" "github.com/skip2/go-qrcode" "image" "image/draw" "image/png" "os" ) var err error func createAvatar() (image.Image, error) { var ( bgImg image.Image offset image.Point avatarFile *os.File avatarImg image.Image ) bgImg, err = createQrCode("http://www.baidu.com") if err != nil { fmt.Println(...阅读全文

慎用 -race 选项

go run -race xxx... -race选项用于检测数据竞争,在使用了-race的情况下,go程序跑起来之后,如果发生数据竞争,它就能检测到,它就会一层一层地把错误栈打印出来,就像打印panic一样。通常用于开发。当然开启了该选项也未必能检测出潜在的数据竞争,当你的程序跑到数据竞争的片段它就会检测出来,你的程序可能有很多模块,当程序没有执行到数据竞争的地方那直到整个程序执行结束它也检测不出来。 使用-race选项相比不开启此选项会消耗更多的cpu计算资源和内存,实际上我的情况是: 内存方面:不开启此选项时消耗113MB内存,开启之后550MB(我数学不好,大概是5倍左右) cpu方面:不开启此选项1s可以完成的操作,开启之后15s 用的是"golang.org/x/crypto/b...阅读全文

博文 2020-05-04 23:32:40 边缘青年_739d

URLOS是一款Linux容器云管理面板

URLOS软件介绍 URLOS是一个应用容器管理软件 URLOS是一个Docker管理面板,它把服务器端软件应用的安装行为简化到极致,堪称服务器端的应用宝,具有集群管理、自动故障转移、自动负载均衡等高级功能,可轻易搭建7*24小时在线的网站运行环境。 借助URLOS可轻松让网站在拥有多个主机的集群上运行,单机故障不会导致网站停止。 URLOS官方网站 https://www.urlos.com URLOS演示 演示网址:http://demo.urlos.com:9968(用户名和密码使用默认的urlos,填写验证码后即可登录) URLOS具备以下特征 |-- 安全: 基于Docker容器技术,应用均运行在具有隔离功能的容器中,如果某个应用出现问题(包括假死、真死、漏洞、后门等问题),并不会...阅读全文

博文 2018-11-20 17:34:46 低调的维斯

虚拟主机“流量”是指什么?与日常手机流量有什么区别

想必有很多朋友都有使用过虚拟主机建站的经历。不过在建站之前,大家可能都需要选购虚拟主机,而在选择虚拟主机的时候,我们一般都会在主机配置中看到有“流量”的选项。国内虚拟主机一般是几个G,而国外虚拟主机一般是不限制流量。那么,这里的虚拟主机流量是指什么呢? 对于虚拟主机流量来说,与咱们常常说的网站流量可能不大一样。这里的虚拟主机流量,主要是指用户可以从服务器传输进和输出数据总量(类似咱们用手机上网产生流量)。简而言之,就是当用户在访问网站时,产生数据量的总和。 目前,大多虚拟主机商都是按照月为单位来计算的,比如每月3G,每月5G限制这样的月流量。 为了让大家更直观地理解,这里简单的举个例子:假设一个网站每个网页+图片的大小是20K,当月总共累计被访问了4000次网页,那么网站这个月所需...阅读全文

golang环形队列实现

Summary 什么是环形队列 实现环形队列图示过程 golang版本代码实现过程 参考全部代码 什么是环形队列 在一个指定大小的数组里循环写入数据,借用二个指针分别实现入队标记与出队标记.也体现了指针的大好用处,请深入体会.大有裨益. 如图所示,一个环形队列.含有二个指针: 队列头指针,队列尾指针. 实现环形队列图示过程 初始化一个数组大小为6的环形队列, 头指针front=0, 尾指针rear=0, 刚好front=rear =0的状态,表示环形队列为空. 2.向环形队列里插入1个元素,则rear指针移动一格,front=0,rear=13.继续添加a2,a3,a4,a5元素,rear指针指到末尾处,front=0, reat=54.如果再继续添加a6元素,则rear=6,大于数组大小,...阅读全文

博文 2019-11-08 11:32:46 百里

程序员遇到过的最难兼容性bug

最近看到一个来自国外网站Quora上的热门帖子《What’s the hardest bug you’ve debugged? | 你调试过的最难 BUG 是?》,觉得非常不错,再次分享给大家。这个帖子的原文作者叫做Dave Baggett,伯乐在线 – 熊铎 翻译。以下是故事正文: 回想起这个BUG,仍然让我有些痛苦。作为一个程序员,在发现BUG时,你学会了首先在自己代码中找问题,或许在测试一万次之后,你会把问题归咎于编译器。只有在这所有的都不起作用之后,你才会把问题归咎于硬件。 这是我遭遇一个硬件bug的故事。 抛开别的不说,我曾为《Crash Bandicoot》写存储卡(读写)代码。对于一个自大的游戏程序员,这就像是在公园里散步一样轻松愉快,我认为只要几天就写完了,最终调试用了...阅读全文

Go的单例模式

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 1.Go实现非线程安全的单例模式(懒汉 就是很懒的单例 哈哈): package singleton type singleton struct { } var instance *singleton func GetInstance() *singleton { if instance == nil { instance = &singleton{} // <--- NOT THREAD SAFE } return instance ...阅读全文

博文 2017-02-10 12:24:07 谢权

重温一遍数据结构之线性表(golang版)

目的 因为最近工作中碰到了一些关于数据结构的问题,发现有些生疏了,所以想重新自己再理一遍,就当是给自己的记录,之所以用golang主要也是因为对goalng比较感兴趣,写起来也比较顺手。本意也不是想分享关于什么是数据结构,因为这种概念性的东西没有什么太大意义,其实最重要的是让自己能看懂自己写了些什么,但是代码中写了非常详细的注释,所以基本都是以代码为主 线性表之顺序存储结构 以下代码是线性表中的顺序存储结构,基本略去了些容错的考虑,还是以实现功能为主 package main //线性表中的顺序存储结构 import ( "fmt" ) // 线性表中存储的数据类型 type Elem int type SqList struct { //最大长度 maxsize int // 当前长度 l...阅读全文

博文 2017-11-19 15:05:03 woshicixide

golang中的数组切片

概念:基于数组,数组切片添加了一系列管理功能,可以随时动态扩充存放空间,并且不会导致所管理的元素被重复复制。创建数组切片:方法一,基于数组:package main import "fmt" func main() { //define an array var myArray [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} //create a slice based on array var mySlice []int = myArray[:5] fmt.Println("Elements of myArray: ") for _, v := range myArray { fmt.Print(v, " ") } fmt.Println(...阅读全文

博文 2017-02-09 18:26:00 yeleven

LotusDB-高性能 kv 数据库LotusDB

lotusdb 是一个结合 LSM 和 B+ 树优势的 kv 存储引擎,具备读写快速稳定、读写放大和空间放大极低、简洁优雅的特点。 https://github.com/flower-corp/lotusdb 有以下几大特点你可以学习: 1、代码简洁规范 2、涵盖大多数 Go 语言基础用法和高级特性 3、单元测试技巧 4、理解和实践常见 kv 存储模型(LSM 和 B+ 树) 5、数据库设计理念 6、底层基础知识实践(操作系统、文件、磁盘) ...阅读全文

开源项目 2022-01-22 16:56:48 roseduan

为什么全力推荐Golang

为什么全力推荐Golang 转自:  https://zhuanlan.zhihu.com/p/19959647 讨论哪个语言更好,就像在争论姚明和刘翔谁是更优秀的运动员。因为各自的坐标象限不同,常常会陷入一个难有结论怪圈。 所以本文绝不是在说Golang是比其他语言更好的语言。Golang只是最值得推荐的语言,尤其适合快速成长中的后端研发团队。 我推荐Golang的主要理由,并不是技术性的要素:不是他的高并发能力,编译的速度,跨平台能力,内存效率,也不是社区的活跃度等等。 事实上,创业之后,或者说成为一个技术管理者之后,技术优点就已经不再是我推荐任何一种语言的关键因素了。 因为,对于一个研发团队来说,项目成败的关键因素是:成本、质量和时间! 1、人力资源的成本 人力资源是研发团队最重要...阅读全文

博文 2016-10-22 13:00:04 yueguanyun

golang实现跨域访问

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/benben_2015/article/details/79247024 前端通过Ajax来获取服务器资源时,会存在跨域问题。因为Ajax只能同源使用(预防某些恶意行为),所以当访问不在同一个域中的资源时,就会出现跨域限制。尤其在开发和测试时,跨域问题会给前端测试带来非常不便。 不过CORS(Cross-Origin Resource Sharing,跨域资源共享)解决了这个问题,它背后的基本思想是:使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是否应该成功。CORS需要浏览器和服务器同时支持。整个CORS通信过程,浏览器是自动完成,而服务器需要手动配置。 ajax.htm...阅读全文

博文 2019-01-29 14:31:37 benben_2015

阿里讲师带你一步步学习分步式文件存储系统技术及实现

课程介绍 本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS、Ceph等),展示阿里Pangu系统针对其中问题的解决方法,并结合Pangu系统说明分步式存储系统的设计要点。 讲师介绍 姚文辉,2009年加入阿里巴巴,从事阿里巴巴自主研发的云计算平台—飞天分布式操作系统中的分布式存储系统—盘古。 课程目标 • 学习分步式文件存储系统的实现 适合人群 • 云计算开发者 课时列表 • 课时1:分布式存储客观需求 • 课时2:小概率事件对分布式系统的挑战 • 课时3:常见分布式系统-终版 • 课时4:分布式设计要...阅读全文

go基本语法学习笔记之类型

整形 类型转换举例 var ia int64 = 54345 var ib int32 ib = int32(ia) fmt.Println("ibis", ib) 浮点形 go语言定义了两个浮点型 float32 等价于C语言的float类型, float64 等价于C语言的double类型 浮点数的比较 math.Fdim(f1, f2) < p p为定义的精度 如 0.00000001 字符串 var str1 string str1 = "this is first string" str2 := "this is second string" str3 := str1 + str2 fmt.Printf("the string str3: %s \n len: %d \n firs...阅读全文

博文 2016-01-28 12:00:01 wolgame

【云存储】对象存储管理与安全

课程介绍 为降低云服务器负载和成本,一般需要将网站静态资源、图片、音视频、日志、下载资源等海量文件存储在更低单价的存储类型上,并配合CDN、图片处理、媒体转码、数据处理等服务,给客户提供更好的体验和更多服务。 本课程主要讲解海量、安全、低成本、高可靠的云存储服务——对象存储的常用操作,包括在云端存储静态资源,并通过控制台、API实现资源的上传下载,以及如何确保云端存储资源的安全。 学员受益: * 云存储常用操作:通过学习和在线实验,了解并掌握云存储的基本知识,以及常用的存储操作,为构建高可用网站打下基础。 * 模式真实场景:包含的两个在线实验一步一步带领你在Web开发中实现网站图片和文件的存储与下载。 * 认证证书:考试通过即可获得证书,证明自己拥有云存储...阅读全文