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

go除了rpc作为公共服务外,有没有可能其它方式

Go 语言除了 RPC(如 gRPC、Thrift 等)之外,确实有多种方式可以作为公共服务对外提供。以下是几种常见的方式:

1. RESTful API (HTTP/JSON)

最传统和广泛使用的方式,使用标准库net/http或框架(Gin、Echo、Fiber 等):

go

复制

// 使用标准库 http.HandleFunc("/api/users", handleUsers) http.ListenAndServe(":8080", nil) // 或使用 Gin 框架 r := gin.Default() r.GET("/api/users", getUsers) r.Run(":8080")

优点:简单、通用、易于调试、浏览器/移动端都支持
缺点:相比 RPC 性能稍低,需要手动处理序列化


2. GraphQL

使用gqlgen等库提供灵活的查询接口:

go

复制

// 定义 schema,自动生成代码 // 客户端可以精确请求需要的数据字段

优点:客户端决定返回数据结构,减少过度获取
缺点:学习成本较高,缓存策略复杂


3. WebSocket / SSE (Server-Sent Events)

用于实时双向通信或服务器推送:

go

复制

// WebSocket 示例(使用 gorilla/websocket) upgrader := websocket.Upgrader{} conn, _ := upgrader.Upgrade(w, r, nil) // 双向通信

适用场景:聊天应用、实时通知、在线游戏、股票行情


4. 消息队列 (Message Queue)

通过中间件进行异步通信,而非直接调用:

  • KafkaRabbitMQNATSRocketMQ

  • 使用 Go 客户端发布/订阅消息

go

复制

// NATS 示例 nc, _ := nats.Connect(nats.DefaultURL) nc.Publish("orders.created", data) nc.Subscribe("orders.created", func(m *nats.Msg) { // 处理消息 })

优点:解耦、削峰填谷、高可靠
缺点:实时性不如直接调用,需要处理幂等性


5. gRPC-Gateway / Twirp

将 gRPC 服务同时暴露为 HTTP/JSON 接口:

go

复制

// gRPC-Gateway 自动生成 RESTful 代理 // 一份 proto 定义,同时支持 gRPC 和 HTTP

6. 云原生标准接口

  • CloudEvents:标准化的事件格式

  • OpenAPI/Swagger:API 文档和生成

  • Dapr:分布式应用运行时,抽象通信层


7. 传统 Socket / TCP 自定义协议

go

复制

// 纯 TCP 服务 listener, _ := net.Listen("tcp", ":8080") conn, _ := listener.Accept() // 自定义协议处理

适用场景:游戏服务器、高频交易系统、需要极致性能


对比总结

表格

复制

方式性能易用性场景浏览器支持
RESTful API⭐⭐⭐⭐⭐⭐⭐⭐通用 Web
gRPC⭐⭐⭐⭐⭐⭐⭐⭐微服务内部❌ (需 gRPC-Web)
GraphQL⭐⭐⭐⭐⭐⭐复杂查询
WebSocket⭐⭐⭐⭐⭐⭐⭐⭐实时通信
消息队列⭐⭐⭐⭐⭐⭐异步处理N/A
纯 TCP⭐⭐⭐⭐⭐⭐⭐特殊场景

实际建议

  • 对外暴露给浏览器/第三方RESTful APIGraphQL

  • 微服务内部通信gRPC消息队列

  • 实时场景WebSocketSSE

  • 需要同时支持多种客户端gRPC + Gateway

你的具体场景是什么?(内部微服务、对外 Open API、实时应用等)我可以给出更有针对性的建议。

http://www.jsqmd.com/news/417313/

相关文章:

  • 2026年搅拌车厂家实力推荐:山东瑞通专用车制造有限公司五轮/双向/履带/国六搅拌车全系供应 - 品牌推荐官
  • 2026年防腐涂料厂家推荐:河北全宝防腐材料,乙烯基/氰凝/环氧/IPN8710全系防腐涂料供应 - 品牌推荐官
  • 2026年沐浴露品牌推荐:肌肤健康趋势评测,涵盖运动后与秋冬场景护肤痛点 - 十大品牌推荐
  • 20260227_141609_一口气给你讲清楚黑客最常用的6种入侵方式!
  • 2026智慧公交候车亭厂家推荐:上海正先电子科技全系供应智能化/智能/智慧候车亭,覆盖200余城服务网络 - 品牌推荐官
  • 数字营销公司哪家效果稳?2026年推荐与权威评价,直击数据孤岛与策略落地痛点 - 十大品牌推荐
  • 2026年铝单板生产厂家推荐:四川鑫霸和阿力克斯新材料科技有限公司,全系铝单板产品供应 - 品牌推荐官
  • 2026年生物菌肥厂家推荐:信和生物科技,有机/液态/滴灌/富硒全系菌肥供应 - 品牌推荐官
  • 2026高考复读学校实力推荐:英博教育专注高三复读,提供优质高考复读班服务 - 品牌推荐官
  • 装修公司必看!2026超全广告投放平台大盘点 - 品牌测评鉴赏家
  • 话费卡如何快速回收?一步到位的全新攻略分享 - 团团收购物卡回收
  • 2026年卧式离心泵厂家推荐:长沙凯利特泵业,单级/多级/船用/管道等全品类供应 - 品牌推荐官
  • k8s部署elasticsearch发生版本冲突报错java.lang.IllegalStateException:
  • 2026家电售后实力推荐:美的售后服务,洗衣机/空调/中央空调售后全覆盖 - 品牌推荐官
  • 定制化+快售后!国产盐雾试验箱如何赢得市场青睐? - 品牌推荐大师1
  • 2026厂房地坪施工推荐:四川固贝尔地坪工程有限公司,混凝土/修复/环氧/固化全系服务 - 品牌推荐官
  • 存储服务-分类
  • 2026年北京房产继承纠纷律师推荐:崔研律师,专注房产继承/遗嘱继承/财产继承案件 - 品牌推荐官
  • 2026年化工管/pph/upvc/cpvc工业管及管件推荐:江苏格来美塑胶科技全系产品解析 - 品牌推荐官
  • 使用 OceanBase seekdb 为 AI Agent 实现持久化记忆:从全量上下文到精准召回
  • 2026年崖舍民宿/酒店推荐:蝶舞清江地心谷,玻璃/地心/热门崖舍全系体验 - 品牌推荐官
  • 2026年沐浴露品牌推荐:基于多场景实测评价,针对肤质适配与留香痛点精准指南 - 十大品牌推荐
  • 定稿前必看!降AI率软件 千笔AI VS 万方智搜AI,专为本科生打造!
  • MATLAB中基于领航追随法的车辆编队控制及与人工势场法融合实现避障
  • 运算放大器前面的电压跟随器的作用是什么
  • 直接上结论:研究生必备的AI论文软件 —— 千笔·专业学术智能体
  • 模拟人生:小县城的计算机类公务员安逸的一生
  • 将AnythingLLM连接到亮数据MCP服务器
  • 企业微信私域流量主动触达的高阶工具
  • 从数据采集到智能决策:SCADA系统研发如何重塑工业控制未来?