随笔分类 -  Golang

上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要:分布式锁,是一种跨进程的跨机器节点的互斥锁,它可以用来保证多机器节点对于共享资源访问的排他性。 分布式锁和线程锁本质上是一样的,线程锁的生命周期是单进程多线程,分布式锁的声明周期是多进程多机器节点。 在本质上,他们都需要满足锁的几个重要特性: 排他性,也就是说,同一时刻只能有一个节点去访问共享资源。 阅读全文
posted @ 2022-04-29 10:16 李若盛开 阅读(580) 评论(0) 推荐(0)
摘要:帧同步:战斗核心逻辑写在客户端状态同步:战斗核心逻辑写在服务器端 一、同步 所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要十个玩家的屏幕显示的英雄位置完全相同、技能释放角度、释放时间完全相同,这个就是同步。就好像很多个人一起跳街舞齐舞,每个人的动作都要保持一致。而对于大多 阅读全文
posted @ 2022-04-27 14:24 李若盛开 阅读(529) 评论(0) 推荐(0)
摘要:实际项目中,读取相关的系统配置文件是很常见的事情。 1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换格式。层次结构简洁清晰 ,易于阅读和编写,同时也易于机器解析和生成。 1)创建 conf.json { "enabled": true, "path": "/usr/local" 阅读全文
posted @ 2022-04-27 13:19 李若盛开 阅读(326) 评论(0) 推荐(1)
摘要:一、概念 ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 Zookeeper 的 Java 客户端都有哪些? Zookeeper 自带的 zkclien 阅读全文
posted @ 2022-04-25 20:29 李若盛开 阅读(486) 评论(0) 推荐(0)
摘要:1、将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)。 2、部署多个相同的子系统在不同的服务器上(这叫集群),此时部署在不同服务器上的同一个子系统应做负载均衡。 3、集群和分布式都是由多个节点(多个服务器)组成,但是集群之间的通信协调基本不需要;而分布式各个节点的通信协调必不可少。 4、分 阅读全文
posted @ 2022-04-25 18:11 李若盛开 阅读(154) 评论(0) 推荐(0)
摘要:前言 一般习惯用Json、XML 数据存储格式,相信大多都没听过Protocol Buffer。Protocol Buffer 其实是Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 强太多。 Protocol Buffer的性能好在哪里:a. 序列化速度 & 反序 阅读全文
posted @ 2022-04-25 12:55 李若盛开 阅读(173) 评论(0) 推荐(0)
摘要:Channel 原理:当channel能存放的元素数量为0时表示为阻塞型channel。当管道无数据时,需要从管道取数据的协程会被阻塞,不会向下执行。所以可以通过多个协程应用同一个channel,从而实现协程间的同步。 使用场景: 1. 需要协程通信时 2. 需要管道传输数据时。 Mutex 原理: 阅读全文
posted @ 2022-04-24 10:32 李若盛开 阅读(551) 评论(0) 推荐(0)
摘要:golang 中的 sync 包实现了两种锁: Mutex:互斥锁 RWMutex:读写锁,RWMutex 基于 Mutex 实现 锁的概念 某个协程(线程)在访问某个资源时先锁住,防止其它协程的访问,等访问完毕解锁后其他协程再来加锁进行访问。 Mutex(互斥锁) Mutex 为互斥锁,Lock( 阅读全文
posted @ 2022-04-23 17:43 李若盛开 阅读(471) 评论(0) 推荐(1)
摘要:select与switch的区别: 1:每个switch后面必须跟随一个条件判断,而select后面没有 2:switch中的case语句为枚举值进行比较,select中的case必须是一个对channel的读或者写的操作 select与switch的相同点: 如果switch或select中的ca 阅读全文
posted @ 2022-04-22 09:36 李若盛开 阅读(517) 评论(0) 推荐(0)
摘要:Gin简介 1.Gin 是什么? Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。如果你需要极好的性能,可以使用 Gin 。 2.Gin特点 轻量级、高性 阅读全文
posted @ 2022-04-21 18:01 李若盛开 阅读(593) 评论(0) 推荐(0)
摘要:数据库查询流程 我们先来看下,一条查询语句下来,会经历哪些流程。 比如我们有一张数据库表 CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) NOT 阅读全文
posted @ 2022-04-20 10:23 李若盛开 阅读(287) 评论(0) 推荐(0)
摘要:1)、读已经关闭的 chan 能一直读到东西,但是读到的内容根据通道内关闭前是否有元素而不同。 c.closed != 0 && c.qcount == 0指通道已经关闭,且缓存为空的情况下(已经读完了之前写到通道里的值) 如果接收值的地址ep不为空 那接收值将获得是一个该类型的零值(即对应类型的默 阅读全文
posted @ 2022-04-20 10:02 李若盛开 阅读(535) 评论(0) 推荐(0)
摘要:写未初始化的chan package main // 写未初始化的chan func main() { var c chan int c <- 1 } 结果分析 读写未初始化的chan都会阻塞。原因: 未初始化的chan此时是等于 nil,当它不能阻塞的情况下,直接返回 false,表示写 (读)c 阅读全文
posted @ 2022-04-20 10:01 李若盛开 阅读(215) 评论(0) 推荐(0)
摘要:分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源时,需要通过一些互斥手段来防止彼此之间的干扰以保证一致性,在这种情况下,就需要使用分布式锁了。 在分析分布式锁的三种实现方式之前,先了解一下分布式锁应该具备哪些条件 阅读全文
posted @ 2022-04-15 14:27 李若盛开 阅读(549) 评论(0) 推荐(0)
摘要:我们在做go web开发的时候,应该都遇到生成二维码分享的应用场景。 生成普通二维码 package main import "github.com/skip2/go-qrcode" func main() { qrcode.WriteFile("https://www.cnblogs.com/be 阅读全文
posted @ 2022-04-15 11:01 李若盛开 阅读(759) 评论(0) 推荐(0)
摘要:深入解析扩容原理(查看这里) 内部结构 type slice struct { array unsafe.Pointer len int cap int } 扩容机制 规则1 当需要的容量大于原切片容量的两倍时,会使用需要的容量作为新容量; 当原切片长度小于1024时,新切片的容量会直接翻倍; 而当 阅读全文
posted @ 2022-04-11 10:51 李若盛开 阅读(482) 评论(0) 推荐(0)
摘要:优点: 1.极简单的部署方式 直接编译成机器码、不依赖其他库、直接运行即可部署; 2.静态类型语言 编译的时候检查出来隐藏的大多数问题; 3.语言层面的并发 天生的基因支持、充分利用多核; 4.强大的标准库 runtime系统调度机制、高效的GC垃圾回收、丰富的标准库; 5.简单易学 25个关键字、 阅读全文
posted @ 2022-04-11 00:33 李若盛开 阅读(1110) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-04-10 23:58 李若盛开 阅读(49) 评论(0) 推荐(0)
摘要:Mongodb 文档型的非关系型数据库,其最大优势在于查询功能比较强大,能存储海量数据,不支持事务,是一个介于关系数据库和非关系数据库之间的产品,在非关系数据库中功能最丰富,支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。支持丰富的数据表达,索引,最类似关系型数 阅读全文
posted @ 2022-04-10 20:08 李若盛开 阅读(45) 评论(0) 推荐(0)
摘要:Channel的理解 Channel是Go中的一个核心类型,可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication),Channel也可以理解是一个先进先出的队列,通过管道进行通信。 Golang的Channel,发送一个数据到Channel和从Chann 阅读全文
posted @ 2022-04-09 23:59 李若盛开 阅读(962) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页