RPC(一):thrift 框架 go语言开发

栏目: Go · 发布时间: 5年前

内容简介:1、写 thrift 文件定义好 service :方法、入参出参2、生成 代码并发包3、编写 server 端实现

1、写 thrift 文件定义好 service :方法、入参出参

2、生成 代码并发包

3、编写 server 端实现

4、本地启动server端,进行测试

5、打包启动 rpc 服务

具体实现:

1、写 thrift 文件定义好 service 以及 入参出参的 struct

namespace 定义生成的文件目录和名称。

namespace py test_thrift.action_card
namespace go test_thrift.action_card
namespace java test_thrift.action_card

enum ResouceCode {
    ALPHA = 1,
    BETA = 2
}

序号:类型 名称
struct BannerParams {
    1: i64 member_id;
    2: i32 num;
}

service MemberService {
    Banner get_banner(1: BannerParams params)
}

生成 py 或者 go 代码,并发布镜像

gen:

thrift -r --gen go:package_prefix=github.com/serenity/gen-go/ ./thrift_files/test/test.thrift

2、编写 server 端实现

package service

import (
   "github.com/serenity/gen-go/test_thrift/member"
   "github.com/serenity/golang/pkg/action_card/controller"
   "github.com/serenity/golang/pkg/common/model"
)

func GetMemberServiceProcessor(msgChan chan model.Message) *member.MemberServiceProcessor {
   // service - api
   memberService := controller.NewMemberService()

   // processor
   return member.NewMemberServiceProcessor(memberService)
}

3、客户端调用测试

var memberClient = member_service.NewMemberServiceClient(tc.New("MemberService", tc.Timeout(500*time.Millisecond), tc.TargetName("member")))
params := memberClient.BannerParams{0,0}
banner := memberClient.GetBanner(params)
fmt.Println(banner)

4、打包启动 rpc 服务

servicesMap := map[string]thrift.TProcessor{
   "MemberService":        memberService.GetMemberServiceProcessor(),
}
server.New(
   servicesMap,
   server.SentryDSN(conf.EnvConfig.SentryDSN),
   server.Tracing(conf.EnvConfig.ChoosedClusterAddrs),
   server.Slowlog(500*time.Millisecond),
).Run("0.0.0.0:10000")

5、git 上线


以上所述就是小编给大家介绍的《RPC(一):thrift 框架 go语言开发》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人类思维如何与互联网共同进化

人类思维如何与互联网共同进化

[美] 约翰·布罗克曼 / 付晓光 / 浙江人民出版社 / 2017-3 / 79.90元

➢人类是否因互联网的诞生进入了公平竞争的场域? “黑天鹅事件”频频发生,我们的预测能力是否正在退化? 智人的第四阶段有哪些特征? 全球脑会使人类成为“超级英雄”吗? 虚拟现实技术会不会灭绝人类的真实体验? 还有更多不可预知答案的问题,你将在本书中找到属于自己的答案! ➢ 我们的心智正和互联网发生着永无止境的共振,人类思维会因此产生怎样的进化效应?本书编者约翰•布......一起来看看 《人类思维如何与互联网共同进化》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具