摘要: Golang 推荐通过 channel 进行通信和同步,但在实际开发中 sync 包用得也非常的多,在以太坊的源码中也有很多这类应用的体现。 Go sync包提供了:sync.Mutex,sync.RMutex,sync.Once,sync.Cond,sync.Waitgroup,sync.atom 阅读全文
posted @ 2020-07-29 23:19 Single_Dont 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 本系统环境:vmware-》contos7 1.下载安装 方法1: https://github.com/coreos/etcd/releases 方法2:curl -L https://github.com/coreos/etcd/releases/download/v3.1.0-alpha.1/ 阅读全文
posted @ 2020-07-17 18:22 Single_Dont 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 前言: 在了解Raft之前,我们先了解Consensus一致性这个概念,它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Consensus协议,一致性协议是为了确保容错性,也就是即使系统中有一 阅读全文
posted @ 2020-07-17 15:44 Single_Dont 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 我在这区别式C进行总结知识点 1.增加数据类型 字典map package main import "fmt" func main() { testmap := make(map[string]int) //表示创建一个key为string,value的值为int的数据类型。 testmap["do 阅读全文
posted @ 2020-07-17 13:12 Single_Dont 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 前言: 一般随着服务流量的增多,单台服务器是不可能满足我们的需求了 ,这个时候我们就需要部署很多台运行着 一样服务的 机器 ,这个就是简单的分布式了。 服务注册于发现的必要: 讲一个很简单的场景,一般服务端架构最前面是 一台网关 ,网关后面是 n 台运行着一样的 服务 的机器。 客户端一般就是访问网 阅读全文
posted @ 2020-07-14 19:24 Single_Dont 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 前言 工欲善其事必先利其器,学习Go语言同样如此,一个强大的集成开发环境(IDE)能够大大提高我们的开发效率,目前市面上比较流行的有下面这几种:GoLand:由 JetBrains 公司开发的一个新的商业 IDE;LiteIDE X:一款简单、开源、跨平台的Go语言 IDE;第三方插件:Sublim 阅读全文
posted @ 2020-07-14 09:54 Single_Dont 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 1.libevent介绍 简介 基本的socket变成是阻塞/同步的,每个操作除非已经完成,出错,或者超时才会返回,这样对于每一个请求,要使用一个线程或者单独的进程去处理,系统资源没有办法支撑大量的请求。posix定义了可以使用异步的select系统调用,但是因为它采用了轮询的方式来判断某个fd是否 阅读全文
posted @ 2020-05-11 08:56 Single_Dont 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 1、阻塞方式: 1) 写进程未退出,read阻塞,等待写端的输入 2) 写进程终止了或关闭了该FIFO,read非阻塞,为FIFO的读进程产生一个文件结束标志,read的返回值为0。 2、非阻塞方式: 假设一个进程以非阻塞读方式打开一个FIFO.该FIFO之前已经被以写方式被其他进程打开, 阅读全文
posted @ 2020-04-01 10:53 Single_Dont 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 1.首先解释一下,exec函数的作用:它是为了在一个程序中运行另一个程序。 例如:在一个程序中,执行fork(),可以产生两个进程,我们可以通过exec函数族来实现对父子进程的执行程序进行改变。 2.exec函数族 #include <unistd.h> extern char **environ; 阅读全文
posted @ 2020-03-31 19:32 Single_Dont 阅读(546) 评论(1) 推荐(0) 编辑
摘要: 一、什么是实例化和具体化? 为进一步了解模板,必须理解术语实例化和具体化。 (1)、实例化:在程序中的函数模板本身并不会生成函数定义,它只是一个用于生成函数定义的方案。编译器使用模板为特定类型生成函数定义时,得到的是模板实例。这即是函数模板的实例化。而函数模板实例化又分为两种类型:隐式实例化和显式实 阅读全文
posted @ 2020-03-23 17:02 Single_Dont 阅读(1688) 评论(0) 推荐(0) 编辑