摘要:
简介 RPC是在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。在互联网时代,RPC已经和IPC一样成为一个不可或缺的基础构建。RPC是进程之间的通信方式(inter-process communication,IPC)不同的进程有不 阅读全文
摘要:
1、常用接口 io包为I/O提供了原语的基本接口。他的主要工作是将这些原语的现有实现 在io包中最重要的两个接口:ReaderWriter接口。只要满足这个两个接口,他就是可以使用IO包的功能。 1.1Reader接口 Reader接口的定义: type Reader interface { Rea 阅读全文
摘要:
1.1 字符串比较 //Compare函数用于比较两个字符串的大小,如果两个字符串相等,返回为0。如果a小于b,返回-1,反之返回1,不推荐使用,直接使用==,!=,<,>,<=,>=等一系列运算符更加直观。 func Compare(a,b string) int //忽略大小写是否相等 func 阅读全文
摘要:
WebSocket是HTML5下的产物,能更好的节省服务器资源和带宽。常见场景:html5多人游戏、聊天室、协同编辑、基于实时位置的应用、股票实时报价、弹幕、视频会议、QQ,微信、等等... ... websocket VS http 相似: 都是应用层协议,都基于tcp传输协议 跟http有良好的 阅读全文
摘要:
更新带有零值的数据,不能使用struct,需要使用map[string]interface{} data := map[string]interface{}{ "username": "小问题", "email": "", } db.Model(&doctoradmin.SysUser{ID: re 阅读全文
摘要:
生成类似MySQL自增ID这样不断增大,同事又不会出现重复的ID,以支持业务中的高并发场景。比较典型的:电商促销,短时间内出现大量的订单涌入到系统中,比如每秒10W+。 明星出轨时,会有大量的热情粉丝发微博以表达自己的心意,同时会在短时间内产生大量的消息。 在插入数据库之前,需要给这些信息、订单上先 阅读全文
摘要:
不要通过共享内存来通信,要通过通信来共享内存 在Go语言中,要传递某个数据给另一个goroutine(协程),可以把这个数据封装成一个对象,然后把这个对象的指针传入某个channel中,另外一个goroutine从这个channel中读出这个指针,并处理其指向的内存对象。Golang从语言层面保证同 阅读全文
摘要:
简单工厂模式 go 语言没有构造函数一说,所以一般会定义函数来初始化相关类。 函数返回接口时就是简单工厂模式,也就是说Golang的一般推荐做法就是简单工厂。 simple.go代码 package simplefactory import "fmt" //API is interface type 阅读全文
摘要:
简介: 电子邮件的应用非常广泛,常见在某网站注册一个账号,自动发送一封激活邮件,通过邮件找回密码,自动批量发送活动信息等等。这些应用不可能与平时发邮件一样,先打开浏览器,登录邮箱在发送。 如何通过Go语言代码来创建电子邮件,并连接邮件服务器发送邮件? 电子邮件在网络中传输和网页一样需要遵守特定的协议 阅读全文
摘要:
一、简介 基于内存的K/V存储/缓存:(类似Memcacheed),适用于单机应用程序,支持删除,过期,默认Cache共享锁 主要优点:本质上是一个map[string]interface{}具有过期时间的安全线程,它不需要序列化或通过网络传输其内容。 大量Key的情况下会造成锁竞争严重。 go-c 阅读全文