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

中国互联网协会网站百度seo推广计划类型包含

中国互联网协会网站,百度seo推广计划类型包含,佛山做网站公司有哪些,响应式网站自助建设平台go-zero中直连方式 在使用grpc是最重要的就是pb文件了,生成的pb文件,通过pb文件可以生成grpc的客户端和服务端,那么客户端和服务端就可以直连了,再次基础上可以引入etcd实现服务注册。 所有的代码都需要开发者编写,包…

go-zero中直连方式

在使用grpc是最重要的就是pb文件了,生成的pb文件,通过pb文件可以生成grpc的客户端和服务端,那么客户端和服务端就可以直连了,再次基础上可以引入etcd实现服务注册。

所有的代码都需要开发者编写,包括配置etcd,在grpc的服务端注册到etcd中并发送心跳,客户端通过etcd获取服务端地址访问rpc服务器。(具体实现方式参考:gRPC远程调用服务端与客户端连接详解)

etcd服务注册与发现将客户端地址注册到etcd服务器。

但是在go-zero框架已经集成了grpc并对功能进行了扩展库名为zrpc,该库会读取yaml的配置,config,svc目录的配置实现包括grpc的直连或者etcd的连接,开发者在使用zrpc后只需要在yaml配置即可。

go-zero的gpctl工具生成的代码一般都包括:
yaml文件

Name: demorpc.rpc
ListenOn: 0.0.0.0:8080
Etcd:Hosts:- 192.168.24.128:2379Key: demorpc.rpc

config配置文件

type Config struct {zrpc.RpcServerConf
}

svc目录

type ServiceContext struct {Config config.Config
}func NewServiceContext(c config.Config) *ServiceContext {return &ServiceContext{Config: c,}
}

zrpc将所有的配置都移动到了yml中,并通过config,svc的双层调用便于集成第三方工具。

goctl生成rpc的原始配置就是启动一个rpc服务名称和ip及端口。

在这里插入图片描述

通过配置文件启动代码,会启动指定端口和ip上启动一个rpc服务端。

goctl工具生成时还帮助生成了客户端代码,不需要开发者通过原始的pb文件编写客户端。(如何分项目的话需要将pb和客户端代码一起移动)并将zrpc融入到代码中使得也可以通过yaml来配置客户端。
在这里插入图片描述

zrpc直接实现了客户端代码,不需要开发编写,另外生成代码默认是注册到etcd中,如果采用直连的方式注释调Etcd的配置即可。

在此次案例中使用直连的方式,注释调Etcd的配置,通过生成文件编写客户端,在go-zero中也对pb的客户端生成文件进行了重写,开发者基于此方法直接实例化客户端。如下

在这里插入图片描述

方法的生成所在目录可能不一样,包含定义的epc方法和返回XXXclient就是。

利用方法的NewXXX创建客户端,如下

func main() {ip := []string{"127.0.0.1:8080"}clientconf := zrpc.RpcClientConf{Endpoints: ip}client := zrpc.MustNewClient(clientconf)param := demorpc.Request{Ping: "11",}ping, err := demorpcclient.NewDemorpc(client).Ping(context.Background(), &param)if err != nil {}fmt.Println(ping)
}

NewXXX的方法参数是zrpc.Client类型,zrpc.MustNewClient方法返回该类型,其参数又是zrpc.RpcClientConf配置类型,如下

在这里插入图片描述
其中Etcd是注册中心配置,Endpoints是服务集群配置,可配置多个rpc服务端,Target是单个rpc直连配置。如下为客户端代码:

import ("context""etcd/demorpc/demorpc""etcd/demorpc/demorpcclient""fmt""github.com/zeromicro/go-zero/zrpc"
)func main() {ip := []string{"127.0.0.1:8080"}//clientconf := zrpc.RpcClientConf{Endpoints: ip}clientconf := zrpc.RpcClientConf{Target: ip[0]}client := zrpc.MustNewClient(clientconf)param := demorpc.Request{Ping: "11",}ping, err := demorpcclient.NewDemorpc(client).Ping(context.Background(), &param)if err != nil {}fmt.Println(ping)
}

服务端方法如下
在这里插入图片描述

在客户端配置了服务端的ip与端口,实现了的直连的方式。分别启动服务端月客户端。

在这里插入图片描述

在这里插入图片描述

etcd服务注册于发现

了解了直连方式,etcd注册中心就更简单了。

在直接连接中,注释掉etcd配置,
在这里插入图片描述
zrpc.RpcClientConf配置使用Target或者Endpoints即可。

在etcd注册中心中,配置etcd,使用Etcd即可,如下

在这里插入图片描述

下载并启动etcd服务器,配置服务器ip及端口
在这里插入图片描述
在这里插入图片描述

启动服务器

在这里插入图片描述

在启动服务器时一直报该错误,原因时etcd服务器启动方式错误,缺少配置参数导致远程连接不上。

如果直接使用etcd命令启动就会报如下标题的错误。

No connection could be made because the target machine actively refused it

panic: context deadline exceeded

正确的启动etcd的命令是:

etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'http://0.0.0.0:2379'

在这里插入图片描述

# stop
systemctl  stop etcd# status
systemctl status etcd

使用上述命令启动后就不会报错了。

在etcd服务器使用命令查看所有key:

export ETCDCTL_API=3
etcdctl get --prefix ""

在这里插入图片描述
在客户端使用Etcd配置参数,携带Key即可

import ("context""etcd/demorpc/demorpc""etcd/demorpc/demorpcclient""fmt""github.com/zeromicro/go-zero/core/discov""github.com/zeromicro/go-zero/zrpc"
)func main() {ip := []string{"127.0.0.1:8080"}//clientconf := zrpc.RpcClientConf{Endpoints: ip}//clientconf := zrpc.RpcClientConf{Target: ip[0]}clientconf := zrpc.RpcClientConf{Etcd: discov.EtcdConf{Hosts: ip,Key:   "demorpc.rpc",}}client := zrpc.MustNewClient(clientconf)param := demorpc.Request{Ping: "11",}ping, err := demorpcclient.NewDemorpc(client).Ping(context.Background(), &param)if err != nil {}fmt.Println(ping)
}
http://www.ds6.com.cn/news/70241.html

相关文章:

  • 163企业邮箱入口官网汕头自动seo
  • 运营方案模板百合seo培训
  • 电影网站做cpa搜外网
  • 做股东变更要上哪个网站营业推广策划
  • 只做男生穿搭的网站百度推广平台收费标准
  • 哪个网站可以找人做清洁seo实战教程
  • ink域名网站网页优化seo广州
  • 津南做网站的公司搜索引擎大全排行榜
  • 哪个网站做体检预约的培训
  • 微信推广工具seo的优化流程
  • 家居商城网站模板百度推广开户费用多少
  • 怎么做网站子页深圳优化公司高粱seo较
  • 济南行知做网站台州网络推广
  • 云南住建局和城乡建设官网太原seo优化
  • 纪念币商城网站建设百度官方客服
  • 做诈骗网站手机游戏性能优化软件
  • 设计师 个人网站百度最新版下载
  • 做网站app价格多少钱南昌seo实用技巧
  • 网站换域名后需要多长时间才能收录恢复正常app如何推广
  • 页面模板第三方应用厦门seo关键词优化培训
  • 做网站要什么资质qq群推广软件
  • 如何做网站站长百度品牌推广
  • flash网站管理系统网站seo去哪个网站找好
  • 自由人网站开发2024年的新闻时事热点论文
  • 网站维护做啥的陕西网络推广介绍
  • 网站建设过程小结全国教育培训机构平台
  • 微信手机网站支付怎么做广州seo公司如何
  • 腰椎间盘突出怎么锻炼漯河seo公司
  • 没有经验可以做网站编辑吗seo网络公司
  • 028网站建设腾讯企点官网下载