首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(1)搭建服务

    系列文章腾讯 tRPC-Go 教学——(1)搭建服务腾讯 tRPC-Go 教学——(2)trpc HTTP 能力腾讯 tRPC-Go 教学——(3)微服务间调用腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用腾讯 tRPC-Go 教学——(5)filter、context 和日志组件腾讯 tRPC-Go 教学——(6)服务发现腾讯 tRPC-Go 教学——(7)服务配置和指标上报腾讯 tRPC-Go 接着把 trpc 工具安装了:go install trpc.group/trpc-go/trpc-cmdline/trpc@latesttrpc version这个则对应 Makefile 的 make /trpc-go")func main() {s := trpc.NewServer()simplest.RegisterHelloWorldService(s, helloWorldImpl{})_ 下一篇:《手把手 tRPC-Go 教学——(2)trpc HTTP 能力》推荐阅读tRPC 官网腾讯重复造轮子?我们真的需要这么多RPC框架吗?

    3.7K32编辑于 2025-12-26
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(2)trpc HTTP 能力

    系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4 )tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报 腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务 先说说内部版和开源版的 tRPC 首先要说明的是,腾讯内部使用的 tRPC 与开源版的 tRPC,虽然并不是 100% 而这些功能,也只不过是 tRPC-Go 众多功能的冰山一角上的一粒冰片。 接下来,我会带领大家开始拉起一个真正的微服务,构建一个完整的系统。 此外,我也会详细说明我是如何在 tRPC-Go 中践行 微服务+单体 架构的,比起之前我文章中干巴巴的描述,上代码会来得更清楚。

    2.7K72编辑于 2025-04-18
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(3)微服务间调用

    本文我们将开始涉及 tRPC 的核心关键点之一: tRPC 服务之间如何互相调用 系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报 腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务 制订协议 与 HTTP 一样,我们还是先制订协议 原文标题:《手把手 tRPC-Go 教学——(3)微服务间调用》 发布日期:2024-01-29 原文链接:https://cloud.tencent.com/developer/article/2384591

    2K31编辑于 2025-04-18
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(6)服务发现

    系列文章腾讯 tRPC-Go 教学——(1)搭建服务腾讯 tRPC-Go 教学——(2)trpc HTTP 能力腾讯 tRPC-Go 教学——(3)微服务间调用腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用腾讯 tRPC-Go 教学——(5)filter、context 和日志组件腾讯 tRPC-Go 教学——(6)服务发现腾讯 tRPC-Go 教学——(7)服务配置和指标上报腾讯 tRPC-Go 代码中引用 tRPC 北极星支持要在服务中启用北极星支持,tRPC 的标准用法是在 main 包中匿名导入北极星的 package:import (// ......_ "trpc.group/trpc-go 原文标题:《腾讯 tRPC-Go 教学——(6)服务发现》发布日期:2024-05-01原文链接:https://cloud.tencent.com/developer/article/2414446。

    1.7K71编辑于 2026-01-02
  • 腾讯 tRPC-Go 框架核心实现源码解读

    tRPC-Go 是框架在 Golang 编程语言下的官方实现。本文剖析 tRPC-Go 框架的核心实现原理,并非 tRPC-Go 框架快速入门教程,所以不会有框架使用方法方面的介绍。 本文假设的读者是已经有一定的 tRPC-Go 框架使用经验或对 tRPC-Go 框架设计有基本了解的同学,我希望这篇文章能对想要更深入了解框架原理的同学提供有效的帮助。 通过阅读本文,你将可以:熟悉 tRPC-Go 框架核心模块设计原理以框架的核心流程为脉络自行延伸了解其他重要模块实现原理注意:本文写作时,对应的 tRPC-go 框架版本是 v0.12.0。 tRPC-Go 架构速览在一头扎进 tRPC-Go 核心组件的设计原理之前,我们先看看 tRPC-Go 框架的整体架构设计,这个架构图大家可以从 tRPC-Go 框架的官方文档中查到。 tRPC-Go 框架的最大设计亮点是清晰的组件划分以及高度的灵活性、可扩展性。

    1.6K21编辑于 2024-05-14
  • 来自专栏腾讯技术工程官方号的专栏

    鹅厂火热开发框架:trpc-go设计理念介绍

    trpc-go 是目前公司里非常火热的一个开发框架,集成了很多开箱即用的功能,非常方便。trpc-go 代码量不算太多,但是写得还是有点绕,直接阅读可能会比较晕。 trpc-go 中很大一部分数据结构抽象都是围绕着多协议支持这个目的来的,搞清楚这一点可以让你更容易地理解 trpc-go 回想一下我们的日常开发工作,我们在开发业务逻辑的时候其实并不关心底层的通信协议 所以 trpc-go 进行了第一个抽象——service。一个 trpc-go 服务可以包含多个 service,每个 service 监听一个端口,使用一种协议! 这其实就是 trpc-go 框架和 plugin 的关系。 trpc-go 约定了一种配置格式,插件的配置都按那种格式配置到 trpc.yaml 中,然后 trpc-go 根据插件名找到对应插件,然后把该插件的配置分离出来,用这部分小配置去实例化插件。

    5.7K94编辑于 2023-01-11
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(5)filter、context 和日志组件

    系列文章腾讯 tRPC-Go 教学——(1)搭建服务腾讯 tRPC-Go 教学——(2)trpc HTTP 能力腾讯 tRPC-Go 教学——(3)微服务间调用腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用腾讯 tRPC-Go 教学——(5)filter、context 和日志组件腾讯 tRPC-Go 教学——(6)服务发现腾讯 tRPC-Go 教学——(7)服务配置和指标上报腾讯 tRPC-Go filter.ServerHandleFunc) (any, error) {return next(ctx, req)}tRPC 也内置了一些常用的 filter,导入方式为:import _ "trpc.group/trpc-go 原文标题:《腾讯 tRPC-Go 教学——(5)filter、context 和日志组件》发布日期:2024-03-04原文链接:https://cloud.tencent.com/developer/

    2K81编辑于 2026-01-02
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用

    系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4 )tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报 腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务 tRPC-ecosystem 介绍 tRPC 的主仓库是 trpc-group,在这之外,tRPC 的周边生态系统则放在 原文标题:《腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用》 发布日期:2024-02-06 原文链接:https://cloud.tencent.com/developer/article

    2.5K71编辑于 2025-04-18
  • tRPC-Go 链路透传消息的源码级解读

    概述在分布式链路追踪等场景下,会使用到微服务调用链路上的透传能力,tRPC-Go 基于 tRPC 协议的头部设计实现了对链路透传的支持,这篇文章从源码角度分析链路透传的设计实现,文章中会涉及 tRPC-go 说明本文基于以下源码以及版本trpc-go: v0.9.4 (截止本文编写时的最新发布版本)所有 tRPC-Go 源码均在文章中提供了链接,可以点击链接直达工蜂仓库。 源码走读先从应用层调用讲起一般而言,一个典型的 tRPC-go 的 RPC 调用起点类似如下代码:proxy := pb.NewOrderClientProxy()rsp, err := proxy.PlaceOrder 从 tRPC-go 桩代码着手我们重点看看方法桩里边的代码:func (c *OrderClientProxyImpl) PlaceOrder(ctx context.Context, req *EmptyMessage

    62510编辑于 2024-05-14
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(7)服务配置和指标上报

    系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4 )tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报 腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务 配置,是一个服务的重要组成部份。 我来详细解释一下吧—— 我们回顾一下之前的一篇文章:腾讯 tRPC-Go 教学——(3)微服务间调用,如果要调用一个 tRPC 下游服务,我们需要在 trpc_go.yaml 中配置诸如以下信息: client 原文标题:《腾讯 tRPC-Go 教学——(7)服务配置和指标上报》 发布日期:2024-05-19 原文链接:https://cloud.tencent.com/developer/article/2418601

    2.2K52编辑于 2025-04-18
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务

    系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4 )tRPC 组件生态和使用 腾讯 tRPC-Go 教学——(5)filter、context 和日志组件 腾讯 tRPC-Go 教学——(6)服务发现 腾讯 tRPC-Go 教学——(7)服务配置和指标上报 腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务 MCP 应用场景简介 LLM的MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 总结和应用 好了,这篇文章我们从MCP的基本概念聊到了如何在tRPC-Go中实现MCP服务。 从最简单的mcp-go框架示例出发,我们看到了如何在tRPC-Go框架下通过HTTP接口来提供MCP服务能力。

    1.3K30编辑于 2025-04-19
  • 来自专栏腾讯开源的专栏

    tRPC-Agent-Go:让Go开发者轻松构建智能AI应用

    结构化日志和错误追踪 4、 快速开始 基本用法 package main import ( "context" "fmt" "log" "trpc.group/trpc-go /trpc-agent-go/agent/llmagent" "trpc.group/trpc-go/trpc-agent-go/model" "trpc.group/trpc-go/trpc-agent-go /model/openai" "trpc.group/trpc-go/trpc-agent-go/runner" "trpc.group/trpc-go/trpc-agent-go/tool " "trpc.group/trpc-go/trpc-agent-go/tool/function" ) func main() { // 创建模型 modelInstance

    1K10编辑于 2025-09-02
  • 来自专栏扯编程的淡

    tRPC初探,开源RPC框架新成员

    具体可以查看官网(https://trpc.group/)和开源仓库(https://github.com/trpc-group)了解小试tRPC首先我们先clone一下GitHub仓库中的trpc-go :git clone https://github.com/trpc-group/trpc-go,找到example目录下的helloworld目录:按照文档我们可以先运行一下:server端cd trpc-go /trpc_go.yamlclient端cd trpc-go\examples\helloworld\clientgo run main.go很明显我们发现tRPC服务端的运行是需要配置文件的,这个我们放在下面再讲 ,接下来我们仿照helloworld程序手动的了解下tRPC一个接口的创建和调用过程:第一步:安装tRPC中对于protobuf文件的编译工具go install trpc.group/trpc-go/ /trpc-go/examples/helloworld/pb";service Greeter { rpc Hello (HelloRequest) returns (HelloReply) {}

    5.8K30编辑于 2023-12-03
  • 来自专栏设计与思考

    压测桩设计与思考(一)

    虽然公司内有trpc-go,但在那时我对trpc-go了解甚少,光学习trpc-go估计就得花费个2-3天。成本太大了。还是自己搞个简单的server来的快些。 其次找相关开发了解的A协议如何实现的。 评估了下如何最快修复问题的方案后决定不在这个简单server上修复,而是使用trpc-go框架。在trpc-go上实现A编解码,将上层的逻辑迁移过去。 由于我对trpc-go并不熟悉,因此安排了个组内的大佬K来支持trpc-go的A编解码的工作。我负责迁移上层的svr。 trpc-go app的文档稍详细些,我这块的迁移工作很快完成了。 最终验证 这次使用的是trpc-go框架的能力,因此,1和3的问题应该会一并解决。实际情况也确实如此,再次部署压测环境后,一切正常。可正常压测。桩的性能也和预期差不多,在8核机器上可达到5w/s。

    57720编辑于 2021-11-29
  • 来自专栏【腾讯云开发者】

    回归单体成为潮流?腾讯文档如何实现灵活架构切换

    私有化部署的腾讯文档就是这样的一个场景,其 C 端场景有 100+ 个微服务,如果把这 100+ 个微服务原样地迁移到私有化上,将面临: 高运行成本:每个微服务内部都要运行一套 tRPC-Go 框架运行时 当然,在开发过程中,也遇到了很多挑战,主要包括以下方面: 3.1 挑战一:各式各样的框架 腾讯文档已经持续迭代了 5-6 年,在此期间,尝试过多种不同的框架,如 tRPC-Go、tRPC-Cpp、 经过了近一年的整改,实际上绝大部分服务都已经采用了标准的 tRPC-Go 框架,也遵循腾讯文档既定的规范进行开发。因此,我们只选择了那些使用 tRPC-Go 框架的服务进行整合。 3.2 挑战二:大相径庭的配置 tRPC-Go 框架支持灵活的 plugin, filter 等扩展方式,为业务带来了很多便利。然而,这也对我们落地单体服务的灵活切换带来了挑战。 /service" {{- end}} "git.code.oa.com/trpc-go/trpc-go/server" ) // Register 注册 pb service 实现。

    1K30编辑于 2023-12-13
  • 来自专栏腾讯云原生团队

    如何削减 50% 机器预算?“人机对抗”探索云端之路

    业界常用的两种认证鉴权的方案: SSL/TLS 认证方式,这种方式经常被用来做传输加密,而不是访问控制,tRPC-Go 的 API 已经有了相应支持。 其实公司内的鉴权平台 knocknock 也提供了一套 token 签名鉴权方式,它是一种基于 tRPC-Go 认证鉴权方式。 使用 tRPC-Go 构建系统过程中,除了在熟悉过程碰到一些问题,但没碰到过很大的坑,代码写错也能很快定位,没碰到过那种神鬼莫测的诡异问题。 ,在 tRPC-Go 加持下,仅需要: 在代码中引入代码包 在 yaml 中简单配置即可使用: ? tRPC-Go 对服务进行插件形式的设计,大大简化了各个服务的调用方式,再加上 tRPC-Go 下面活跃的开源项目,对研效的提升超过50%。

    48921发布于 2021-07-20
  • 来自专栏上云实践案例

    技术选型-语言、框架和中间件

    我们最终选择了trpc-go为trpc框架的golang版本。 为何选择trpc框架? 为什么我们选择内部自研的RPC框架, 而不是开源成熟框? 做了更多的能力封装,集成springcloud、service mash,支持更多的服务管理能力, 如下图: [image.png] 准入/API网关 考虑到身份准入和不同团队之间的API服务发布/调用,由于tsf对trpc-go 支持不够友好,springcloud 与trpc-go协议并不兼容,因此tsf无法解决不同语言之间的服务管理,所以我们选择部署内部网关服务,来解决身份准入和API服务管理。

    2K30编辑于 2022-05-02
  • 来自专栏腾讯开源的专栏

    tRPC智能体生态又升级:发布A2A协议的实现trpc-a2a-go

    /client" "trpc.group/trpc-go/trpc-a2a-go/protocol" ) func main() { // 创建客户端 a2aClient, err 核心是实现一个任务处理器来响应用户请求: package main import ( "context" "fmt" "log" "trpc.group/trpc-go/ trpc-a2a-go/server" "trpc.group/trpc-go/trpc-a2a-go/taskmanager" ) // TextProcessor 实现一个简单的文本处理器 与 trpc 生态融合 作为 tRPC 团队的产品,trpc-a2a-go 将与 trpc-go 框架深度整合。 这包括提供 trpc-go 插件支持,实现基于 trpc 协议的通信层,以及通过 trpc-go 标准配置管理 A2A 服务。

    1.1K10编辑于 2025-04-20
  • 来自专栏后台全栈之路

    基于腾讯 tRPC-Go 单体化改造怎么节省上万核 CPU

    本文基于 tRPC-Go 服务,提出并最终实践了一种经验证可行的方法。 各微服务的业务逻辑,可以抽取出来称为 service 包,对外暴露一个 Register 函数,这个函数的入参中包含 trpc-go/service.Server 类型,用于调用 TRPC 服务注册函数 基于腾讯 tRPC-Go 单体化改造怎么节省上万核 CPU》 发布日期:2023-11-07 原文链接:https://cloud.tencent.com/developer/article/2355815

    2K71编辑于 2023-11-30
  • 来自专栏【腾讯云开发者】

    腾讯新闻插件接入层重构实践:代码量锐减,迭代效率提升50%!

    02、现状分析 2.1 架构图 2.2 当前服务整体问题 2.2.1 维护成本高、开发迭代效率低 服务语言框架不统一、框架老旧 共2个服务,2种框架,都不是 trpc-go 框架,学习和维护成本高 例如:信息流接口,分散在两个服务中,10+个接口,6种接口格式;评论接口,分散在2个服务中; 测试环境搭建困难,联调效率低 非 trpc-go 框架,无框架配置,下游依赖和业务配置都没有单独的配置文件, x 级故障(MTTR 2hour); 框架老旧,性能差,稳定性保障机制不完善: ‍依赖的 tab-sdk 无法使用 trpc 请求,导致需要远程访问时性能差,造成一次 slo 降低问题; 无法使用 trpc-go 重构后:借助 trpc-go 框架生态的伽利略和鹰眼日志,可快速定位问题,预计 10min 内定位; 4.5 问题排查效率提升 原有系统仅有通过加代码的方式主动上报主调被调监控,以及在此基础上的基本告警 (1)伽利略监控系统 完善 tRPC-go 监控,协程数量、gc 耗时、gc 停顿时间; 主被调监控,异常率、超时率、成功率、调用量、p99 耗时与相关告警; 中心化的日志查询工具; 链路日志追踪工具;

    61200编辑于 2025-01-03
领券