golang

Go

手撸golang etcd raft协议之9

68 0

手撸golang etcd raft协议之9 缘起 最近阅读 [云原生分布式存储基石:etcd深入解析] (杜军 , 2019.1) 本系列笔记拟采用golang练习之 raft分布式一致性算法 分布式存储系统通常会通过维护多个副本来进行容错, 以提高系统的可用性。 这就引出了分布式存储系统的核心问题——如何保证多个副本的一致性?Raft算法把问题分解成了四个子问题: 1. 领袖选举(leader election)、 2. 日志复制(log replication)、 3. 安全性(safety) 4.

Go

SSH连接服务器后执行多条命令

98 0

[TOC] SSH连接服务器后执行多条命令 大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了 例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件/etc/profile中写了配置,因此需要source 一下/etc/profile 那么是否可以在ssh 连接上服务器的时候就可以立即自动执行这一类命令呢? 我们的智慧无穷无尽,小工具也是非常的多,今天来讲述一下SSH连接服务器后执行多条命令可以如何做 1 使用分号隔开 使用 分号 ;来隔开命

Go

Go-Interface

47 0

Go 接口 Interface定义 在golang中,接口是一种抽象类型,接口可理解为一组方法的集合。 跟Struct结构一样,通过type来进行定义 type someInterface interface{method1(params) returnValuemethod2(params) returnValue… }ps:参数和返回值中的变量名可省略,只写参数类型即可。 一个对象只要实现了接口中的所有方法,那么就实现了这个接口 对于值类型的接口接收者,传入值类型变量,指针类型变量均可接口嵌套 typ

Go

golang环境的安装

57 0

Extract the archive you downloaded into /usr/local, creating a Go tree in /usr/local/go. Important: This step will remove a previous installation at /usr/local/go, if any, prior to extracting. Please back up any data before proceeding.For example, run the

Go

golang基础-内置数据结构

148 0

概述内置数据结构是一门语言的核心基石之一,了解了基本语法,内置数据结构,便可以胜任简单的开发。golang内置的数据结构比较少,有整形,浮点型,字符串,数组,切片(slice),map这几种。内置数据结构整形整形是指整数数据,golang支持有符号整型int,无符号整型uint。var a int //位数取决于机器 var a int16 //16位有符号整型 var a int32 //32位有符号整型 var a int64 //64位有符号整型 var a uint16 //16位有符号整型 va

Go

golang基础-语法介绍

45 0

概要本章介绍golang基本的语法。golang语法相对来说比较简单,掌握本章内容即可满足语法方面的基本开发需要。局部变量定义func test1() { var a int // 定义临时变量a } 复制代码全局变量定义var a int // 定义全局变量a 复制代码变量初始化var b string = "apache" //数组初始化 var strAry = [10]string{"aa", "bb", "cc", "dd", "ee"} //切片初始化 var s = make([

Go

golang基础-高级数据结构

76 0

背景golang 不像c++,已经有stl这种通用的高级数据结构。所以如果想要栈,队列,链表等数据结构需要自己实现。下面介绍下常用的几种数据结构链表单链表是一种链式存取的数据结构,一个链表由一个或者多个节点组成,每个节点有一个指针指向下一个节点。 以下是一个节点为int的链表实现。package list type List struct { Head * ListNode length int } type ListNode struct { Next *ListNode Dat

Go

golang基础-高级特性概述

82 0

协程协程是golang最重要的一个特性。在协程出现之前,线程被作为调度的最小单位。协程可以理解是一种用户态,逻辑层面的线程。 通过协程,我们将很容易地实现高并发。 加入你要做三件事,假设要执行a,b,c三个方法。代码该怎么写?平常我们的写法就是a() b() c() 复制代码只有a做完了,才能做b,b做完了,才能做c。 但有了协程就可以go a() go b() go c() 复制代码三个同时进行,充分利用多核的性能。管道管道概念类似unix中管道(pipe)先进先出线程安全,多个goroutine同时访