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

wordpress静态首页网站更换空间对优化的影响

wordpress静态首页,网站更换空间对优化的影响,资阳网站建设方案,物流的网站模板概述 如果您没有Golang的基础#xff0c;应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…概述 如果您没有Golang的基础应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730MongoDB快速入门_20240411Go语言MongoDB用户管理系统实战_20240730 基础不好的同学每节课的代码最好配合视频进行阅读和学习如果基础比较扎实则阅读本教程巩固一下相关知识点即可遇到不会的知识点再看视频。 课程特色 本教程录制于2024年7月31日使用Go1.22版本基于Goland2024进行开发采用的技术栈比较新。 每节课控制在十分钟以内课时精简每节课都是一个独立的知识点如果有遗忘完全可以当做字典来查询绝不浪费大家的时间。 整个课程从如何搭建Go语言gRPC环境讲起然后如何创建proto文件如何实现基本的gRPC为辅如何开发增删改查的用户微服务层层递进学习路径平缓。 Golang是当前国内越来越多的企业正在全面转的一门系统级别的高性能的编程语言比C语言写法更加的简单比Python性能更加的好是新时代的C语言建议每个程序员都掌握 视频课程 最近发现越来越多的公司在用Golang了所以精心整理了一套视频教程给大家这个是其中的第10部后续还会有很多。 视频已经录制完成完整目录截图如下 本套课程的特色是每节课都是一个核心知识点每个视频控制在十分钟左右精简不废话拒绝浪费大家的时间。 课程目录 01 概述02 搭建Go语言gRPC微服务开发环境03 下载go-grpc官方的示例代码04 编写简单的proto文件05 根据proto文件自动生成Go代码06 创建grpc的服务端07 创建grpc的客户端08 定义用户微服务的proto文件09 生成用户微服务的go代码10 开发用户微服务服务端基本代码11 开发用户微服务客户端的基本代码12 创建用户表13 连接到MySQL数据库14 实现新增用户的微服务方法并测试15 实现查询所有用户的微服务方法并测试16 实现根据ID查询用户的微服务方法并测试17 实现修改用户的微服务方法并测试18 实现删除用户的微服务方法并测试19 总结 完整代码 04 编写简单的proto文件 syntax proto3;// go项目包的位置 option go_package grpc_demo/helloworld;// 包名 package helloworld;// 服务微服务 service Greeter {// 方法rpc SayHello(HelloRequest) returns (HelloReply) {} }// 请求对象 message HelloRequest{// 参数string name 1; // 1 表示的是参数在第几个位置从1开始 }// 响应对象 message HelloReply{string message 1; }05 根据proto文件自动生成Go代码 protoc --go_out. --go_optpathssource_relative --go-grpc_out. --go-grpc_optpathssource_relative helloworld/helloworld.proto06 创建grpc的服务端 package mainimport (contextfmtgoogle.golang.org/grpcpb grpc_demo/helloworldnet )// 服务对象 type server struct {pb.UnimplementedGreeterServer }// SayHello 实现方法 func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {fmt.Println(接收到的名字是, in.Name)return pb.HelloReply{Message: 你好 in.Name}, nil }func main() {// 创建监听器lis, err : net.Listen(tcp, :8080)if err ! nil {fmt.Printf(failed to listen: %v, err)return}// 构建grpc服务grpcServer : grpc.NewServer()pb.RegisterGreeterServer(grpcServer, server{})// 启动微服务err grpcServer.Serve(lis)if err ! nil {fmt.Printf(failed to serve: %v, err)} } 07 创建grpc的客户端 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/helloworldtime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewGreeterClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()helloReply, err : client.SayHello(ctx, pb.HelloRequest{Name: 李四})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(helloReply.GetMessage())} 08 定义用户微服务的proto文件 syntax proto3;// go项目包的位置 option go_package grpc_demo/c02_user/proto;// 包名 package proto;// 服务微服务 service UserMicroService {rpc Add(AddRequest) returns (CommonReply) {}rpc Delete(IdRequest) returns (CommonReply) {}rpc Update(UpdateRequest) returns (CommonReply) {}rpc GetByID(IdRequest) returns (CommonReply) {}rpc GetAll(EmptyRequest) returns (CommonReply) {} }message AddRequest{string name 1;int64 age 2; } message UpdateRequest{int64 id 1;string name 2;int64 age 3; } message IdRequest{int64 id 1; } message EmptyRequest{ }message CommonReply{bool status 1; // 成功或者失败string message 2; // 详细信息string data 3; // 返回的数据JSON格式 } 12 创建用户表 drop table if exists user; create table user (id int primary key auto_increment,name varchar(36),age int );14 实现新增用户的微服务方法并测试 这里是微服务服务端的完整代码后续的只是客户端测试代码。 服务端代码 package mainimport (contextdatabase/sqlencoding/jsonfmtgithub.com/zhangdapeng520/zdpgo_mcrud_ github.com/zhangdapeng520/zdpgo_mysqlgoogle.golang.org/grpcpb grpc_demo/c02_user/protonetstrconv )var (db *sql.DBerr error )func initMySQL() {dbUrl : root:roottcp(127.0.0.1:3306)/testdb, err sql.Open(mysql, dbUrl)if err ! nil {fmt.Println(err)return} }func closeMySQL() {db.Close() }type User struct {Id int64 json:idName string json:nameAge int json:age }// 服务对象 type server struct {pb.UnimplementedUserMicroServiceServer }func (s *server) Add(ctx context.Context, in *pb.AddRequest) (*pb.CommonReply, error) {fmt.Println(接收到的名字是, in.Name, in.Age)zdpgo_mcrud.Add(db,user,[]string{name, age},[]interface{}{in.Name, in.Age},)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func (s *server) GetAll(ctx context.Context, in *pb.EmptyRequest) (*pb.CommonReply, error) {data, _ : zdpgo_mcrud.GetBy(db,user,[]string{id, name, age},nil,)jsonData, _ : json.Marshal(data)result : pb.CommonReply{Status: true,Message: success,Data: string(jsonData),}return result, nil }func (s *server) GetByID(ctx context.Context, in *pb.IdRequest) (*pb.CommonReply, error) {data, _ : zdpgo_mcrud.GetBy(db,user,[]string{id, name, age},map[string]interface{}{id: in.Id},)jsonData, _ : json.Marshal(data)result : pb.CommonReply{Status: true,Message: success,Data: string(jsonData),}return result, nil }func (s *server) Update(ctx context.Context, in *pb.UpdateRequest) (*pb.CommonReply, error) {zdpgo_mcrud.Update(db,user,strconv.FormatInt(in.Id, 10),[]string{name, age},[]interface{}{in.Name, in.Age},)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func (s *server) Delete(ctx context.Context, in *pb.IdRequest) (*pb.CommonReply, error) {zdpgo_mcrud.Delete(db,user,strconv.FormatInt(in.Id, 10),)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func main() {initMySQL()defer closeMySQL()// 创建监听器lis, err : net.Listen(tcp, :8080)if err ! nil {fmt.Printf(failed to listen: %v, err)return}// 构建grpc服务grpcServer : grpc.NewServer()pb.RegisterUserMicroServiceServer(grpcServer, server{})// 启动微服务err grpcServer.Serve(lis)if err ! nil {fmt.Printf(failed to serve: %v, err)} } 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Add(ctx, pb.AddRequest{Name: 张三, Age: 23})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 15 实现查询所有用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.GetAll(ctx, pb.EmptyRequest{})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage())fmt.Println(commonReply.GetData()) } 16 实现根据ID查询用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.GetByID(ctx, pb.IdRequest{Id: 1})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage())fmt.Println(commonReply.GetData()) } 17 实现修改用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Update(ctx, pb.UpdateRequest{Id: 1,Name: 李四333,Age: 24,})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 18 实现删除用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Delete(ctx, pb.IdRequest{Id: 1})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 总结 整个课程从如何搭建Go语言gRPC环境讲起然后如何创建proto文件如何实现基本的gRPC为辅如何开发增删改查的用户微服务层层递进学习路径平缓。 通过本套课程能帮你入门Go语言通过gRPC开发微服务项目的技术。 如果您需要完整的源码打赏20元即可。 人生苦短我用PyGo我是您身边的Python私教~
http://www.hkea.cn/news/14458552/

相关文章:

  • 铜仁市建设招投标网站网站登陆口提交网站
  • 做公司网站成本网店seo名词解释
  • 如何用自己的域名做网站网站怎么做分页
  • 宁波公司建设网站建设自己的淘宝优惠券网站
  • 网站里面的超链接怎么做一个网站一级栏目
  • 毕业答辩ppt模板免费下载网站如何做seo优化
  • 备案网站公共查询系统国美在线网站建设
  • php网站开发推荐书籍wordpress底部图片
  • 有高并发 高访问量网站开发阿里云网站空间主机
  • 南京网站制作有限公司wordpress批量拿shell
  • 学校网站建设设计方案深圳的小型网络公司
  • 徐州网站推广公司广州网站建设公司嘉御
  • 网站建设超链接制作页面模板怎么没有了
  • 单网页网站如何做朝阳网络推广
  • 外贸如何建立网站完整个人网页html
  • 企业门户网站模板html平面设计公司工作室
  • 重庆网站网络推广推广金坛网页定制
  • 网站网页设计基本理论比价网站 源码
  • 怎么编辑网站内容wordpress怎么屏蔽注册链接
  • 做网站商丘c语言软件开发和网站开发区别
  • 找网站建设公司哪家最好智慧团建网站登录电脑版
  • 宁波百度网站建设番禺网站开发哪家好
  • 家纺公司网站模版云建站源码
  • 汕头企业网站推广技巧中国企业信息公示网登录官网
  • 网站开发用框架开发的优缺点教育网站制作开发
  • 无锡市做网站深圳建设银行宝安支行网站
  • 最大的免费网站建设深圳招标信息网
  • 北京市建设工程第四检测所网站网站备案 异地
  • 微网站手机制作做it行业招标网站
  • 电子商务网站建设题温州网站建设seo