当前位置: 首页 > news >正文

四川省人民政府参事室下载班级优化大师

四川省人民政府参事室,下载班级优化大师,多城市网站开发,企业申请网站建设请示1 Overview 此章节是对第三章的一个补充。同样属于RPC的篇章。是专门为了类似游戏服务这种需要指定RPC服务端具体地址,也就是具体是哪台机器的某应用进程,通信的方式。笔者简单的封装了下保证基本的服务稳定,且具备服务发现的属性即可&#…

1 Overview

此章节是对第三章的一个补充。同样属于RPC的篇章。是专门为了类似游戏服务这种需要指定RPC服务端具体地址,也就是具体是哪台机器的某应用进程,通信的方式。笔者简单的封装了下保证基本的服务稳定,且具备服务发现的属性即可,因此也仅仅对GRPC的客户端进行一次壳子的封装。

2 客户端初始化

外表看着几乎与03章节的 客户端初始化代码基本一致;

GRPC的初始化类名不同变为了NewGameGrpcCluster 而已;

这里没表现出来的,就是绑定Proto接口的方式发生了变化;

    etcd.NewWithOption(option.OptionWith(nil).Default(option.OptionFunc(func() (string, any) {return "Endpoints", strings.Split(etcdAddr, ";")}),))client := cgrpc.NewGameGrpcCluster(option.OptionWith(&struct {PathName  stringNamespace string}{"server1", namespace}))//client.Start()// do your thingstestHandle(client)// just for testclient.Wait()// closeclient.Close()

3 调用Proto服务接口

为了方便后续调用,以及简化代码,我们在使用grpc.ClientConn 时的部分进行了一个函数封装。这与经常见过GRPC调用的方式是一样的。


func handleSay(clientConn grpc.ClientConnInterface) {c := helloworld.NewGreeterClient(clientConn)resp1, err := c.SayHello(context.Background(),&helloworld.HelloRequest{Name: fmt.Sprintf("xiaoming-%d", 9)},)if err != nil {log.Fatal("Say Hello error:%v", err)return}log.Info("SayHello Response:%s\n ", resp1.Message)}

4 指定GRPC服务的invoke

  • 关键点就是一个client.Handle;
  • 它的参数是一个匿名函数;
  • handle参数匿名函数 传递一个[]*cgrpc.GameGrpcConn的切片;
  • cgrpc.GameGrpcConn 是继承于grpc.ClientConn

func testHandle(client *cgrpc.GameRpcCluster) {ticker := time.NewTicker(time.Second)for {<-ticker.Cclient.Handle(func(gconns []*cgrpc.GameGrpcConn) {log.Info("clients conns %v", len(gconns))if len(gconns) == 0 {return}handleSay(gconns[0])})}
}

handle参数匿名函数拿到了grpc链接列表;致于如何获取某一个链接。就是路由的事情了,可以单独做一个小模块,与它结合起来。这里我们暂时没有做。

不过只要知道GameGrpcConn的另外一个参数你就很容易策略做这件事了。看看它的定义


type GameGrpcConn struct {*grpc.ClientConnInfo ServInfo
}type ServInfo struct {AddrToRpc    stringAddrToClient stringName         stringdata         any
}

知道了链接地址,和名字,怎么选择,可以随意开发策略,是随机,是按地址选择,按服务名选择也好。

需要知道用户在哪台游戏服的,或哪台聊天服的业务场景中,可以轻松实现。

http://www.zhongyajixie.com/news/55890.html

相关文章:

  • 删除多余wordpress前端seo网站优化培训多少价格
  • 招商门户网站建设方案网站关键词优化推广
  • 毕业答辩问题怎么做的这个网站公司网站制作
  • 邹平网站建设优化公司360站长工具
  • 汕头拿家做网站企业培训机构哪家最好
  • 昌吉回族自治州建设局网站发帖推广
  • 做网站前端开发的必备软件上海优化网站公司哪家好
  • 电影资源网站怎么做的网络推广的含义
  • 信融科技做网站推广可靠吗保定网站seo
  • 在百度做网站整合营销传播成功案例
  • 可以做推送的网站网络舆情监测中心
  • 网站后台排版css百度关键词优化软件怎么样
  • 有没有和小孩做的网站怎么创建自己的网站
  • 个人网站什么语言做青岛网站推广企业
  • 怎么建网站不用买空间a5站长网
  • 文化建设成就seo长尾关键词
  • 房地产公司网站建设与推广方案新手电商运营从哪开始学
  • 邮箱qq登录网页登陆入口seo网站推广教程
  • 布恩网站删除什么公司适合做seo优化
  • 巴中微信开发 做网站营销外包公司
  • 商城网站建设步骤今日新闻联播主要内容摘抄
  • 网站建设管理指导意见seo流量工具
  • 重庆百度优化广西seo快速排名
  • 在线是免费生成网长沙seo公司排名
  • 怎么样建公司网站360手机优化大师安卓版
  • 苏州网站小程序app开发公司免费软文推广平台都有哪些
  • 电子政务门户网站建设新媒体运营岗位职责
  • 做网站需要注册公司国内seo排名分析主要针对百度
  • 网站一般用什么软件做推广策略及推广方式
  • 无锡做网站选优易信网站优化是什么