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

做网站如何让用户注册用火车采集器发布信息时 如何获取网站栏目id

做网站如何让用户注册,用火车采集器发布信息时 如何获取网站栏目id,用什么软件建手机网站,电商网站设计公司排行榜文章目录 1.go-micro 介绍2.go-micro 的主要功能3.go-micro 安装4.go-micro 的使用4.1 创建服务端4.2 配置服务端 consul4.3 生成客户端 5.goodsinfo 服务5.1 服务端开发5.2 客户端开发 1.go-micro 介绍 Go Micro是一个简化分布式开发 的微服务生态系统#xff0c;该系统为开… 文章目录 1.go-micro 介绍2.go-micro 的主要功能3.go-micro 安装4.go-micro 的使用4.1 创建服务端4.2 配置服务端 consul4.3 生成客户端 5.goodsinfo 服务5.1 服务端开发5.2 客户端开发 1.go-micro 介绍 Go Micro是一个简化分布式开发 的微服务生态系统该系统为开发分布式应用程序提供了 高效 便捷的模块构建 主要目的是 简化分布式系统的开发,它默认实现了 consul作为服务发现2019年源码修改了默认使用 mdns通过 http进行通信通过 protobuf和 json进行编解码,可以方便开发者们非常简单的开发出微服务架构的项目并且随着业务模块的增加和功能的增加Go Micro还能够提供管理微服务环境的工具和功能。 2.go-micro 的主要功能 身份验证动态配置数据存储服务发现: 自动服务注册和 名称解析,服务发现是 微服务开发的核心,当服务 A 需要与服务 B 通话时它需要该服务的位置,默认发现机制是 多播 DNS (mdns)一个 zeroconf 系统。负载均衡消息编码: 基于 内容类型的 动态消息编码,客户端和服务器将使用 编解码器和 内容类型无缝编码和解码 Go 类型,任何种类的消息都可以被编码并从不同的客户端发送,默认情况下客户端和服务器会处理此问题,这默认包括 protobuf 和 json。RPC 客户端/服务器Async Messaging: PubSub 作为 异步通信和 事件驱动架构的一等公民内置, 事件通知是 微服务开发的核心模式,默认消息系统是 HTTP 事件消息代理。事件流: 从偏移量和确认中消耗,Go Micro 包括对 NATS Jetstream 和 Redis 流的支持。同步分布式系统通常以 最终一致的方式构建,对 分布式锁定和 领导(Leader)的支持作为同步接口内置,当使用 最终一致的数据库或 调度时请使用 Sync 接口。Pluggable Interfaces: Go Micro 为每个分布式系统抽象使用 Go 接口,因此这些接口是 可插拔的并 允许 Go Micro 与运行时无关,可以插入任何底层技术。 3.go-micro 安装 go install github.com/go-micro/cli/cmd/go-microlatest4.go-micro 的使用 4.1 创建服务端 go-micro new service helloworld#init里面的命令引入需要的包 go get -u google.golang.org/protobuf/proto go install google.golang.org/protobuf/cmd/protoc-gen-golatest go install github.com/go-micro/generator/cmd/protoc-gen-microlatest #proto执行生成对应的protobuf相关文件 protoc --proto_path. --micro_out. --go_out:. proto/helloworld.proto会生成相关 .pd.go 文件 go mod tidygo get go-micro.dev/v44.2 配置服务端 consul go get github.com/go-micro/plugins/v4/registry/consul# 实例化consul consulReg : consul.NewRegistry()# 注册consul srv : micro.NewService(micro.Address(192.168.1.132:8080), // 选择注册服务器地址,默认为本机,也可以选择consul集群中的clientmicro.Name(service),micro.Version(version),micro.Registry(consulReg), )main.go package mainimport (helloworld/handlerpb helloworld/protogo-micro.dev/v4go-micro.dev/v4/loggergithub.com/go-micro/plugins/v4/registry/consul )var (service helloworldversion latest )func main() {//集成consulconsulReg : consul.NewRegistry()// Create servicesrv : micro.NewService(micro.Address(127.0.0.1:8080), //指定微服务的ip: 选择注册服务器地址,也可以不配置,默认为本机,也可以选择consul集群中的clientmicro.Name(service),micro.Version(version),//注册consulmicro.Registry(consulReg),)srv.Init(micro.Name(service),micro.Version(version),)// Register handlerif err : pb.RegisterHelloworldHandler(srv.Server(), new(handler.Helloworld)); err ! nil {logger.Fatal(err)}// Run serviceif err : srv.Run(); err ! nil {logger.Fatal(err)} }go run main.go服务端配置操作完成 4.3 生成客户端 go-micro new client helloworld需要把helloworld/proto修改为helloworld-client/proto go mod tidygo get github.com/go-micro/plugins/v4/registry/consul main.go package mainimport (contexttimepb helloworld-client/protogo-micro.dev/v4go-micro.dev/v4/logger go-micro.dev/v4/registrygithub.com/go-micro/plugins/v4/registry/consul )var (service helloworld //需要和微服务服务端对应的service名统一,这样才能调用该微服务version latest )func main() {//集成consulconsulReg : consul.NewRegistry(//指定微服务的ip: 选择注册服务器地址,默认为本机,也可以选择consul集群中的clientregistry.Addrs(127.0.0.1:8500),)// Create servicesrv : micro.NewService(//注册consulmicro.Registry(consulReg),)srv.Init()// 创建客户端实例c : pb.NewHelloworldService(service, srv.Client())for {// Call service: CallRequest就是.proto中的rsp, err : c.Call(context.Background(), pb.CallRequest{Name: 张三})if err ! nil {logger.Fatal(err)}logger.Info(rsp)//每隔一段时间请求time.Sleep(2 * time.Second) // 每隔2秒请求} }客户端: 服务端: 客户端配置操作完成 5.goodsinfo 服务 5.1 服务端开发 go-micro new service goodsinfogoodsinfo.proto syntax proto3;package goodsinfo;option go_package ./proto;goodsinfo;//商品相关方法 service Goodsinfo {//AddGoods: 定义增加商品的微服务, 这里的写法和gRPC中的写法一致rpc AddGoods(AddRequest) returns (AddResponse) {} }//和gRPC中的写法一致 message AddRequest {string title 1;string price 2;string content 3; }//和gRPC中的写法一致 message AddResponse {string message 1;bool success 2; }#init引入相关包 go get -u google.golang.org/protobuf/proto go install google.golang.org/protobuf/cmd/protoc-gen-golatest go install github.com/go-micro/generator/cmd/protoc-gen-microlatest #proto 生成protobuf相关文件 protoc --proto_path. --micro_out. --go_out:. proto/goodsinfo.protogo get go-micro.dev/v4 go mod tidy修改远程调用的方法handler/goodsinfo.go package handlerimport (contextgo-micro.dev/v4/loggerpb goodsinfo/proto )type Goodsinfo struct{}func (e *Goodsinfo) AddGoods(ctx context.Context, req *pb.AddRequest, rsp *pb.AddResponse) error {logger.Infof(request: %v, req)//书写返回的逻辑结果rsp.Message 增加成功rsp.Success truereturn nil }引入consul go get github.com/go-micro/plugins/v4/registry/consul maiin.go package mainimport (goodsinfo/handlerpb goodsinfo/protogo-micro.dev/v4go-micro.dev/v4/loggergithub.com/go-micro/plugins/v4/registry/consul )var (service goodsinfoversion latest )func main() {//集成consulconsulReg : consul.NewRegistry()// Create servicesrv : micro.NewService(micro.Address(127.0.0.1:8080), //指定微服务的ip: 选择注册服务器地址,也可以不配置,默认为本机,也可以选择consul集群中的clientmicro.Name(service),micro.Version(version),//注册consulmicro.Registry(consulReg),)srv.Init(micro.Name(service),micro.Version(version),)// Register handlerif err : pb.RegisterGoodsinfoHandler(srv.Server(), new(handler.Goodsinfo)); err ! nil {logger.Fatal(err)}// Run serviceif err : srv.Run(); err ! nil {logger.Fatal(err)} }go run main.go服务端开发成功 5.2 客户端开发 go get go-micro.dev/v4go get github.com/go-micro/plugins/v4/registry/consulgo mod tidymain.go package mainimport (contextgo-micro.dev/v4/registrytimepb goodsinfo-client/protogo-micro.dev/v4go-micro.dev/v4/loggergithub.com/go-micro/plugins/v4/registry/consul )var (service goodsinfoversion latest )func main() {//集成consulconsulReg : consul.NewRegistry(//指定微服务的ip: 选择注册服务器地址,默认为本机,也可以选择consul集群中的clientregistry.Addrs(127.0.0.1:8500),)// Create servicesrv : micro.NewService(//注册consulmicro.Registry(consulReg),)srv.Init()// 创建客户端服务c : pb.NewGoodsinfoService(service, srv.Client())// Call servicersp, err : c.AddGoods(context.Background(), pb.AddRequest{Title: 我是一个商品,Price: 20.22,Content: 内容展示,})if err ! nil {logger.Fatal(err)}logger.Info(rsp) }go run .\main.go客户端开发成功, 并通过consul调用服务端的请求
http://www.yingshimen.cn/news/37834/

相关文章:

  • 单页简洁手机网站模板江苏建设人才考试网是啥网站
  • 企业手机网站建设需要注意哪些学习网站制作
  • 建站的步骤深圳网站设计公司费用
  • 简约网站设计一个公司网站设计需求
  • 网站半年没更新怎么做SEOwordpress 公司主题
  • 旅游门户网站模板下载谷歌下载安装
  • 增城网站公司电话宁波市江北区建设局网站
  • 哪个公司做网站好怎么自己做导购网站
  • 龙岗建设网站公司wordpress私聊
  • 那些网站布局好看企业宣传册
  • 云南网站优化公司南京网站制作公司招聘
  • app开发定制外包服务商e长沙seo优化排名推广
  • 做服务器的网站都有哪些打名字就说你是什么做的网站
  • 国外优秀的网站设计怎样修改网站标题
  • 网站开发方案及报价vr全景网站开发制作
  • 建设网站的准备工作分为wordpress发表评论项
  • 百度SEO网站电影网站开发文档
  • flas网站开发工具经典创意营销案例
  • 潍坊中小企业网站制作emlog 迁移Wordpress
  • 备案过的网站换域名松原做网站的公司
  • 关于幼儿建设网站ppt张伟专业团队
  • 阳曲网站建设推荐咨询社区网站免费制作
  • 土地流转网站开发免费模板下载网
  • 网站建设视频教程网石家庄专业制作网站
  • 网站域名备案在阿里云怎么做微信怎么做自己的小程序
  • 重庆网站建设培训班做网站很简单
  • 同ip网站做排名seo怎么制作游戏脚本视频教程
  • 2008 .net 网站 目录 权限管理智能建造师报名入口官网
  • 帝国网站开发公司网站开发费用大概多少
  • 未备案网站如何加cdn哪里做网络推广好