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

建立网站第一步网站后台备份丢失

建立网站第一步,网站后台备份丢失,邢台市地图全图高清版,现在学什么技术最吃香工资高简介#xff1a; 本文主要介绍如何使用 Golang 生态中的微服务框架 Go-Micro(v2) 集成 Nacos 进行服务注册与发现。(Go-Micro 目前已经是 v3 版本#xff0c;但由于某些原因项目已经更名为 nitro 具体原因大家可以去 github 中查看) 相关背景知识 Go-Micro Go Micro 是一个…简介 本文主要介绍如何使用 Golang 生态中的微服务框架 Go-Micro(v2) 集成 Nacos 进行服务注册与发现。(Go-Micro 目前已经是 v3 版本但由于某些原因项目已经更名为 nitro 具体原因大家可以去 github 中查看) 相关背景知识 Go-Micro Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架提供了分布式开发所需的核心组件包括 RPC 和事件驱动通信等。 它的设计哲学是「可插拔」的插件化架构其核心专注于提供底层的接口定义和基础工具这些底层接口可以兼容各种实现。例如 Go Micro 默认通过 consul 进行服务发现通过 HTTP 协议进行通信通过 protobuf 和 json 进行编解码以便你可以基于这些开箱提供的组件快速启动但是如果需要的话你也可以通过符合底层接口定义的其他组件替换默认组件比如通过 nacos, etcd 或 zookeeper 进行服务发现这也是插件化架构的优势所在不需要修改任何底层代码即可实现上层组件的替换。 Go-Micro概述 Micro是一个微服务工具包包括 API 提供并将 HTTP 请求路由到相应微服务的 API 网关。它充当微服务访问的单一入口将HTTP 请求转换为 RPC 并转发给相应的服务也可以用作反向代理。 Web UI 是 go-micro 的 web 版本允许通过 UI 交互访问环境。在未来它也将是一种聚合微型 Web 服务的方式。它包含一种 Web 应用程序的代理方式。将 /[name] 通过注册表路由到相应的服务。Web UI 将前缀“go.micro.web。”可以配置添加到名称中在注册表中查找它然后将进行反向代理。 Sidecar go-micro 的 HTTP 接口版本这是将非 Go 应用程序集成到微环境中的一种方式。 Bot Hubot 风格的 bot位于您的微服务平台中可以通过 SlackHipChatXMPP 等进行交互。它通过消息传递提供 CLI 的功能。可以添加其他命令来自动执行常见的操作任务。 CLI 一个直接的命令行界面来与你的微服务进行交互它提供了一种观察和与运行环境交互的方式。 Go-Micro 组件 用于在 Go 中编写微服务的插件式 RPC 框架。它提供了用于服务发现客户端负载平衡编码同步和异步通信库。go-micro 是一个独立的库可以独立于其他工具包使用。 go-micro 是组件化的框架每一个基础功能都是一个 interface 方便扩展。同时组件又是分层的上层基于下层功能向上提供服务整体构成 go-micro 框架。go-micro框架的构成组件有 Registry 提供服务发现机制解析服务名字至服务地址。目前支持的注册中心有 consul、etcd、 zookeeper、dns、gossip 等。 Selector 选择器通过选择提供负载均衡机制。当客户端向服务器发出请求时它将首先查询服务的注册表。这通常会返回一个表示服务的正在运行的节点列表。选择器将选择这些节点中的一个用于查询。多次调用选择器将允许使用平衡算法。目前的方法是循环法随机哈希和黑名单。 Broker 发布和订阅的可插入接口服务之间基于消息中间件的异步通信方式默认使用http方式线上通常使用消息中间件如 Nats、Kafka、RabbitMQ 和 http用于开发。 Transport 通过点对点传输消息的可插拔接口。目前的实现是 httprabbitmq 和 nats 。通过提供这种抽象运输可以无缝地换出。 Codec 服务之间消息的编码/解码。 Plugins 提供 go-micro 的 micro/go-plugins 插件。 Server 服务器是构建正在运行的微服务的接口。它提供了一种提供 RPC 请求的方法。该组件基于上面的 Registry/Selector/Transport/Broker 组件对外提供一个统一的服务请求入口。 Client 提供一种制作 RPC 查询的方法访问微服务的客户端。它结合了注册表选择器代理和传输。它还提供重试超时使用上下文等。类似 Server 组件它也是通过 Registry/Selector/Transport/Broker 组件实现查找服务、负载均衡、同步通信、异步消息等功能。 Nacos Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理的平台Nacos 脱胎于阿里巴巴内部的 ConfigServer 和 Diamond 是它们的开源实现。经历过双十一流量峰值和阿里巴巴经济体超大规模容量的考验沉淀了阿里巴巴软负载团队在这个领域十年的经验在稳定性和功能性上都有很好的保障。 Nacos 逻辑架构及其组件概览图 快速开始 Go-Micro服务端 安装 protoc Protobuf 是 Protocol Buffers 的简称它是 Google 公司开发的一种数据描述语言并于 2008 年对外开源。Protobuf 刚开源时的定位类似于 XML、JSON 等数据描述语言通过附带工具生成代码并实现将结构化数据序列化的功能。我们需要利用 protoc 生成服务端代码。 安装 Go-Micro/v2 新建 golang 项目(服务端) 1、在项目根目录下创建 proto 文件夹用来存放 protobuf 文件 2、在 proto 文件夹下创建 greeter.proto 文件 3、文件内容如下 在服务端中使用 protobuf 文件定义了一个服务叫做 Greeter 的处理器,它有一个接收 HelloRequest 并返回 HelloResponse 的 Hello 方法。 4、生成相应的 Go 代码 5、在 proto 目录下生成了 pb.go 以及 pb.micro.go 两个文件 6、创建 server.go 并运行 package main import ( context helloworld go-micro-nacos-demo1/proto github.com/micro/go-micro/v2 github.com/micro/go-micro/v2/logger github.com/micro/go-micro/v2/registry nacos github.com/micro/go-plugins/registry/nacos/v2 ) type Helloworld struct{} // Call is a single request handler called via client.Call or the generated client code func (e Helloworld) Hello(ctx context.Context, req helloworld.HelloRequest, rsp *helloworld.HelloResponse) error { logger.Info(Received Helloworld.Call request) return nil } func main() { addrs : make([]string, 1) addrs[0] console.nacos.io:80 registry : nacos.NewRegistry(func(options *registry.Options) {options.Addrs addrs }) service : micro.NewService(// Set service namemicro.Name(my.micro.service),// Set service registrymicro.Registry(registry), ) helloworld.RegisterGreeterHandler(service.Server(), new(Helloworld)) service.Run() } 7、在 Nacos console 中可以看到 my.micro.service 成功注册。 Go-Micro客户端 1、创建 client.go 为了方便演示本文章在同一项目下创建了 cient.go。 package main import ( context fmt helloworld go-micro-nacos-demo1/proto github.com/micro/go-micro/v2 github.com/micro/go-micro/v2/registry nacos github.com/micro/go-plugins/registry/nacos/v2 ) const serverName my.micro.service func main() { addrs : make([]string, 1) addrs[0] console.nacos.io:80 r : nacos.NewRegistry(func(options *registry.Options) {options.Addrs addrs }) // 定义服务可以传入其它可选参数 service : micro.NewService(micro.Name(my.micro.service.client),micro.Registry(r)) // 创建新的客户端 greeter : helloworld.NewGreeterService(serverName, service.Client()) // 调用greeter rsp, err : greeter.Hello(context.TODO(), helloworld.HelloRequest{Name: John}) if err ! nil {fmt.Println(err) } //获取所有服务 fmt.Println(registry.ListServices()) //获取某一个服务 services, err : registry.GetService(serverName) if err ! nil {fmt.Println(err) } //监听服务 watch, err : registry.Watch() fmt.Println(services) // 打印响应请求 fmt.Println(rsp.Greeting) go service.Run() for {result, err : watch.Next()if len(result.Action) 0 {fmt.Println(result, err)} } } 2、运行客户端在 nacos console 中可以看到客户端服务也注册到了 nacos 中。 3、server.go 的控制台中打印了调用日志。 Go-Micro集成Nacos 功能说明 server.go 服务端:使用 go-micro 创建服务端 Demo ,并注册到 nacos 。 registry : nacos.NewRegistry(func(options *registry.Options) { options.Addrs addrs }) service : micro.NewService( // Set service namemicro.Name(my.micro.service),// Set service registrymicro.Registry(registry), ) service.Run() client.go 使用 go-micro 创建客户端 Demo ,注册到 nacos : 客户端调用 // 创建新的客户端 greeter : helloworld.NewGreeterService(serverName, service.Client()) // 调用greeter rsp, err : greeter.Hello(context.TODO(), helloworld.HelloRequest{Name: John})查询服务列表 获取某一个服务 订阅服务 总结 使用 Go-Micro 集成 Nacos 完成服务注册与发现是比较简单容易上手的本项目中 client.go 使用的 nacos 客户端是 go-mirco 提供的默认配置。go-micro 的 registry 接口自由度较高,我们可以利用 context 完成 nacos 客户端参数的配置, 如何使用 context 设置 nacos 客户端参数 可参考: 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.pierceye.com/news/730833/

相关文章:

  • 吉首市建设局官方网站一对一直播软件开发定制
  • 网站开发验收单做的网站如何被百度搜到
  • 网站的数据库是什么两学一做网站链接
  • 做窗帘网站济南网络科技公司排名
  • 广东省住房城乡建设部网站哪个网站可以做加工代理的
  • dede网站源码打包下载wordpress登不进后台
  • 建设内部网站目的国内贸易在那个网站上做
  • 用什么建设网站注册深圳公司代理
  • 网站平台建设方案书百度云资源搜索入口
  • 网站 团队博罗网站建设哪家便宜
  • wordpress列表分页枣庄seo外包
  • 知了网站后台推广形式有哪几种
  • 成品图片的网站在哪里找wordpress开启防盗链
  • 伊滨区网站建设网站建设经理
  • 权威的郑州网站建设域名租用平台
  • 造价工程师网网站点击排名优化
  • 网站关键词搜索海口网站建设优化公司
  • WordPress建影视站免费的素材网站有哪些
  • 屯留做网站哪里好阿里云服务器618
  • 网站怎么做登录模块免费的编程软件下载
  • 网站建设与管理的策划书网站建设五合一
  • 网站建设管理分工公司招聘网站有哪些
  • 分类信息网站手机版上海网站关键词优化方法
  • 建设个人网站的参考网站及文献怎么做水果网站
  • 台山住房和城乡建设 网站有赞分销
  • 网站备案 历史wordpress货币插件
  • 如何做自助搜券网站佛山顺德专业做网站
  • 义乌网站制作多少钱工会网站建设
  • 六安高端网站建设公司开网店的流程步骤
  • 网站被墙301怎么做展馆展厅设计效果图