深圳市宝安区区号seo综合查询怎么关闭

web/2025/9/25 23:48:03/文章来源:
深圳市宝安区区号,seo综合查询怎么关闭,wordpress 中文,wordpress微信营销介绍下面介绍 jupiter-0.2.7 版本中 grpc 通过 etcd 实现服务发现与注册。服务发现与注册的实现解析服务注册服务注册的流程图#xff1a;etcd的服务注册代码模块在 jupiter/pkg/registry/etcdv3 中。下面让我们来看看实际的代码// Registry register/unregister service// re…介绍下面介绍 jupiter-0.2.7 版本中 grpc 通过 etcd 实现服务发现与注册。服务发现与注册的实现解析服务注册服务注册的流程图etcd的服务注册代码模块在 jupiter/pkg/registry/etcdv3 中。下面让我们来看看实际的代码// Registry register/unregister service// registry impl should control rpc timeouttype Registry interface {RegisterService(context.Context, *server.ServiceInfo) errorUnregisterService(context.Context, *server.ServiceInfo) errorListServices(context.Context, string, string) ([]*server.ServiceInfo, error)WatchServices(context.Context, string, string) (chan Endpoints, error)io.Closer}复制代码在 pkg/registry/registry.go 中定义了注册服务对象的接口。不同的服务只要实现了这些接口jupiter 就能使用。首先我们来看看注册方法// RegisterService register service to registryfunc (reg *etcdv3Registry) RegisterService(ctx context.Context, info *server.ServiceInfo) error {err : reg.registerBiz(ctx, info)...}// 业务信息注册func (reg *etcdv3Registry) registerBiz(ctx context.Context, info *server.ServiceInfo) error {...// 提交信息到 etcd_, err : reg.client.Put(readCtx, key, val, opOptions...)...}复制代码这里主要的部分是 reg.client.Put()  将服务信息提交到 etcd 中。其中的租约机制我会在之后单独写一篇文章介绍。这里主要还是关注如何注册。源码中还有个 registerMetric() 方法这个方法的目的是将服务信息在提交到etcd的 prometheus 前缀目录下用于服务监控用的也是 client.Put() 方法。这里具体就不展示代码了感兴趣的同学可以去源码库中查看。服务退出// 删除服务func (reg *etcdv3Registry) unregister(ctx context.Context, key string) error {...// 删除服务信息_, err : reg.client.Delete(ctx, key)...}复制代码这里通过 client.Delete()  方法将服务信息从 etcd 中删除掉。获取服务列表// ListServices list service registered in registry with name namefunc (reg *etcdv3Registry) ListServices(ctx context.Context, name string, scheme string) (services []*server.ServiceInfo, err error) {// 服务信息key的前缀target : fmt.Sprintf(/%s/%s/providers/%s://, reg.Prefix, name, scheme)// 获取相关前缀的所有信息getResp, getErr : reg.client.Get(ctx, target, clientv3.WithPrefix())...}复制代码通过 client.Get()  方法获取到相同前缀的服务信息。服务信息变动监控// WatchServices watch service change event, then return address listfunc (reg *etcdv3Registry) WatchServices(ctx context.Context, name string, scheme string) (chan registry.Endpoints, error) {prefix : fmt.Sprintf(/%s/%s/, reg.Prefix, name)// 通过etcd客户端创建一个监控通道watch, err : reg.client.WatchPrefix(context.Background(), prefix)if err ! nil {return nil, err}...xgo.Go(func() {// 不断接收etcd发送过来的变动事件for event : range watch.C() {switch event.Type {case mvccpb.PUT:updateAddrList(al, prefix, scheme, event.Kv)case mvccpb.DELETE:deleteAddrList(al, prefix, scheme, event.Kv)}out : al.DeepCopy()fmt.Printf(al %p\n, al.Nodes)fmt.Printf(snapshot %p\n, out.Nodes)select {// 将更新后的服务信息发送出去接收方是 resolvercase addresses default:xlog.Warnf(invalid)}}})// 返回一个地址通道用于传递return addresses, nil}复制代码WatchServices()  方法主要是监控信息的变动事件并将变动后的服务信息重新返回给 resolver。具体思路是通过 etcdClient.Watch()  方法创建一个监控通道然后放入一个 goroutine来不断接收 etcd 推送过来的事件维护本地的服务信息并通过 resolver 最终返回到 grpclb 负载均衡器进行服务地址信息的更新。服务发现服务发现流程图grpc 的 resolver 模块定义了两个接口// Builder creates a resolver that will be used to watch name resolution updates.type Builder interface {Build(target Target, cc ClientConn, opts BuildOptions) (Resolver, error)Scheme() string}// Resolver watches for the updates on the specified target.// Updates include address updates and service config updates.type Resolver interface {ResolveNow(ResolveNowOptions)Close()}复制代码首先我们来看看 Builder 接口的具体实现type baseBuilder struct {name stringreg  registry.Registry}// Build ...func (b *baseBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {endpoints, err : b.reg.WatchServices(context.Background(), target.Endpoint, grpc)if err ! nil {return nil, err}var stop make(chan struct{})xgo.Go(func() {for {select {case endpoint : var state resolver.State{Addresses: make([]resolver.Address, 0),...}for _, node : range endpoint.Nodes {...state.Addresses append(state.Addresses, address)}cc.UpdateState(state)case return}}})return baseResolver{stop: stop,}, nil}复制代码这里Build 方法主要是通过 Registry 模块获得监控服务通道然后将更新的服务信息再更新到 grpcClient 中去保证 grpcClient 的负载均衡器的服务地址永远都是最新的。如何将Builder的具体实现注册到 grpc 中import google.golang.org/grpc/resolver// Register ...func Register(name string, reg registry.Registry) {resolver.Register(baseBuilder{name: name,reg:  reg,})}复制代码将 Registry模块注入到 Builder 对象中然后注入到 grpc 的 resolver 模块中去。这样 grpcClient 在实际运行中就会调用 etcd 的服务发现功能了。grpc 如何使用服务与发现的源码解析这里在介绍一下jupiter框架在实际项目中如何使用服务发现与注册。服务注册func (app *Application) startServers() error {var eg errgroup.Group// start multi serversfor _, s : range app.servers {s : seg.Go(func() (err error) {_ app.registerer.RegisterService(context.TODO(), s.Info())defer app.registerer.UnregisterService(context.TODO(), s.Info())...})}return eg.Wait()}eng : engine.NewEngine()eng.SetRegistry(compound_registry.New(etcdv3_registry.StdConfig(default).Build(),))复制代码在框架的 Application 模块中已经实现了服务的自动注册与删除。一般使用框架时不需要再调用。项目使用中只需要在创建 Application 对象时将注册中心信息注入即可。服务发现// 服务发现需要初始化拿到etcd中服务的信息func (eng *Engine) initResolver() error {resolver.Register(etcd, etcdv3.StdConfig(default).Build())return nil}复制代码服务发现也是类型的将注册中心信息注入即可。文章系列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宜宾网站建设08keji品牌策划设计包括哪些内容

本地环境标识设置 本地父类maven配置 可以看到相关的分类&#xff0c;设置环境标识主要需要用到profiles; <profiles><profile><id>dev</id><properties><!-- 环境标识&#xff0c;需要与配置文件的名称相对应 --><profiles.active&…

免费建站网站排名东莞专业做网站的公司有哪些

pthread-win32是一个在Win32环境下的Unix POSIX线程库的移植. 有了它, 可以比较方便的移植Unix/Linux多线程程序到Windows下. 在VC2005下使用也很简单: 下载, 地址是 http://sourceware.org/pthreads-win32 里面include目录中是头文件, lib目录中是.lib和.dll文件. 在VC项目的属…

做好网站维护深圳网站建设icxun

前言 由于 VS Code 并不是一个传统意义上的 IDE&#xff0c;所以初学者可能在使用过程中会有很多的疑惑&#xff0c;其中比较常见的一个问题就是 tasks.json和 launch.json两个文件分别有什么作用以及如何配置 tasks.json VSCode 官网提供的 tasks.json 配置教程 使用不同的…

哈尔滨网站建设方案策划怎么生成网站地图

《流畅的Python》笔记。本篇是Python进阶篇的开始。本篇主要是对Python特殊方法的概述。1. 前言 数据模型其实是对Python框架的描述&#xff0c;它规范了这门语言自身构件模块的接口&#xff0c;这些模块包括但不限于序列、迭代器、函数、类和上下文管理器。不管在哪种框架下写…

如何让百度快速收录网站toom舆情监测软件

插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理是将一个记录插入到已经排好序的有序表中&#xff0c;从而得到一个新的、记录数增加1的有序表。以下是插入排序算法的基本步骤&#xff1a; 从第一个元素开始&#xff0c;该元…

笨鸟网站开发怎么创建网站域名

MongoDB 官网下载地址&#xff1a;https://www.mongodb.com/try/download/community MongoDB 是一款非常热门的 NoSQL 面向文档的数据库管理系统&#xff0c; 分为 企业版收费版 和 社区免费版。MongoDB 使用 BSON 对象来存储&#xff0c;与 JSON 格式类型的 "键 - 值&quo…

手机微信网站绿化工程属于建设工程吗

Docker使用记录&#xff08;一&#xff09; 简单介绍Docker安装Docker 常用命令Docker 可视化Docker 使用GPU可视化rviz、gazebo 在进行ROS项目开发时&#xff0c;如果只有一台Windows电脑&#xff0c;我们可以考虑使用WSL或Docker来搭建ROS环境。在尝试了两种方式后&#xff0…

酒泉哪家公司可以做网站低调与华丽wordpress下载

目录 一、常见的压缩包的扩展名 二、常见的压缩和解压指令 1、tar 2、tar gzip&#xff08;.tar.gz&#xff09; (或 .tgz) 3、tar bzip2&#xff08;.tar.bz2&#xff09; 4、zip 5、gzip 6、bzip2 7、xz 8、rar 9、7z 三、安装解压工具 一、常见的压缩包的扩展…

上海中小企业网站wordpress导出媒体

最近在学Pygame,花一段时间做了一个异常简陋版的"打砖块". 这次重点说一下困扰我比较长时间的碰撞检测(个人太菜..). 按照网上教程比较普遍的方法(也可能是我没看见别的),碰撞检测依次计算移动物体与被碰撞物体各个边之间坐标是否相交.例如下列代码,检测小球与窗口的…

学校网站建设背景做php门户网站那个系统好

helm 制作应用的离线安装包 1、安装helm 到helm下载对应的压缩包&#xff1a;https://github.com/helm/helm/releases 解压&#xff0c;将helm文件cp到/usr/local/bin/ 文件夹下&#xff0c;查看helm版本&#xff1b;不同的k8s对应不同的helm版本&#xff0c;下载时留心注意…

中国建设银行网站的社保板块在哪广州海珠区是市中心吗

文章目录 导读概念符号表IOB标记概率无向图模型MRF的因子分解团与最大团有向图模型 条件随机场线性链条件随机场 特征函数对数线性模型参数化形式简化形式矩阵形式 概率计算 导读 条件随机场是给定一组输入随机变量的条件下另一组输出随机变量的条件概率分布模型&#xff0c;其…

宁夏电力建设工程公司外部网站哈尔滨网站域名归那里管

最近全权负责了一个前后端分离的web项目&#xff0c;前端使用create-react-app[1], 后端使用golang做的api服务。npx create-react-app my-app cd my-app npm start歘歘歘&#xff0c;就搭建了一个react前端项目。前端老鸟都知道npm start或yarn start以开发模式启动react App&…

dedecms 网站地图模板做竞品分析的网站

目录 前言 一、链表的分类 二、双向循环链表 2.1 开辟新的节点 2.2 链表初始化 2.3 打印链表 2.4 链表的尾插 2.5 链表的头插 2.6 链表的尾删 2.7 链表的头删 2.8 查找链表 2.9 在pos位置之后插入数据 2.10 删除pos位置的数据 三、完整代码实现 四、顺序表和双向…

网站建设不挣钱浏览器下载WordPress文件

1.错误复现 2.解决办法 2.1去https://github.com/Esri/resource-proxy 网站下载代理配置文件&#xff0c;我下载的是最新的1.1.2版本&#xff0c;这里根据后台服务器配置情况不同有三种配置文件&#xff0c;此次我用到的是DotNet和Java. 2.2 DotNet配置 2.2.1 对proxy文件增加…

宁波建站模板系统企业网站建设免备案

CSAPP学习 前言 一门经典的计组课程&#xff0c;我却到了大四才学。 anyway&#xff0c;何时都不会晚。 博主参考的教程&#xff1a;本电子书信息 - 深入理解计算机系统&#xff08;CSAPP&#xff09; (gitbook.io)&#xff0c;非常感谢作者的整理。 诚然去看英文版可以学…

网站app开发费用网站建设网络推广方案

水果店微信小程序&#xff1a;新鲜生活&#xff0c;触手可及 在这个快节奏的时代&#xff0c;我们都在追求更高效、更便捷的生活方式。而微信小程序&#xff0c;正是这样一个让生活变得更加轻松便捷的神奇工具。今天&#xff0c;我要向大家介绍的&#xff0c;就是一家独具匠心…

厦门网站快速排名优化开平网站建设

简介hexo —— 简单、快速、强大的Node.js静态博客框架。Hexo 使用 Markdown&#xff08;或其他渲染引擎&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 特性风一般的速度Hexo基于Node.js&#xff0c;支持多进程&#xff0c;几百篇文章…

购物商城网站开发腾讯云获取WordPress密码

写在前面在MySQL数据库中&#xff0c;索引对查询的速度有着至关重要的影响&#xff0c;理解索引也是进行数据库性能调优的起点&#xff0c;索引就是为了提高数据查询的效率。今天我们来聊聊在MySQL索引优化中两种常见的方式&#xff0c;索引覆盖和索引下推索引覆盖要了解索引覆…

赤壁网站设计php做网站时间代码

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 如果觉得文章对你有所帮助&#xff0c;可以给博主点击关注和收藏哦&#xff01; 前言 目标网站&#xff1a;aHR0cHM6Ly9tZGZnaGcuNXhwb2lqaHRm…