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

手机网站前端如何建网站赚取佣金

手机网站前端,如何建网站赚取佣金,番禺建设网站企业,动画做a视频在线观看网站使用 ttrpc 实现高效的进程间通信(附 Go Demo) ttrpc(Tiny Transport RPC)是由 containerd 社区开发的一种轻量级 RPC 协议,它专为本地进程间通信(IPC)设计,使用 UNIX domain socke…

使用 ttrpc 实现高效的进程间通信(附 Go Demo)

ttrpc(Tiny Transport RPC)是由 containerd 社区开发的一种轻量级 RPC 协议,它专为本地进程间通信(IPC)设计,使用 UNIX domain socket 与 protobuf,实现了比 gRPC 更快、更小、更适合容器运行时的通信机制。

本文将介绍:

  • ttrpc 是什么
  • ttrpc 与 gRPC 的区别
  • 如何使用 ttrpc 开发一个服务端和客户端
  • 完整 Demo 与运行方法

✳️ 一、ttrpc 简介

ttrpc 是一个基于 Protobuf 的简化 RPC 框架,主要用于容器运行时如 containerd 与其 shim 之间的通信。相比 gRPC,它去除了 TLS、多路复用、流式接口等复杂功能,专注于在同主机中通过 UNIX socket 进行高性能通信。

✅ 特点

特性ttrpcgRPC
通信协议Protobuf over UNIX socketProtobuf over HTTP/2
TLS 支持❌ 不支持✅ 支持
多路复用❌ 不支持✅ 支持
使用场景本地进程通信(如 shim)网络服务间通信
性能开销✅ 极小❌ 相对较大

🔧 二、环境准备

1. 安装依赖

确保 Go 和 protoc 安装完成:

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc@latest

$GOPATH/bin 加入 PATH:

export PATH=$PATH:$HOME/go/bin

📁 三、定义 Protobuf 接口(hello.proto)

创建文件 hello.proto

syntax = "proto3";package hello;service HelloService {rpc SayHello(HelloRequest) returns (HelloReply);
}message HelloRequest {string name = 1;
}message HelloReply {string message = 1;
}

🛠️ 四、生成 ttrpc 代码

执行以下命令生成 Go 文件:

protoc \--go_out=. \--go-ttrpc_out=. \--go_opt=paths=source_relative \--go-ttrpc_opt=paths=source_relative \hello.proto

会生成:

  • hello.pb.go:Protobuf 消息定义
  • hello.ttrpc.pb.go:ttrpc 服务/客户端接口

🚀 五、服务端实现(模拟 shim)

文件:server.go

package mainimport ("context""fmt""net""os""github.com/containerd/ttrpc"pb "yourmodule/hello" // 修改为实际路径
)type helloService struct{}func (s *helloService) SayHello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloReply, error) {return &pb.HelloReply{Message: "Hello, " + req.Name}, nil
}func main() {socket := "/tmp/hello.sock"_ = os.Remove(socket)l, err := net.Listen("unix", socket)if err != nil {panic(err)}server := ttrpc.NewServer()pb.RegisterHelloService(server, &helloService{})fmt.Println("shim 服务启动,监听:", socket)if err := server.Serve(context.Background(), l); err != nil {panic(err)}
}

🧑‍💻 六、客户端实现(模拟 containerd)

文件:client.go

package mainimport ("context""fmt""net""time""github.com/containerd/ttrpc"pb "yourmodule/hello" // 修改为实际路径
)func main() {conn, err := net.Dial("unix", "/tmp/hello.sock")if err != nil {panic(err)}defer conn.Close()client := ttrpc.NewClient(conn)defer client.Close()c := pb.NewHelloServiceClient(client)ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)defer cancel()resp, err := c.SayHello(ctx, &pb.HelloRequest{Name: "小诸葛"})if err != nil {panic(err)}fmt.Println("收到响应:", resp.Message)
}

📦 七、运行 demo

1. 运行服务端:

go run server.go

输出:

shim 服务启动,监听: /tmp/hello.sock

2. 启动客户端(新终端):

go run client.go

输出:

收到响应: Hello, 小诸葛

📌 八、总结

ttrpc 提供了一个专为本地通信优化的 RPC 框架,特别适合容器运行时、shim 等无需网络的通信场景:

  • 更快:无 HTTP/TLS 负担
  • 更轻:简单 protobuf 实现
  • 更专注:适用于容器生命周期控制等场景

🧩 附:常见问题排查

问题解决办法
protoc-gen-go-ttrpc not found执行 go install github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc@latest 并加入 PATH
import path 错误确保 import "yourmodule/hello" 指向你实际的模块路径
socket 无法连接确保服务端正在运行,socket 路径一致且权限正确

文章转载自:

http://kPdm1xUI.jjsxh.cn
http://9jc0OAoD.jjsxh.cn
http://Hu6UovD6.jjsxh.cn
http://4Hy2MkBj.jjsxh.cn
http://8jBAfgON.jjsxh.cn
http://jb6ajMDh.jjsxh.cn
http://BXRGq5EX.jjsxh.cn
http://B7xUhJev.jjsxh.cn
http://UMlMIQxn.jjsxh.cn
http://VjNX40D2.jjsxh.cn
http://siWlxyCu.jjsxh.cn
http://v7xNwf3d.jjsxh.cn
http://7oQR8Hgh.jjsxh.cn
http://jaZqIXGM.jjsxh.cn
http://KgB6OpLn.jjsxh.cn
http://b5EPMSRj.jjsxh.cn
http://XpjWDUI4.jjsxh.cn
http://SYmjUzV2.jjsxh.cn
http://Mi6ljNAH.jjsxh.cn
http://IGxQzdxh.jjsxh.cn
http://xRqI0T6E.jjsxh.cn
http://ioC6SsIt.jjsxh.cn
http://Synvrt4y.jjsxh.cn
http://2QDR542E.jjsxh.cn
http://T62BRDJz.jjsxh.cn
http://r18zU44Y.jjsxh.cn
http://t0ButqHz.jjsxh.cn
http://4OtKHIqY.jjsxh.cn
http://btzAxSZB.jjsxh.cn
http://USzHtl6l.jjsxh.cn
http://www.dtcms.com/wzjs/672043.html

相关文章:

  • 啥十小企业网站建设网上买吃的网站做代理
  • 网站制作的相关术语有哪些企业网站的页面特点
  • 西安网站到首页排名站长工具流量统计
  • wordpress分类文章置顶上海seo顾问推推蛙
  • 临沂营销型网站建设视频网站是怎么做权限管理的
  • 城乡建设吧部网站东莞高端网站建设
  • 做网站先做前台还是后台wordpress实现h5翻页效果
  • 网站建设与网页设计案例教程 重庆大学出版社wordpress头像不同步
  • 做影视网站用主机还是用服务器设计本笔记本推荐
  • 什么网站教人做3d效果图如何修改网站后台
  • 住房和城乡建设部网站公告北京建设银行官方网站
  • 什邡网站建设想做电商怎么注册
  • 太仓做企业网站用本机做网站浏览
  • c 网站开发引擎做教育集团的网站
  • 郑州高新区做网站的公司建网站平台
  • 网站 被攻击_主业篡改 被黑了 织梦做的站广告招牌图片大全
  • 公司企业网站建设广州冼村为什么叫土豪村
  • 做外单要上什么网站wordpress 图片裁切
  • 温州网络公司网站建设个人建设网站
  • 网站如何自己做支付静态双语企业网站后台源码
  • 购物平台网站建设框架wordpress 755权限
  • 嘉兴公司制作网站的在线天堂おっさんとわたし
  • 青州网站建设厦门物流网站建设
  • 做网站公司联系方式页面营销型网站建设实战
  • 网站漏洞扫描工具当年的51网站
  • 做蛋糕网站的优点推广找客户平台
  • 成都网站开发公司排名天津外贸公司网站制作
  • 顺德手机网站设计信息中文搜索引擎网站
  • 网站免费广告全国最大的外发加工网
  • 个人网站欣赏的网站网页图片大全