当前位置: 首页 > 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.yayakq.cn/news/843694/

相关文章:

  • 沁县网站建设网站优化工具
  • 网站提取规则怎么设置建设宠物食品网站的功能定位
  • 做外汇看哪些网站数据河北邯郸永利ktv视频
  • 做哪个网站的推广最好网站建设按年收费吗
  • 域名cn是个什么网站Wordpress主题 修改 价钱
  • 网站建设与维护就业怎么样水冶那里有做网站的
  • 台州网站建设蓝渊浙江省城乡建设信息港
  • 什邡网站建设公司wordpress里的模板怎么用
  • 网站建设开发合同范本蓝天使网站建设
  • 怎样做投资与理财网站什么是网络营销工程师
  • 深圳 做网站 互联可以做设计私单的网站
  • ps做图 游戏下载网站有哪些有特效的网站
  • 网页设计与网站建设心得体会有趣又有深意的广告
  • 微信做自己的网站导入到wordpress
  • 美术对网站开发有用吗企业网站建设范文
  • 灵武住房和城乡建设厅网站如何选择做pc端网站
  • 怎么做html5网站哪个网站可以接任务做兼职
  • 多说wordpress吴江seo排名
  • 网站链接交换信息空间网站好
  • 建设一个商城网站大概多少钱公司网站建网
  • 极简个人网站模板网站制作收费明细表
  • 取公司名字谷歌搜索引擎优化
  • 投资理财网站模板android网站开发实例
  • 集团网站设计思路比价网站源码整站程序
  • 网站建设运行工作情况总结网站空间数据库上传
  • 网站建设续费是什么费用旅游网站设计开题报告
  • 网站百度推广网站建设改版升级
  • 网站建设运营执行方案百度快照推广有效果吗
  • 农产品网站建设策划方案网页广告关不掉怎么办
  • 十大个人博客网站做网站的图片素材网站有哪些