首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为啥开发go服务端不用gin等通用web框架,而要用trpc-go框架,感觉变得更复杂了?

这个问题涉及到了云计算、后端开发、服务器运维、网络通信、音视频、人工智能、物联网、移动开发、存储、区块链、元宇宙等专业知识。

首先,我们需要了解什么是 Gin 和 trpc-go 框架。Gin 是一个基于 Go 语言的高性能 Web 框架,而 trpc-go 是一个基于 Go 语言的 RPC 框架。

在后端开发中,通常会选择使用 Web 框架或者 RPC 框架来构建服务端应用程序。Web 框架主要用于处理 HTTP 请求,而 RPC 框架则主要用于处理远程过程调用。

在某些情况下,开发人员可能会选择使用 trpc-go 框架而不是 Gin 等通用 Web 框架,这可能是出于以下原因:

  1. 性能:trpc-go 框架可能比 Gin 等通用 Web 框架更快,因为它是专门为远程过程调用设计的,而不是处理 HTTP 请求。因此,在需要高性能的场景下,开发人员可能会选择使用 trpc-go 框架。
  2. 安全性:RPC 框架通常比 Web 框架更安全,因为它们使用了更加安全的通信协议,例如 gRPC 使用 HTTP/2 协议,而 trpc-go 则使用自定义的协议。因此,在需要保证安全性的场景下,开发人员可能会选择使用 trpc-go 框架。
  3. 跨语言支持:RPC 框架通常更容易支持跨语言调用,因为它们使用了标准的通信协议,例如 gRPC 使用 Protocol Buffers 作为接口定义语言和消息交换格式。因此,在需要支持跨语言调用的场景下,开发人员可能会选择使用 trpc-go 框架。

总之,选择使用 trpc-go 框架而不是 Gin 等通用 Web 框架,可能是出于性能、安全性和跨语言支持等原因。但是,具体的选择应该根据具体的业务场景和需求来决定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

做后端开发的同学肯定接触过不少的框架,就拿 Go 来说,比较常见的框架比如:gin beego echo iris martini 等等。...Web 框架主要是面向 web 开发,业务处理的默认都是 HTTP 请求。 trpc-go 则有些不同,它是一个 rpc 框架。...从性能和可读性的角度来说,thrift dubbo 协议显然是比 http 更好的选择。trpc-go 作为一个全新的开发框架,如果只锚定 http,显然受众非常有限。...,如果我们要给用户提供这样的开发体验,我们就必须要做以下工作: 其实包括标准库在内几乎所有的 web 框架都是这个处理流程,看起来也并不是很复杂。...Filter 本来不复杂,其实就是各种 Web 框架中的 middleware 模式。

4.4K93

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

对比物理机部署时代,云用户不用因某台机器死机造成数据损坏暴走,也不用因机器损坏加班恢复服务黯然神伤。...系统架构及上云规划 人机对抗数据中心主要模块为变量共享平台,它的核心有2个,一个查询服务模块,另一个是支持变量管理 api 的 web 模块,这两模块都基于 tRPC-Go 框架开发,系统架构图如下:.../tRPC-cpp/tRPC-Go 一系列的选择,从性能/开发便捷性/并发控制/周边服务支撑丰富程度多个角度,最终选用了 tRPC-Go,目标就是围绕研效提升,细化的分析如下: Golang 语言简单...在 tRPC-Go 框架使用下,简单易用,只要配置一下,不修改业务代码就可以把日志转发到日志中心 鹰眼,系统功能丰富,但接入复杂,易用性需要加强 uls,cls 最终选用的是智研日志,主要是在满足要求条件下足够简单易用...,老产品,成熟稳定,但是监控方式单一 007: 系统功能丰富,接入复杂,易用性需要加强 最终选用的是智研监控,智研的多维度监控,使监控能力丰富,定位问题更快速,且使用足够简单,在 tRPC-Go 体系下

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

    golang框架 我们公司内部后端团队主要语言是golang,web框架选项比较纠结,一个是开源社区的web框架 gin,在上云前用的框架, 另外就是一个选择就是公司内部的远程调用开发框架trpc。...gin 框架的功能和有点毋需赘述,可自行上github了解。我们最终选择trpc-go为trpc框架的golang版本。 为何选择trpc框架?...为什么我们选择内部自研的RPC框架, 不是开源成熟框?...答案非常简单因为该框架是公司老板主推的,公司为了形成统一的微服务框架自研框架,该框架有如下优点: 多语言:框架覆盖主流编程语言,方便不同技术团队协作 架构开放:支持与存量系统对接,包括协议与服务治理...支持不够友好,springcloud 与trpc-go协议并不兼容,因此tsf无法解决不同语言之间的服务管理,所以我们选择部署内部网关服务,来解决身份准入和API服务管理。

    1.7K30

    2024年的选择:为什么Go可能是理想的后端语言

    本文将探讨Go语言作为后端开发的选择,特别是其设计哲学、特性,以及如何利用Gin和Echo框架构建Web服务。Go语言的设计哲学简洁性:Go语言的设计者们强调简洁和清晰,避免过度复杂性。...Gin和Echo:GoWeb框架Gin 是一个轻量级的MVC框架,提供快速的路由和中间件支持。...例如,Docker、Kubernetes、Etcd知名开源项目均采用Go编写,证明了其在高性能服务端开发上的实力。...Go生态系统的丰富性除了Gin和Echo这两个流行的Web框架Go的生态系统还包括一系列高质量的库和工具,覆盖了数据库访问、模板引擎、序列化、日志记录、测试、监控多个方面,极大地丰富开发者的工具箱...无论是构建高性能Web服务、微服务架构,还是处理大规模数据,Go都能提供坚实的基础。结合Gin或Echo现代框架开发者可以更加高效地构建出既强大又易于维护的后端系统。

    2.2K10

    保姆级教程!Golang微服务简洁架构实战

    导语 | 本文从简洁架构的理论出发,依托trpc-go目录规范,简单阐述整体代码架构如何划分,具体trpc-go服务代码实现细节,和落地步骤,并讨论和DDD的区别。...引言 现在有高效的go语言和成熟的trpc-go框架和一系列的中台SDK,发布平台,一个新手也可以通过教程快速写出简单功能的微服务,以此入门,开始go的微服务开发,并应对大部分开发需求。...一、 开发现状 不同的业务场景不太一样,在增值的业务场景下,大部分的需求边界或者服务全部职能一开始并不能确定,一般就是一个小需求开始的微服务,后续可能随着业务的增长慢慢变得复杂的,仿佛是从一颗小树苗渐渐长成一颗枝繁叶茂的大树...数据流的流向和逻辑的梳理变得越来越复杂。 很难不看代码调用的情况下搞清楚数据流向。 这是目前常见的一个实际问题,业务增长过程中,微服务很容易长成一个垃圾山,开发心累,改不动的情况出现。...并不能使开发新项目变得更快,方便,而是为了今后考虑,让一个庞大的系统可以更快的迭代,更新,也就是说新的项目不用太在意领域驱动设计,甚至新项目开始可以不用领域驱动设计。

    3.7K41

    Go优秀开源项目推荐

    https://github.com/gin-gonic/gin Beego beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务各种应用,是一个...RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合 Go 本身的一些特性(interface、struct 嵌入)而设计的一个框架。...https://github.com/asim/go-micro Echo Echo web框架go语言开发的一种高性能,可扩展,轻量级的web框架。...,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得简单,服务指令可以很简单的启动api服务。...通过弹性设计保障大并发服务端的稳定性,经受了充分的实战检验。

    4.2K20

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

    tRPC是一个高性能、轻量级、支持多语言的开源RPC框架,基于插件化理念设计,整体特点:易用性:tRPC提供简洁明了的API和文档,使得开发者可以快速地上手并构建复杂的分布式系统。...用户基于框架进行服务开发简单方便;高性能:tRPC使用了高效的序列化和反序列化机制,以及优化的网络通信协议,使得它在处理大量请求时能够保持出色的性能。框架具备高性能,能适用互联网海量访问场景。...插件化:框架在架构设计和具体实现上进行分层和模块化,各个核心模块可拔插,并能够独立演进可扩展:tRPC允许开发者根据自己的需求进行定制和扩展,包括添加新的传输协议、序列化机制。...安全性:tRPC内置丰富的安全特性,如身份验证、访问控制、加密,以保障分布式系统的安全。.../trpc_go.yamlclient端cd trpc-go\examples\helloworld\clientgo run main.go很明显我们发现tRPC服务端的运行是需要配置文件的,这个我们放在下面再讲

    3.7K30

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

    2023 年底腾讯统一的 RPC 框架 tRPC 正式开源。遍观全网,似乎大部份是对 tRPC 概念上的宣传、架构上的设计,如何开发、如何部署的文章凤毛麟角。...系列文章 腾讯 tRPC-Go 教学——(1)搭建服务 腾讯 tRPC-Go 教学——(2)trpc HTTP 能力 腾讯 tRPC-Go 教学——(3)微服务间调用 腾讯 tRPC-Go 教学——(4...此外,本文也假定读者已经懂得使用 go.mod 组织和进行仓库和版本控制。 制订协议 我们先尝试一下给 web 前端提供一个 API 接口。...读者可以先不用管这些参数的意思,先照着用就可以。...下一篇:《手把手 tRPC-Go 教学——(2)trpc HTTP 能力》 推荐阅读 tRPC 官网 腾讯重复造轮子?我们真的需要这么多RPC框架吗?

    2.1K32

    Beego 和 Gin,到底用哪个好?

    Go 语言的 Web 开发领域有许多优秀的框架可供选择,其中 Beego 和 Gin 是备受推崇的两个框架。它们都在 Go 社区中拥有广泛的用户和良好的声誉。...Beego 是一个全功能的 Web 框架,采用了传统的 MVC(Model-View-Controller)架构设计。它提供路由、控制器、模型、视图组件,可以方便地开发复杂Web 应用程序。...它使用了类似于 Revel 框架的协程池来处理请求,并使用了高效的路由匹配算法。 Gin 以出色的性能闻名。它是一个非常轻量级的框架,只提供基本的 Web 开发功能,因此在处理请求时非常高效。...它内置 ORM 工具,使得数据库操作变得简单,还支持会话管理、缓存、国际化特性。Beego 的可扩展性非常强大,适合构建中大型的 Web 应用程序。...最终选择哪个框架取决于您的具体需求和偏好。无论您选择哪个框架Go 语言的 Web 开发都将因为它们的存在变得更加简单和高效。

    2.8K20

    Go业务开发中常用的几个开源库

    最近总有一些初学Go语言的小伙伴问我在业务开发中一般都使用什么web框架、开源中间件;所以我总结了我在日常开发中使用到的库,这些库不一定是特别完美的,但是基本可以解决日常工作需求,接下来我们就来看一下。...Gin Gin是一个用Go编写的Web框架,它是一个类似于martini但拥有更好性能的API框架。基本现在每个Go初学者学习的第一个web框架都是Gin。...在网上看到一个关于对各个Go-web框架受欢迎的对比: 来自网络 我们可以看到Gin在社区受欢迎排第一,Gin 框架往往是进行 Web 应用开发的首选框架,许多公司都会选择采用Gin框架进行二次开发,...加入日志,服务发现等功能,像Bilibili 开源的一套 Go 微服务框架 Kratos 就采用 Gin 框架进行了二次开发。...我们本身也可以自己实现依赖注入,但是这是在代码量少、结构不复杂的情况下,当结构之间的关系变得非常复杂的时候,这时候手动创建依赖,然后将他们组装起来就会变的异常繁琐,并且很容出错。

    82220

    Go语言之道简洁高效的Web开发与并发编程

    使用Gin和Echo框架构建Web服务在Go语言中,有许多优秀的框架可供选择,其中Gin和Echo是两个备受推崇的Web框架,它们都提供简洁的API和强大的功能,可以快速构建高性能的Web服务。...以下是一些值得关注的方面:标准库:Go语言提供丰富强大的标准库,涵盖了网络编程、并发编程、数据序列化各个方面,使得开发者能够快速构建各种类型的应用程序,而无需依赖第三方库。...工具链:Go语言提供强大简洁的工具链,如go build、go test、go fmt,使得代码的构建、测试和格式化变得非常简单和高效。...图片使用Gin和Echo框架构建Web服务Gin框架:提供简洁的API和强大的功能,使得构建高性能的Web服务变得简单高效。...Echo框架:类似于Gin,也是一个快速的HTTP框架,具有良好的性能和可扩展性。并发编程和协程Go语言的并发模型基于goroutine和channel,使得并发编程变得简单高效。

    18610

    效率提高80%,Go开发必备的库与工具!

    写到现在的感觉就是: 这里就不讨论这几门语言谁强谁弱;重点和大家分享下我们日常开发中所使用到的一些第三方库与工具。...这里我主要将这些库分为两类: 业务开发 基础工具开发 业务开发 首先是业务开发,主要包含了 web、数据库、Redis 。...Gin ⭐️⭐️⭐️⭐️⭐️ 首先是 Gin,一款 HTTP 框架,使用简单、性能优秀、资料众多;你还在犹豫选择哪款框架时,那就选择它吧,基本没错。...总结 最后我汇总一个表格,方便查看: 名称 类型 功能 星级 Gin 业务开发 HTTP 框架 ⭐️⭐️⭐️⭐️⭐️ GORM 业务开发 ORM 框架 ⭐️⭐️⭐️⭐️⭐️ errors 业务开发 异常处理库...最后夹带一点私货(其实也谈不上) 文中提到了我们内部有基于以上库整合一个业务开发框架;也基于该框架上线大大小小10几个项目,改进空间依然不少,目前还是在快速迭代中。

    1.2K20

    软件框架:一种创新工具的力量

    框架的应用场景 软件框架要用于解决一类问题或一类应用开发。例如,Web开发框架用于简化web应用的开发,包括用户界面、数据库访问、服务器配置。...类似的,可以有为科学计算、数据分析、机器学习领域设计的框架Go语言中的软件框架 对于Go开发人员来说,有一些出色的框架可供使用,如Gin、Beego、Revel。...下面,我们将使用Gin框架来举例说明软件框架的使用。 Gin是一个用Go (Golang) 编写的Web框架。它拥有一套简洁实用的API,使用起来非常方便,对新手友好,而且它是性能最高的框架之一。...Gin开发者处理了许多Web开发中常见的任务,如路由、中间件、渲染、错误处理。...它们简化了开发流程,使开发人员能够专注于实现业务逻辑,不是常规的设计和实现问题。对于Go开发人员来说,有很多优秀的框架可以选择,从Web开发到数据科学,几乎所有的领域都有对应的框架可以使用。

    22020

    Go: gin转换器深度解析

    一、引言 在Go语言的众多Web框架中,Gin是因其高效和简洁备受开发者欢迎的一个。作为一个HTTP Web框架Gin提供丰富的功能,以支持快速开发高性能的Web应用。...二、Gin框架概述 在深入探讨转换器之前,我们首先简要回顾一下Gin框架的核心特性: 高性能:Gin是一个高性能的Web框架,相比其他Go语言的Web框架,它能处理更多的请求,更适合构建高负载的应用。...三、转换器的作用与分类 在Gin框架中,转换器主要负责两个方面的功能: 请求解析:将客户端发送的请求数据(如JSON、XML格式)解析为Go语言的结构体,便于后续的处理。...渲染转换器:用于将服务端的数据渲染成特定格式的响应体,如JSON渲染器、XML渲染器。 四、核心转换器深度剖析 接下来,我们将分别探讨几种常用的Gin转换器,了解它们的内部实现及使用场景。...五、总结 Gin框架中的转换器不仅提高了开发效率,也保证数据处理的安全性和准确性。通过有效使用这些转换器,开发者可以专注于业务逻辑的实现,不是繁琐的数据处理细节。

    10410

    SRE后端开发准备篇

    技术框架开发web应用,每种后端语言都有各种框架,每个框架都有其特点,如何选择在于你实际的业务场景和需求,选择合适的技术栈是非常重要的,比如我们后面要用的就是go语言的gin框架,轻量高性能是其代表性特点...具体的我们后面会详细讲解,当然go语言还有其他web开发框架,比如适合构建大型web的beego,还有简单易用的echo框架。...到这就算了解了一个后端应用的大致开发流程,下面就来说说我们这个SRE系统如何利用go语言的gin框架实现后端接口的开发的流程。...直接上图: 那么,就上面的流程再来讲解一波: 1、工欲善其事必先利其器,需要准备go语言的开发环境 官网下载go的二进制文件,有这个,就可以编写、测试和构建go语言程序。...好的,那么准备好基础环境,就可以正式开发了,先把go的知识框架放一下:

    20520

    一文看懂Web后端开发「建议收藏」

    是不是这样一讲就明白?那我们接着往下看。 具体职责 **实现Web应用程序的实际业务逻辑。**即:实现Web应用程序的具体功能(如注册、发表和查询信息)或Web应用程序在服务端执行的具体操作。...数据库作为一种简单易用的持久化机制,可以让用户的信息不因为断电故障丢失,Web应用开发中经常需要用到数据库,甚至许多简单的Web应用本质上都只是“数据库的可视化系统”,也因为绝大多数简单的业务逻辑本质上都只是对数据库的增删改查...如Spring Cloud(微服务开发工具,JVM技术栈专用)、Gin(MVC框架Go语言专用); 架构和指导思想。...因为后端开发中经常要用到各种框架和库,所以用于管理这些框架和库的管理工具是非常重要的。每一门语言都有自己的包管理工具,如Java的Maven,Go语言的go mod; 基础知识。...就如前面所说,现在的后端可不仅仅是CRUD,而是随着互联网和云计算技术的发展不断改变,Web应用程序在需求不断变化的过程中功能变得越来越强,架构变得越来越复杂,对性能的考验也越来越严峻,技术含量自然也就越来越高

    2.9K20

    Go语言是否会取代Python和Java?

    Go是由那些开发大型系统的人设计的,同时也是为了这些人服务的;它是为了解决工程上的问题,不是为了研究语言设计;它还是为了让我们的编程变得舒适和方便。...许多开发人员发现,虽然对于一些简单和基本的开发Python很实用,但如果要构建复杂的系统和定制模块,使用Python可能会变得复杂。此外,经常出现令人沮丧的编码错误。...三、Go语言Web开发常用框架 Go语言被称为云计算时代的C语言,它以其独特的优势逐渐被越来越多的公司所关注和使用。为了充分利用Go语言的Web开发优势,有必要熟悉一下Go语言的Web框架。...有没有一个不错的提高开发效率的开发框架。如:Java 的 Spring 框架,C++ 的 STL 。 是否有一个或多个巨型的技术公司作为后盾。... C 和 C++ 会被打到底层,Java 会被打到上层的业务层。 Go语言的应用范围一直在扩大,云计算,微服务,区块链,哪里都有用Go写的重量级项目。

    80720

    5大热门基于go语言的web框架,别再只知道springmvc

    Spring MVC在Java web领域中首屈一指,作为云原生时代的标准语言之一,Go语言自然也衍生出来不少优秀的web框架。...Gin 项目名称:gin-gonic/gin 项目Star数:69.2K 首先介绍的是Gin框架,它是一个轻量级的Web框架,具有快速的路由和中间件引擎,基于Go语言开发,以其简洁高效的设计和出色的性能在开发领域备受推崇...Echo 项目名称:labstack/echo 项目Star数:25.8K Echo是一款基于Go语言开发Web框架,以其简单易用和高性能备受青睐,易于扩展。Echo的口号是:高性能、极简。...以上示例演示了如何使用Revel框架创建一个简单的Web应用程序。你可以根据需要添加更多的控制器和路由来构建复杂的应用。...以上示例演示了如何使用Buffalo框架创建一个简单的待办事项管理应用程序。你可以根据需要添加更多的路由和控制器来构建复杂的应用。 如何选择合适的web框架?

    7.3K20

    腾讯 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)服务配置和指标上报...filter 机制 在 gRPC 中,实现拦截器 interceptor 功能;类似的在著名的 HTTP 框架 gin 中,也提供中间件模式。...简单而言,就是开发者只要配置 trpc_go.yaml 中的 plugins.log.default 中的相关字段就可以。...这也是笔者认为不太妥当的一点:这个模式太重。但是框架如此,也没办法。 server filter tracelog 的 filter 代码请参见 filter.go

    88581
    领券