Go语言TCP Socket编程

Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的。 网络编程方面,我们最常用的就是tcp socket编程了,在posix标准出来后,socket...阅读全文

十一月 17, 2015 bigwhite
阅读:30009 评论:4

微服务实战(一):微服务架构的优势与不足

【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足。 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询服务。他也经常在http://microservices.io上发表有关微服务的文章。 微服务正在博客、社...阅读全文

阅读:16397 评论:0

[笔记] Golang RPC(Remote Procedure Call Protocol)

1. 简介 Go 标准包中已经提供了对 RPC 的支持,而且支持三个级别的 RPC:TCP、 HTTP、 JSONRPC。 但 Go 的 RPC 包是独一无二的 RPC,它和传统的 RPC 系统不同,它只支持 Go 开发的服务器与客户端之间的交互,因为在内部,它们采用了 Gob 来编码。 2. 要求 函数必须是导出的(首字母大写) 必须有两个导出类型的参数 第一个参数是接收的参数,第二个参数是返回给客户端的参数,第二个参数必须是指针类型的 函数还要有一个返回值 error func (t *T)...阅读全文

2016-05-08 21:39 loveyx
阅读:2201 评论:0

深入了解Go接口

深入了解Go接口 如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么它就可以在这里使用。 type Reader interface { Read(p []byte) (n int, err error) } type Writer...阅读全文

阅读:1620 评论:1

Upspin 中的错误处理 —— 来自 Rob Pike

[Upspin](https://upspin.io/) 项目使用自定义的包 —— [upspin.io/errors](https://godoc.org/upspin.io/errors) —— 来表示系统内部出现的错误条件。这些错误满足标准的 Go [error](https://golang.org/pkg/builtin/#error) 接口,但是使用的是自定义类型 [upspin.io/errors.Error](https://godoc.org/upspin.io/errors#...阅读全文

2017-12-24 21:56:10 ictar
阅读:2032 评论:0