Go 内置的 RPC 包

在网络或 I/O 连接中,可以使用 net/rpc 包实现对一个对象的导出方法的调用,即远程过程调用(Remote Procedure Call,RPC)。通过向 RPC 服务注册一个对象,使其可被远程调用,进而实现一些复杂的业务逻辑。 项目结构 示例项目的结构如下: client - client.go - json_client.go models - greeting.go server - json_server.go - server.go 注册服务 一个可被远程调用的方法须满足以下条件: 方法所属结构是公开的; 方法是分开的; 方法的参数类型是分开的; 方法带两个参数,第 2 个参数为指针; 方法返回值为 error ...

Protocol Buffer(Protobuf) 是一种高效的数据结构序列化的机制,同时也是一种结构化数据的存储格式。 序列化与反序列化 序列化:将数据结构或对象转换成二进制串的过程; 反序列化:将序列化后的二进制串转换成数据结构或对象的过程; 语法 /* * 语法 */ /* * 指定 Protobuf 解析使用的版本,可以是 proto3 或 proto2 */ syntax = "proto3"; /* * message 定义中的每一个字段都有一个唯一标识,该标识用于在二进制格式中识别字段 * 字段的标识一旦使用就不要进行修改 * 当标识为 1 到 15 时,使用一个字节进行编码,字节信息中包含字段的标识以及类型 * 当标...

Revel 是一个以高效率、高性能著称的 Go Web 框架,提供了路由、参数解析和验证、会话机制、模板机制、缓存和任务管理等诸多常用的 Web 开发功能。同时作为一个全栈的 MVC 框架, Revel 通过模块实现了组件的复用,因此可以大大提高开发者的效率。其高性能则是依托 Go 语言的性能,相信这个不必多说。但相较于其它职责相对单一的 Web 框架(如 Gin、go-restful),Revel 只能说是在保证性能的基础上尽可能地对开发者友好。