首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go 面试啦
starine
创建于2022-04-28
订阅专栏
keep learning!
等 37 人订阅
共48篇文章
创建于2022-04-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
微服务入门|RPC实现步骤
RPC 通信 对于单独部署,独立运行的微服务实例而言,在业务需要时,需要与其他服务进行通信,这种通信方式是进程之间的通讯方式(inter-process communication,简称IPC)。
为什么要自研RPC框架?HTTP和RPC的区别
我们通常采用的原则为:向系统外部暴露采用HTTP,向系统内部暴露调用采用RPC方式。很多公司自研 RPC 框架最主要的原因还是RPC框架包含了重试机制,路由策略,负载均衡策略,高可用策略,流量控制策略
微服务入门|微服务架构怎么设计
用微服务来进行实践到生产项目中,首先要考虑一些问题。比如客户端如何访问这些服务?每个服务之间如何进行通信?多个微服务,应如何实现?如果服务出现异常宕机,该如何解决?
雪花算法生成主键ID |青训营笔记
大家在做抖音项目的时候,数据库中的id是如何设计的呢?我觉得首先要考虑的就是id能存的最大值,其次就是如何保证id的唯一性,性能和趋势递增也是一个需要考虑的点。所以我们选用的是bigint类型存储+雪
掘金的文章ID是怎么生成的?
在掘金写了多篇文章之后,我发现了掘金生成文章ID的密码——SnowFlake(雪花算法),本文首先从数据库设计的主键选择讲起,然后介绍了两种常见的生成id的方法:uuid和snowflake。
Go 并发编程|CSP模型
go语言的最大两个亮点,一个是goroutine,另一个就是channel了。二者合体的典型应用CSP,基本就是大家认可的并行开发神器,简化了并行程序的开发难度,我们来看一下CSP。
Go 并发编程|select语句(IO多路复用)
select 是 Go 中的一个控制结构。select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。
Go 并发编程|单向通道、time包中的通道
通道,channel,是用于实现goroutine之间的通信的。一个goroutine可以向通道中发送数据,另一条goroutine可以从该通道中获取数据。前几篇文章我们所讲的通道,都是既可以发送数据
Go 并发编程|关闭 channel 和 for range循环、缓冲channel
`v, ok := <- ch`中的`ok`仅表示是否成功读取了`channel`中的数据,并不代表channel的关闭状态。 for循环的`for range`形式可用于从通道接收值,直到它关闭为
Go 并发编程|channel
“不要通过共享内存来通信,而应该通过通信来共享内存”。当多个Goroutine想实现共享数据的时候,虽然也提供了传统的同步机制,但是Go语言强烈建议的是使用Channel来实现Goroutines通信
Kitex 使用初体验
本文为Kitex 使用初体验,在使用docker build的时候,因为依赖国外的库,遇到了网络问题,目前已解决,花了点时间,因此当作阅读记录一下。可以自己换镜像源或者科学上网来解决。
Go 并发编程|sync包--RWMutex(读写锁)
Go语言包中的 sync 包提供了两种锁类型:sync.Mutex 和 sync.RWMutex。其中RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。
Go 并发编程|sync包--Mutex(互斥锁)
我们知道了在并发程序中,会存在临界资源问题。就是当多个协程来访问共享的数据资源,那么这个共享资源是不安全的。为了解决协程同步的问题我们使用channel,但是Go语言也提供了传统的同步工具。
Go 并发编程|sync包--WaitGroup
sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。WaitGroup用于等待一组线程的结束。
Go 并发编程|临界资源安全问题
临界资源 指并发环境中多个进程/线程/协程共享的资源。但是在并发编程中对临界资源的处理不当, 往往会导致数据不一致的问题。不要以共享内存的方式去通信,而要以通信的方式去共享内存。
Go 并发编程|runtime包
本文主要介绍runtime包是什么?有哪些常用的函数?并通过一些示例代码让大家对runtime包有初步了解。 runtime包含与Go的运行时系统互动的操作,例如控制goroutines的函数。
SOCKS5 代理实现 |青训营笔记
Socks5协议是一款广泛使用的代理协议,它在使用TCP/IP协议通讯的客户端和服务器之间扮演一个中介角色,使得内部网中的客户端变得能够访问Internet网中的服务器。
Go 并发编程 | 线程模型 & GMP调度模型
Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源。接下来我们来了解
Go 并发编程|并发、并行、Goroutine
本文主要介绍什么是并发编程,什么是并行,并发,串行。Go语言如何实现并发编程,以及实现的原理,goroutine的使用。
Go 1.18 multi-module workspaces 多模块工作区教程
本文简单介绍下 workspace 的使用方式以及使用场景。Go 1.18版本通过新的Go工作区模式(Go workspace mode)解决了这一问题,这使得在多个module中工作变得简单。
下一页