您的位置:首页 > 游戏 > 手游 > 东莞集团网站建设_如何管理好自己团队_提升关键词排名有哪些方法_南宁百度seo排名公司

东莞集团网站建设_如何管理好自己团队_提升关键词排名有哪些方法_南宁百度seo排名公司

2025/7/13 10:51:07 来源:https://blog.csdn.net/weixin_54385104/article/details/146374054  浏览:    关键词:东莞集团网站建设_如何管理好自己团队_提升关键词排名有哪些方法_南宁百度seo排名公司
东莞集团网站建设_如何管理好自己团队_提升关键词排名有哪些方法_南宁百度seo排名公司

单体架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

微服务架构

在这里插入图片描述

RPC架构(远程过程调用)

在这里插入图片描述
服务端实例代码:

package mainimport ("fmt""net""net/rpc""time"
)type Hello struct {
}func (h Hello) SayHello(req string, res *string) error {*res = "你好," + reqfmt.Println(*res)time.Sleep(10*time.Second)return nil
}func main() {// 1. 注册RPC服务err := rpc.RegisterName("hello", new(Hello))if err!=nil{fmt.Println(err)}// 2. 监听端口listener, err := net.Listen("tcp", "127.0.0.1:8000")if err!=nil{fmt.Println(err)}// 3. 退出程序是关闭监听defer listener.Close()for{// 4. 建立连接conn, err := listener.Accept()if err!=nil{fmt.Println(err)}// 绑定服务go rpc.ServeConn(conn)}}

客户端示例代码:

package mainimport ("fmt""net/rpc"
)func main() {// 1. 与RPC微服务建立连接conn, err := rpc.Dial("tcp", "127.0.0.1:8000")if err!=nil{fmt.Println(err)}// 2. 当程序退出时关闭连接defer conn.Close()// 3. 远程调用函数var res stringerr = conn.Call("hello.SayHello", "hahahha", &res)fmt.Println(res)
}

在这里插入图片描述

Protobuf

在这里插入图片描述

在这里插入图片描述
https://github.com/protocolbuffers/protobuf/releases/tag/v30.0
下载对应操作系统版本,然后解压缩,将bin文件夹的路径加入环境变量中
在这里插入图片描述
即为成功!
然后下载go对应的包
go get github.com/golang/protobuf/protoc-gen-go

使用样例

syntax = "proto3";
option go_package="./";message User{string name = 1;bool male = 2;repeated string hobby = 3;
}// 执行:protoc --go_out=. *.proto
package mainimport ("fmt""google.golang.org/protobuf/proto"
)func main() {u := User{Name: "张三",Male: false,}data, _ := proto.Marshal(&u)fmt.Println(data)user := &User{}proto.Unmarshal(data, user)fmt.Println(user)
}

message嵌套

message SearchResponse {message Result {string url = 1;string title = 2;repeated string snippets = 3;}repeated Result results = 1;
}

定义服务类型

service SearchService {rpc Search (SearchRequest) returns (SearchResponse);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com