1、写 thrift 文件定义好 service :方法、入参出参
2、生成 代码并发包
3、编写 server 端实现
4、本地启动server端,进行测试
5、打包启动 rpc 服务

具体实现:
1、写 thrift 文件定义好 service 以及 入参出参的 struct
namespace 定义生成的文件目录和名称。

namespace py test_thrift.action_cardnamespace go test_thrift.action_cardnamespace java test_thrift.action_cardenum 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 serviceimport (   "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 上线