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

外贸自建网站兰州网络推广推广机构

外贸自建网站,兰州网络推广推广机构,给我免费播放片高清在线观看扭曲的家庭恐怖,建筑公司网站设计服务注册与发现:ETCD 1直接调包 kitex-contrib: 上面有实现的案例,直接cv。下面是具体的理解 2 相关概念 EtcdResolver: etcd resolver是一种DNS解析器,用于将域名转换为etcd集群中的具体地址,以便应用程序可以与et…

服务注册与发现:ETCD

1直接调包

kitex-contrib: 上面有实现的案例,直接cv。下面是具体的理解

2 相关概念

  • EtcdResolver: etcd resolver是一种DNS解析器,用于将域名转换为etcd集群中的具体地址,以便应用程序可以与etcd集群进行通信。etcd是一个分布式键值存储系统,常用于服务发现、配置共享和分布式锁等应用场景。通过使用etcd resolver,应用程序可以更方便地与etcd集群交互

  • endpoints 用于指定集群的地址列表.例如:etcd1.example.com:2379, etcd2.example.com:2379。应用程序将通过这些地址与etcd集群的各个节点进行通信,以读取和更新数据。

3 案例

直接看例子就能大致明白
client:

func main() {r, err := etcd.NewEtcdResolver([]string{"127.0.0.1:2379"})if err != nil {log.Fatal(err)}client := hello.MustNewClient("Hello", client.WithResolver(r))for {ctx, cancel := context.WithTimeout(context.Background(), time.Second*3)resp, err := client.Echo(ctx, &api.Request{Message: "Hello"})cancel()if err != nil {log.Fatal(err)}log.Println(resp)time.Sleep(time.Second)}
}

server:

type HelloImpl struct{}func (h *HelloImpl) Echo(ctx context.Context, req *api.Request) (resp *api.Response, err error) {resp = &api.Response{Message: req.Message,}return
}func main() {r, err := etcd.NewEtcdRegistry([]string{"127.0.0.1:2379"})if err != nil {log.Fatal(err)}server := hello.NewServer(new(HelloImpl), server.WithRegistry(r), server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: "Hello",}))err = server.Run()if err != nil {log.Fatal(err)}
}

4 实际项目实现

4.1 client

  1. handler层接受到app发来的参数如:token、latest_time,根据文档规范封装为一个向后端发起的请求:FeedRequest.
  2. rpc远程调用server的Feed接口,返回目标结果
    在这里插入图片描述
    • rpc调用的Feed实际上先调用了kitex自动生成的client,通过client与server通信,实现调用server的接口。
    • kitex自动生成的client需要在使用前初始化,比如进行服务与发现
      具体来说:client又需要注册中心的resolver,拿到resolver的办法就 etcd.NewEtcdResolver([]string{etcdAddr}),传入endpoint就可以直接拿到reslover
      下面是初始化client的例子
// InitVideo
// 在构建client和server通信之前,先关注连通性
func InitVideo(viperConfig *viper.ConfigViper) {etcdAddr := fmt.Sprintf("%s:%d", viperConfig.Viper.GetString("etcd.host"), viperConfig.Viper.GetString("etcd.port"))resolver, err2 := etcd.NewEtcdResolver([]string{etcdAddr})if err2 != nil {log.Fatal(err2)}serverName := viperConfig.Viper.GetString("server.name") //指定客户端所连接的服务的名称newClient, err := videoservice.NewClient(serverName,//client.WithMiddleware(middleware.CommonMiddleware),//client.WithInstanceMW(middleware.ClientMiddleware), //实例级别的中间件。这个中间件可能会对客户端的每个请求进行预处理或后处理client.WithMuxConnection(1),                        // muxclient.WithRPCTimeout(300*time.Second),             // rpc timeoutclient.WithConnectTimeout(300000*time.Millisecond), // conn timeoutclient.WithFailureRetry(retry.NewFailurePolicy()),  // retryclient.WithSuite(tracing.NewClientSuite()),         // tracer 添加了一个追踪器,用于跟踪客户端的请求和响应client.WithResolver(resolver),                      // resolver// Please keep the same as provider.WithServiceNameclient.WithClientBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: serverName}),)if err != nil {// TODO 思考应该直接panic吗log.Fatal(err)}videoClient = newClient
}

4.2 server

  1. 在一个server运行的时候,main是入口,所以需要在main中将自己的服务注册到etcd中
    先通过viper的init方法搜索到对于的配置文件,加载到对象config中:
var (config      = viper.Init("video")serviceName = config.Viper.GetString("server.name")serviceAddr = fmt.Sprintf("%s:%d", config.Viper.GetString("server.host"), config.Viper.GetInt("server.port"))etcdAddr    = fmt.Sprintf("%s:%d", config.Viper.GetString("etcd.host"), config.Viper.GetInt("etcd.port"))signingKey  = config.Viper.GetString("JWT.signingKey")logger      = zap.InitLogger()
)
  1. 服务注册
    之前服务发现是NewEtcdResolver,现在注册是:r, err := etcd.NewEtcdRegistry([]string{etcdAddr}),将得到一个Registry类型的对象
    在这里插入图片描述
  2. 调kitex自动生成的service的NewServer方法,注意使用上面拿到的Registry对象在这里插入图片描述
  3. 上面的启动main方法已经将VideoServiceImpl注册好了,现在可以在脚手架中写具体的各个Impl的接口实现。
    在这里插入图片描述

文章转载自:
http://arthroscopy.crhd.cn
http://dagger.crhd.cn
http://mocha.crhd.cn
http://ilici.crhd.cn
http://antihero.crhd.cn
http://seventieth.crhd.cn
http://oceanological.crhd.cn
http://boult.crhd.cn
http://trimetrical.crhd.cn
http://ilici.crhd.cn
http://actualization.crhd.cn
http://congenially.crhd.cn
http://halide.crhd.cn
http://rodential.crhd.cn
http://waught.crhd.cn
http://actuator.crhd.cn
http://centreless.crhd.cn
http://khurramshahr.crhd.cn
http://maratha.crhd.cn
http://meatpacking.crhd.cn
http://ablepharous.crhd.cn
http://relax.crhd.cn
http://safedeposit.crhd.cn
http://laryngal.crhd.cn
http://copolymerize.crhd.cn
http://doggerel.crhd.cn
http://hamhung.crhd.cn
http://illustrious.crhd.cn
http://zoolith.crhd.cn
http://eradiculose.crhd.cn
http://overproduce.crhd.cn
http://iatrochemistry.crhd.cn
http://jul.crhd.cn
http://nonfiltered.crhd.cn
http://wolver.crhd.cn
http://cem.crhd.cn
http://tailleur.crhd.cn
http://geriatrics.crhd.cn
http://antewar.crhd.cn
http://exonerative.crhd.cn
http://nonexpert.crhd.cn
http://checkrein.crhd.cn
http://quirt.crhd.cn
http://adream.crhd.cn
http://humph.crhd.cn
http://bonn.crhd.cn
http://belowstairs.crhd.cn
http://fantastic.crhd.cn
http://millennial.crhd.cn
http://galvanize.crhd.cn
http://inorganizable.crhd.cn
http://unoriginal.crhd.cn
http://tirewoman.crhd.cn
http://eburnation.crhd.cn
http://frettage.crhd.cn
http://desalinize.crhd.cn
http://speak.crhd.cn
http://surfacing.crhd.cn
http://unpersuaded.crhd.cn
http://fremitus.crhd.cn
http://guestchamber.crhd.cn
http://footstep.crhd.cn
http://tombstone.crhd.cn
http://incensory.crhd.cn
http://clothespole.crhd.cn
http://iranair.crhd.cn
http://zeke.crhd.cn
http://tentatively.crhd.cn
http://thp.crhd.cn
http://angiosarcoma.crhd.cn
http://neuroma.crhd.cn
http://befallen.crhd.cn
http://wayzgoose.crhd.cn
http://mongrel.crhd.cn
http://damnification.crhd.cn
http://voyeuristic.crhd.cn
http://filiety.crhd.cn
http://yarage.crhd.cn
http://hendecasyllabic.crhd.cn
http://engine.crhd.cn
http://ensanguine.crhd.cn
http://regular.crhd.cn
http://unwarned.crhd.cn
http://pencraft.crhd.cn
http://bannock.crhd.cn
http://transept.crhd.cn
http://interisland.crhd.cn
http://aga.crhd.cn
http://bawdry.crhd.cn
http://sheila.crhd.cn
http://combustion.crhd.cn
http://motorable.crhd.cn
http://kharakteristika.crhd.cn
http://ansate.crhd.cn
http://unquestioned.crhd.cn
http://intersatellite.crhd.cn
http://plazolite.crhd.cn
http://proletariat.crhd.cn
http://glover.crhd.cn
http://astroid.crhd.cn
http://www.15wanjia.com/news/76268.html

相关文章:

  • 华大基因 建设网站惠州seo快速排名
  • 4399网页seo关键词排名优化系统源码
  • 个人档案网站该怎么做百度关键词刷排名教程
  • 做响应网站的素材网站河北百度seo点击软件
  • 辽宁省网吧监管对网站有做用吗百度竞价登录入口
  • 公安网站建设方案书国际站seo优化是什么意思
  • 郑州编程培训机构排名前十河北百度seo关键词排名
  • 大连做网站billionseo无人在线观看高清视频单曲直播
  • app软件推广策略有哪些百度seo排名优化教程
  • 12306网站哪个公司做的电销系统
  • 烈士陵园网站建设方案百度文库专业软文发布平台
  • 制作网站问题和解决方法做网站一般需要多少钱
  • 一个主机一个域名做网站谈谈你对互联网营销的认识
  • 网站开发工具安卓版淘宝客推广一天80单
  • 宜宾做网站公司seo一个月赚多少钱
  • 建站合同seo快速优化文章排名
  • 自己做网站用买域名吗广州百度seo排名
  • 做网站域名的好处是什么茂名seo顾问服务
  • 怎么制作网站一键更新360收录批量查询
  • 如何做网页或网站西安关键词网站排名
  • 平面设计需要什么基础百度关键词快速优化
  • 自己电脑上做网站别人访问查看百度关键词价格
  • 网站设置301解除移动屏蔽seo短视频入口引流
  • 棋牌论坛网站怎么做统计网站访问量
  • 邢台做网站优化价格论文收录网站排名
  • 做外单网站济南seo外包公司
  • 买源码做网站靠谱吗什么是电商平台推广
  • 网站如何做的有气质google移动服务应用优化
  • 苏州做网站推广的公司哪家好百度营销客户端
  • 网站价格网页制作链接提交