2019年5月22日
摘要: 开场白 这个是三篇博客中的第一篇, 用来提供go调度背后的机制和语法. 这篇博客主要关注操作系统调度. 三篇博客的顺序是: 1) go调度: 第一部分 - 操作系统调度 2) go调度: 第二部分 - go调度器调度 3) go调度: 第三部分 - 并发 介绍 go调度器的设计和行为使得你的多线程g 阅读全文
posted @ 2019-05-22 22:15 月落无影 阅读(798) 评论(0) 推荐(0) 编辑
  2019年5月19日
摘要: 这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可以参考https://www.cnblogs.com/albizzia/p/10838646.htm 阅读全文
posted @ 2019-05-19 11:28 月落无影 阅读(8571) 评论(0) 推荐(0) 编辑
  2019年5月18日
摘要: 这个thrift的简单示例, 来源于官网 (http://thrift.apache.org/tutorial/cpp), 因为我觉得官网的例子已经很简单了, 所以没有写新的示例, 关于安装的教程, 可以参考https://www.cnblogs.com/albizzia/p/10838646.ht 阅读全文
posted @ 2019-05-18 12:19 月落无影 阅读(7463) 评论(0) 推荐(0) 编辑
摘要: Thrift的网络栈 Apache Thrift的网络栈的简单表示如下: Transport (传输) 传输层提供了一个用于向网络读写的简单抽象. 通过这种方式, thrift可以将下层的传输协议与thrift上层的其他部分((例如序列化和反序列化)分离. 下面是Transport接口提供的一些方法 阅读全文
posted @ 2019-05-18 10:36 月落无影 阅读(514) 评论(0) 推荐(0) 编辑
  2019年5月16日
摘要: 用法 go的接口, 实现了类似于python这种动态语言的鸭子类型(duck typing)编程模式, 同时编译器会进行必要的检查, 可以发现当需要传入一个拥有Read方法的变量时, 而实际上传入了一个int类型. 为了使用接口, 你需要定义一个接口类型(假设这里的, ReadCloser): 然后 阅读全文
posted @ 2019-05-16 23:17 月落无影 阅读(550) 评论(0) 推荐(0) 编辑
  2019年5月15日
摘要: 背景 基于每次调用的负载均衡 需要注意的是,gRPC的负载均衡发生在每次调用时,而不是每次连接时。换句话说,就算所有的请求来自于同一个客户,我们也希望可以将它们负载均衡到所有的服务器。 负载均衡的方法 在讨论gRPC所使用的负载均衡之前,我们讨论一下常规的负载均衡方式。 代理方式 使用代理作为可信任 阅读全文
posted @ 2019-05-15 18:44 月落无影 阅读(1021) 评论(0) 推荐(0) 编辑
摘要: golang的channel实现位于src/runtime/chan.go文件。golang中的channel对应的结构是: 注:源码中的raceenabled表示是否启用race detector, 所以,如果你只需要了解channel的机制,可以忽略raceenabled的相关代码。当racee 阅读全文
posted @ 2019-05-15 09:59 月落无影 阅读(1192) 评论(0) 推荐(0) 编辑
  2019年5月10日
摘要: thrift接口描述语言(IDL)用来定义thrift类型. 一个Thrift IDL文件用来生成各种语言使用的结构体和服务. IDL中包含如下部分: 1. Document Document中包含0或者多条如下的声明: (1) include Literal Thrift Include: 用来导 阅读全文
posted @ 2019-05-10 10:33 月落无影 阅读(2541) 评论(0) 推荐(0) 编辑
  2019年5月9日
摘要: apache thrift是一种常用的远程服务调用框架. 下面对apache thrift的安装进行介绍: 下面是thrift的源码安装: Debian/Ubuntu (14+) 编译运行依赖安装 下载apache thrift: 网址: https://thrift.apache.org/down 阅读全文
posted @ 2019-05-09 15:18 月落无影 阅读(2729) 评论(0) 推荐(0) 编辑
摘要: 这个用例的逻辑很简单, 服务器运行一个管理个人信息的服务, 提供如下的四个服务: (1) 添加一个个人信息 注: 对应于Unary RPCs, 客户端发送单一消息给服务器, 服务器返回单一消息 (2) 添加多个个人信息 注: 对应于Client streaming RPCs, 客户端使用提供的str 阅读全文
posted @ 2019-05-09 10:20 月落无影 阅读(1201) 评论(0) 推荐(0) 编辑