ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
* Go * 拥有自动垃圾回收、一个包系统、函数作为一等公民(函数可以作为参数)、词法作用域、系统调用接口、只读的UTF8字符串等。 * 没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。 * 目前Go语言有2套编译器:GC和gccgo。其中GC提供的cgo支持C语言,gccgo支持C/C++ (gccgo:[https://github.com/golang/gofrontend](https://github.com/golang/gofrontend)) * Go 是Google开发的一种静态强类型, 编译型, 并具有垃圾回收功能的编程语言 * Go 1.5 版本开始自举(即用 Go 语言编写程序来实现 Go 语言自身) * 语言本身是成熟和稳定的,而且承诺保证向后兼容:用之前的Go语言编写程序可以用新版本的Go语言编译器和标准库直接构建 * * * * 消息队列 * NSQ :[https://nsq.io/deployment/installing.html](https://nsq.io/deployment/installing.html) * kafka(用 java 写的消息队列, 要装jdk, 目前用的人多. nsq 用 go 写的消息队列(后面出的)\] * * * * 区块链 * 从比特币看区块链与Golang实战 :[http://url.cn/5idhBAA](http://url.cn/5idhBAA) * 区块链概念例子 :[https://github.com/jianhuaixie/blockchain-buildwheels](https://github.com/jianhuaixie/blockchain-buildwheels) * 区块链框架 :[https://github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) * 区块链[https://blockdao.net/](https://blockdao.net/) * 一个故事看懂“区块链” :[https://kb.cnblogs.com/page/573614/](https://kb.cnblogs.com/page/573614/) * 对等网络(p2p) : 用户A要和用户B建立连接, 用户A访问服务器, 用户B访问服务器, 服务器将AB的IP和端口发给BA, A,B去访问拿到的IP和端口,路由器打洞通了就可以建立信任连接(正常情况下, 路由器禁止外网ip访问局域网内容) * * * * protobuf * 体积小: 对于未传值的字段可以省略, 不需要像json那样传个字段名和默认值, 可以节省流量 * 二进制存储: 速度比json快, 也因为是二进制, 可读性差, 调试麻烦些 * * * * http2.0 * 二进制格式:数据传输相对安全和可靠 * 多路复用:三次握手后, 客户端和服务端建立连接, 可以在这个链接上同时发送多个request, 每个request对应一个id, 接收方再根据request的id归属到相应的服务端请求 * 头部压缩:http1.x的header带有大量信息, 每次request都要重新发送. http2.0的话通讯双方会自己缓存一份头部信息, 下次请求的时候可以像字典一样, 传个key过去, 那边再将对应的value头部信息取出来