![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
钛合金编程
静以修身,俭以养德!The greatest thing is, at any moment, to be willing to give up who we are in order to become all that we can be.
展开
-
etcd基本介绍
etcd初识etcdetcd是一个分布式可靠的键值存储系统。它提供了与ZooKeeper相似的功能,但是使用Go语言编写而不是Java语言。Etcd使用Raft协调算法而不是ZooKeeper采用的Paxos算法。在云计算方面,Go是一个大有前景的语言,被誉为云时代的C语言。 对比与ZooKeeper,etcd更轻量级,etc更加关注一下几点:简单:curl命令可以调用的API接口(http+J原创 2017-09-11 11:45:28 · 4370 阅读 · 0 评论 -
Kubernetes部署master节点
部署master节点kubernetes master 节点包含的组件:kube-apiserverkube-schedulerkube-controller-manager目前这三个组件需要部署在同一台机器上:kube-scheduler、kube-controller-manager 和 kube-apiserver 三者的功能紧密相关;同时只能有一个 kube-scheduler、原创 2017-10-12 17:25:49 · 34067 阅读 · 0 评论 -
NATS核心技术基本介绍
NATS基本介绍NATS基础简介NATS是一个简单、安全、可扩展的高效消息系统,它可以实现分布式部署,横向扩展。主要运用在云本地应用、IoT基础消息设施和微服务架构中。NATS由Apcera team维护,主要包括了NATS Server (才用Go语言编写), NATS Streaming和各类语言的客户端应用框架(Python, Ruby, Node.js, Elixir, Java, NGIN原创 2017-10-12 15:50:26 · 6145 阅读 · 0 评论 -
Kubernetes集群构建指导(上篇--据说价值10k以上)
Kubernetes集群构建指导内容表单Kubernetes集群构建指导 设置环境变量CA证书和秘钥 安装CFSSL创建CA分发证书校验证书网络参考资料部署高可用etcd集群设置环境变量下载最新etcd创建TLS秘钥和证书创建etcd的systemd单元文件设置etcd服务部署kubectl命令行工具 设置kubectl环境变量下载kubectl创建admin证书原创 2017-10-12 16:12:44 · 3667 阅读 · 0 评论 -
Kubernetes集群中部署私有库harbor
私有仓库harbor部署使用 docker-compose 部署 harbor 私有仓库的步骤,你也可以使用 docker 官方的 registry 镜像部署私有仓库。环境变量harbor用到的变量。$ export NODE_IP=10.50.101.74 # 当前部署 harbor 的节点 IP$部署所需文件docker-compose文件从 docker-compose 发布页面下载最新的原创 2017-10-16 14:40:43 · 3317 阅读 · 0 评论 -
Kubernetes集群中部署Node节点
Kubernetes集群中的Node节点部署kubernetes的Node节点包含如下组件:flannelddockerkubeletkube-proxy环境变量需要的变量。$ # 替换为 kubernetes master 集群任一机器 IP$ export MASTER_IP=10.50.101.41$ export KUBE_APISERVER="https://${MASTER原创 2017-10-16 14:38:51 · 11860 阅读 · 0 评论 -
Kubernetes集群中部署dashboard
部署 dashboard 插件下载k8s后的解压缩目录结构:kubernetes/cluster/addons/dashboard使用的文件:$ ls *.yamldashboard-controller.yaml dashboard-rbac.yaml dashboard-service.yaml新加了 dashboard-rbac.yaml 文件,定义 dashboard 使用的 Rol原创 2017-10-16 15:08:37 · 9390 阅读 · 1 评论 -
Go sha256使用实例介绍
SHA-256安全散列算法SHA(Secure Hash Algorithm)是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数,包括 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 等变体。主要适用于数字签名标准(DigitalSignature Standard DSS)里面定义的数字签名算法(Digital Sig原创 2017-12-17 16:05:59 · 20866 阅读 · 0 评论 -
Go字符类型转化为整型或者整型转化为字符类型
Go语言很容易地实现了字符类型到整型类型的转化,反过来也一样。见下文代码实现。 i := 10 fmt.Printf("i convert string : %s", strconv.Itoa(i)) s := "1000" // The bitSize argument specifies the integer type // that the result原创 2017-12-20 09:56:51 · 3138 阅读 · 0 评论 -
Go反射调用方法
Go提供了一个很重要的特性就是反射机制,反射机制对应处理一些特殊的应用场景非常实用。下文是Go反射调用函数的代码片段。func callReflect(any interface{}, name string, args... interface{}) []reflect.Value{ inputs := make([]reflect.Value, len(args)) for i,原创 2017-12-20 10:01:22 · 5165 阅读 · 0 评论 -
值得期待:Go对WebAssmbly的完全支持
WebAssembly获得了所有浏览器的一致支持, Chrome 和 Firefox 已经原生支持 WebAssembly,Edge 和 Safari 也在预览版中加入了 WebAssembly 支持。Go很快也会对WebAssembly进行支持,目前还处理开发阶段。社区已经有对应的指导文档,下面就是社区的部分指导步骤。 ” Compiling Go code to wasm is also d原创 2017-12-20 17:32:22 · 5492 阅读 · 1 评论 -
探究Go类型参数的函数
Go语言中,函数的定义与函数的调用方可以不一致。换句话说,缺乏runtime类型安全就允许函数调用端的参数与函数定义端的参数不一致。Go不支持函数的多态特性,这就决定了无法根据参数的类型或者个数定义多态的函数。但是,可以定义多态参数。Go构建函数中,append, close, delete, copy, cap 和 len函数都使用了参数多态。Go编程中,有时候为了达到代码的简洁美而编写一些泛化的原创 2017-12-20 15:52:16 · 1931 阅读 · 0 评论 -
Go的unsafe包
Go官方包提供了一个unsafe包,在这个包里面有含够绕开Go程序类型安全的操作。 既然是unsafe包,使用起来一定要特别小心。尽管unsafe有点危险,但是它也难以置信的有用。unsafe的操作:A pointer value of any type can be converted to a Pointer.A Pointer can be converted to a pointer v原创 2017-12-22 10:46:56 · 930 阅读 · 0 评论 -
NSQ 安装指南
NSQ 安装指南假设我们的服务器安装下面要求编排。nsqlookup 集群列表192.168.234.77192.168.234.36192.168.234.39nsq 节点192.168.234.117192.168.234.118nsqadmin 节点192.168.234.119安装前准备下载最新的二进制包,命令行操作如下:tar -xvf nsq-0.3.8.linux-amd6原创 2017-02-23 10:15:40 · 3618 阅读 · 0 评论 -
Go如何保证gorountine执行完毕后继续执行
Go如何保证gorountine执行完毕后继续执行Gorountine和channel是go语言最核心的功能,这个功能保证了go强大的并发执行能力。如果你想在你继续执行你的goroutine之前等待所有的goroutines执行完毕,你该如何使用go语言解决这样一个问题呢?下面,我将给出三中解决方案。其中,最有解决方案是sync.WaitGroup。程序函数等待利用time包中的Sleep方法等待一原创 2017-02-21 12:29:52 · 7919 阅读 · 0 评论 -
Go计算运行的时间
函数time.Since()计算golang运行的时间是非常有用的性能衡量指标,特别是在并发基准测试中。下面将介绍如何简单地使用Go语言来计算程序运行的时间。简单地使用Golang的time.Since()函数即可。下面有一个完整例子展示这个用法。package mainimport ( "fmt" "time")func StartCac() { t1 := time.N原创 2016-03-18 14:42:57 · 25145 阅读 · 0 评论 -
Go 多态功能实现
Go 多态功能实现Go本身不具有多态的特性,不能够像Java、C++那样编写多态类、多态方法。但是,使用Go可以编写具有多态功能的类绑定的方法。为什么这么说呢?因为Go使用struct构建类,根据不同类调用不同的方法。下面将展示如何使用Go编写多态功能。package mainimport ( "fmt")type strCase struct{}type intCase struct{}原创 2016-03-19 19:15:39 · 4604 阅读 · 5 评论 -
Go 实现lamda、匿名函数和内联函数
Go 实现lamda、匿名函数和内联函数在Go语言中,lamda、匿名函数和内联函数的实现称作字面函数(function literals)。当一个函数足够小时,你可以创建一个字面函数。下文将创建一个简单的实例来展示这个函数的实现。package mainimport("fmt")func main(){ substract := func(a, b int) int { return a原创 2016-03-19 19:38:31 · 7102 阅读 · 0 评论 -
Go时间格式化和类型互换操作
获取本地时间 // get current timestamp currentTime := time.Now().Local() //print time fmt.Println(currentTime)指定格式的日期字符类型// get current timestamp currentTime := time.Now().Local()//format T原创 2016-03-23 14:28:18 · 10050 阅读 · 0 评论 -
Go文件操作
读取文件中的内容假设你想对其某个文件中的内容,但是,你只关心你需要的内容。假设文件的内容如下所示:1. 网页视觉设计理论之少些质感,多些版式.http://www.ynetx.com/theory/560-1.html2. 设计理论:http://www.ynetx.com/design/theory/3.Google的新设计理念Material Designhttp://www.infoq.原创 2016-03-23 15:13:02 · 1003 阅读 · 0 评论 -
流行的Go语言web框架简介
Golang被称为云计算时代的C语言,它以其独特的优势逐渐被越来越多的公司所关注和使用。为了充分利用Golang的Web开发优势,有必要熟悉一下Golang的web框架。1 Beego (http://beego.me/) Beego是一个完全的MVC框架,你可以使用你的Go语言专业技术构建你的web应用程序。Beego框架下,你可原创 2016-02-29 10:40:48 · 45322 阅读 · 4 评论 -
Go语言三大框架点评
了解了基本的Go语言web框架,下面将对这些框架做个点评。1 Beego Beego 作为一个功能强大的MVC框架,具备与Rails同级别的特性,并且吸收了Python框架Tornado和Flask 的高级特性。它是一个大的框架,拥有自己的日志库、ORM和web框架。 优势: 强大的MVC特性,活跃的开发社区。值得一提的是,中国好多公司都采用原创 2016-03-01 10:36:47 · 8852 阅读 · 0 评论 -
Go语言为什么这么流行?
这个问题很复杂,多方面原因决定了Golang的实用价值。Go语言的背景Go的吉祥物Gordon田鼠,是由Google公司创造一种新程序语言,并且公司为这门语言付出了极大的努力。Go语言一出现就获得业界的普遍关注和使用。为什么呢?Go具有一些多数程序语言没有的资产。首先,这是一个Google计划,它有数量庞大的服务器和技术高超的程序设计师为后盾。Google的原创 2016-04-25 10:13:54 · 3649 阅读 · 1 评论 -
Beego架构简介
Beego是什么? Beego是一个能够快速开发Go应用程序的Http框架。它可以用来迅速地开发API、网络App和后端服务。同时,它也可以作为RESTful 框架。其设计灵感主要来自Python和Rails流行的框架,借鉴了Python语言开发的框架Tornado和Flask以及Ruby开发的web框架Sinatra。 Beego的架构原创 2016-03-02 10:54:38 · 4863 阅读 · 1 评论 -
未来编程形式设想
对于未来的编程形式,会不会像太极(tai-chi)一样充分发挥自己的设立能力和想象能力呢? YouTube – Iron Man 2 – SFX montage by Prologue Films. It’s too far away to think about this. ^_^哈哈!下面的文章就是对Go语言的基本介绍。We will look at how Go does objects原创 2016-05-22 16:29:17 · 900 阅读 · 0 评论 -
Go包管理gpm简介
gpm is a minimalist package manager for Go that leverages the power of the `go get` command and the underlying version control systems used by it to set your Go dependencies to desired versions, thus a原创 2016-05-22 16:31:40 · 2094 阅读 · 0 评论 -
Go打印函数printf格式简介
fmt.print参数规约printf输出规约是按照预定义好的参数格式输出的,参数和对应说明如下表所示。 parameter description %d decimal integer %x, %o, %b integer in hexade cimal, octal, binar y %f, %g, %e floating-p oint number: 3.1415原创 2016-05-22 16:36:54 · 5000 阅读 · 0 评论 -
Go语言实现将[]string转化为[]byte
Go语言实现将[]string转化为[]byte假设你想实现Go语言的string数组到byte数组的转化。演示函数如下所示:func convertStringsToBytes(){ stringContent := []string{"通知中心","perfect!"} byteContent := "\x00"+ strings.Join(stringContent, "\x0原创 2016-05-22 17:31:18 · 16771 阅读 · 0 评论 -
Go语言 Select 详细解读
Go Select 详解select语句让多个channel操作等待Go的select语句让程序线程在多个channel的操作上等待,select语句在goroutine 和channel结合的操作中发挥着关键的作用。介绍一个小程序,演示这个select功能。这个程序模拟接受消息功能,有两个channel接受发送过来的消息。select语句用来接受两个某个消息,for循环表示仅接受3个消息。pack原创 2017-02-16 12:11:23 · 12320 阅读 · 3 评论 -
Go 1.8 正式发布
今天Go团队很高兴地宣布Go 1.8发布了。你可以从下载页面获得1.8版本。在这个版本中,整个标准库有显着的性能改进和变化。 Go 1.7中为64位x86系统引入的编译器后端现在用于所有体系结构,在这些体系结构下可以看到显着的性能改进。例如,我们的基准程序所需的CPU时间在32位ARM系统上减少了20-30%。在此版本中,对于64位x86系统也有一些性能提升。编译器和链接器跑得更快。编译时间应该比翻译 2017-02-17 11:25:29 · 908 阅读 · 0 评论 -
Go 1.8新功能声明(英文ppt版)
Go 1.8新功能 欢迎订阅微信公众号原创 2017-02-17 15:28:51 · 1009 阅读 · 0 评论 -
TOML简介
TOML简介GitHub 目前的新项目已经转用 CoffeeScript 了。CoffeeScript 比 JavaScript 要简洁优雅得多。同样地,GitHub 也觉得 YAML 不够简洁优雅,因此捣鼓出了一个 TOML。TOML 的全称是 Tom’s Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner 。GitH原创 2017-02-19 11:27:50 · 18866 阅读 · 1 评论 -
Go字符串操作技巧
定义多行字符串Go语言中定义多行字符串可以使用反勾号(backtick),比如下面的定义:var tools= `UI for overview of your Golangpackage benchmarks progress.`需要主要的是,打印输出的任何空格字符与原来的多行定义一模一样。fmt.Printf("[%s]", tool)输出结果:[...原创 2018-04-03 14:24:41 · 1702 阅读 · 0 评论