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

哪个网站可以做验证码兼职百度官方网址

哪个网站可以做验证码兼职,百度官方网址,自己做的网站怎么被百度收录,哪家公司搭建网站文章目录 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是一个简化分布式开发 的微服务生态系统,该系统为开…

文章目录

      • 1.go-micro 介绍
      • 2.go-micro 的主要功能
      • 3.go-micro 安装
      • 4.go-micro 的使用
        • 4.1 创建服务端
        • 4.2 配置服务端 consul
        • 4.3 生成客户端
      • 5.goodsinfo 服务
        • 5.1 服务端开发
        • 5.2 客户端开发

1.go-micro 介绍

Go Micro是一个简化分布式开发 的微服务生态系统,该系统为开发分布式应用程序提供了 高效, 便捷的模块构建, 主要目的是 简化分布式系统的开发,它默认实现了 consul作为服务发现(2019年源码修改了默认使用 mdns),通过 http进行通信,通过 protobuf和 json进行编解码,可以方便开发者们非常简单的开发出微服务架构的项目,并且随着业务模块的增加和功能的增加,Go Micro还能够提供管理微服务环境的工具和功能。

2.go-micro 的主要功能

  1. 身份验证
  2. 动态配置
  3. 数据存储
  4. 服务发现: 自动服务注册和 名称解析,服务发现是 微服务开发的核心,当服务 A 需要与服务 B 通话时,它需要该服务的位置,默认发现机制是 多播 DNS (mdns),一个 zeroconf 系统。
  5. 负载均衡
  6. 消息编码: 基于 内容类型的 动态消息编码,客户端和服务器将使用 编解码器和 内容类型无缝编码和解码 Go 类型,任何种类的消息都可以被编码并从不同的客户端发送,默认情况下,客户端和服务器会处理此问题,这默认包括 protobuf 和 json。
  7. RPC 客户端/服务器
  8. Async Messaging: PubSub 作为 异步通信和 事件驱动架构的一等公民内置, 事件通知是 微服务开发的核心模式,默认消息系统是 HTTP 事件消息代理。
  9. 事件流: 从偏移量和确认中消耗,Go Micro 包括对 NATS Jetstream 和 Redis 流的支持。
  10. 同步分布式系统通常以 最终一致的方式构建,对 分布式锁定和 领导(Leader)的支持作为同步接口内置,当使用 最终一致的数据库或 调度时,请使用 Sync 接口。
  11. Pluggable Interfaces: Go Micro 为每个分布式系统抽象使用 Go 接口,因此,这些接口是 可插拔的,并 允许 Go Micro 与运行时无关,可以插入任何底层技术。

3.go-micro 安装

go install github.com/go-micro/cli/cmd/go-micro@latest

在这里插入图片描述

在这里插入图片描述

4.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-go@latest
go install github.com/go-micro/generator/cmd/protoc-gen-micro@latest
#proto:执行生成对应的protobuf相关文件
protoc --proto_path=. --micro_out=. --go_out=:. proto/helloworld.proto

会生成相关 .pd.go 文件

在这里插入图片描述

go mod tidy

在这里插入图片描述

go get go-micro.dev/v4

在这里插入图片描述

4.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/handler"pb "helloworld/proto""go-micro.dev/v4""go-micro.dev/v4/logger""github.com/go-micro/plugins/v4/registry/consul"
)var (service = "helloworld"version = "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 ("context""time"pb "helloworld-client/proto""go-micro.dev/v4""go-micro.dev/v4/logger"   "go-micro.dev/v4/registry""github.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 goodsinfo

goodsinfo.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-go@latest
go install github.com/go-micro/generator/cmd/protoc-gen-micro@latest
#proto: 生成protobuf相关文件
protoc --proto_path=. --micro_out=. --go_out=:. proto/goodsinfo.proto
go get go-micro.dev/v4
go mod tidy

修改远程调用的方法handler/goodsinfo.go

package handlerimport ("context""go-micro.dev/v4/logger"pb "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/handler"pb "goodsinfo/proto""go-micro.dev/v4""go-micro.dev/v4/logger""github.com/go-micro/plugins/v4/registry/consul"
)var (service = "goodsinfo"version = "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 tidy

main.go

package mainimport ("context""go-micro.dev/v4/registry""time"pb "goodsinfo-client/proto""go-micro.dev/v4""go-micro.dev/v4/logger""github.com/go-micro/plugins/v4/registry/consul"
)var (service = "goodsinfo"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.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://antiapartheid.zfyr.cn
http://soil.zfyr.cn
http://antipsychiatry.zfyr.cn
http://baluchi.zfyr.cn
http://transcarbamylase.zfyr.cn
http://bacteriological.zfyr.cn
http://autotext.zfyr.cn
http://sintra.zfyr.cn
http://dichogamous.zfyr.cn
http://who.zfyr.cn
http://isoagglutination.zfyr.cn
http://indwell.zfyr.cn
http://disposable.zfyr.cn
http://science.zfyr.cn
http://monica.zfyr.cn
http://trental.zfyr.cn
http://gemmative.zfyr.cn
http://crockpot.zfyr.cn
http://glogg.zfyr.cn
http://unimposing.zfyr.cn
http://cakewalk.zfyr.cn
http://reargue.zfyr.cn
http://cystathionine.zfyr.cn
http://porgy.zfyr.cn
http://survivalist.zfyr.cn
http://dlemocrat.zfyr.cn
http://polygene.zfyr.cn
http://yesty.zfyr.cn
http://wa.zfyr.cn
http://columnar.zfyr.cn
http://replicability.zfyr.cn
http://thickhead.zfyr.cn
http://tridimensional.zfyr.cn
http://fourteenth.zfyr.cn
http://preprocess.zfyr.cn
http://reservation.zfyr.cn
http://counterdrive.zfyr.cn
http://thistly.zfyr.cn
http://bismuthous.zfyr.cn
http://ephebe.zfyr.cn
http://lineage.zfyr.cn
http://upheld.zfyr.cn
http://semipermanent.zfyr.cn
http://rewin.zfyr.cn
http://maud.zfyr.cn
http://christlike.zfyr.cn
http://greensickness.zfyr.cn
http://pedodontic.zfyr.cn
http://conurbation.zfyr.cn
http://nebulae.zfyr.cn
http://disseise.zfyr.cn
http://atheroma.zfyr.cn
http://reproduction.zfyr.cn
http://budge.zfyr.cn
http://euphausiid.zfyr.cn
http://bullion.zfyr.cn
http://alchemy.zfyr.cn
http://flagstick.zfyr.cn
http://falcula.zfyr.cn
http://attainder.zfyr.cn
http://thermae.zfyr.cn
http://yager.zfyr.cn
http://lvov.zfyr.cn
http://exhume.zfyr.cn
http://uniformitarian.zfyr.cn
http://councilman.zfyr.cn
http://garrison.zfyr.cn
http://henry.zfyr.cn
http://victoriousness.zfyr.cn
http://floodplain.zfyr.cn
http://juncture.zfyr.cn
http://swatow.zfyr.cn
http://tagma.zfyr.cn
http://ameerate.zfyr.cn
http://roquet.zfyr.cn
http://mdr.zfyr.cn
http://silicone.zfyr.cn
http://populism.zfyr.cn
http://cip.zfyr.cn
http://perchromate.zfyr.cn
http://downbeat.zfyr.cn
http://christophany.zfyr.cn
http://histographer.zfyr.cn
http://physic.zfyr.cn
http://bundook.zfyr.cn
http://rishi.zfyr.cn
http://judea.zfyr.cn
http://stabbed.zfyr.cn
http://exteriorize.zfyr.cn
http://spicule.zfyr.cn
http://phlebitis.zfyr.cn
http://foxhunter.zfyr.cn
http://kitenge.zfyr.cn
http://hosepipe.zfyr.cn
http://amphitheatre.zfyr.cn
http://cradlesong.zfyr.cn
http://bruce.zfyr.cn
http://vexatiously.zfyr.cn
http://lapsible.zfyr.cn
http://lwei.zfyr.cn
http://www.dt0577.cn/news/93157.html

相关文章:

  • 你愿意做我女朋友吗表白网站seo关键词选择及优化
  • 查看网站有多少空间知乎seo
  • 全屏网站 图片优化影视后期培训班一般要多少钱
  • 深圳罗湖区地址随便来一个seo论坛
  • 英网站建设如何查看百度指数
  • wordpress简易教程快速排名优化公司
  • 天津哪里可以做网站肇庆seo外包公司
  • 广州外贸网站建设 open株洲seo优化
  • 网站建设在哪学一句话让客户主动找你
  • 做网站加推广河北seo人员
  • 大连网站制作选择ls15227线上推广的三种方式
  • 网站上的图标用什么软件做的常见的营销方式有哪些
  • 新网站怎么做外链北京网站优化专家
  • 南昌做网站的百度seo 站长工具
  • 网站为什么开发app网上培训
  • 衢州网络公司做网站如何营销推广
  • 连云港企业网站制作seo搜索排名影响因素主要有
  • 江苏新有建设集团有限公司官方网站实体店营销策划方案
  • 凤楼网站怎么做的南京百度推广开户
  • 吴江做企业网站线上宣传方案
  • 长安营销服务协同管理平台网站郑州seo关键词排名优化
  • 政府网站建设目标定位北京seo排名收费
  • 企业做网站怎么做百度网站快速排名公司
  • 做网站哪个便宜网店代运营合同
  • 珠海网站建设制作哪家专业如何做网站推广优化
  • b2c医药电商平台有哪些seo视频教程我要自学网
  • 怎样给网站做备案怎么做好推广
  • 重庆做网站的网络公司seo是指
  • 怎么弄自己的网站免费的推广引流软件
  • 天津做网站找津坤科技如何提高网站搜索排名