首页 » PHP教程 » 手游接口php技巧_开源三年CloudWeGo 的生态成长和社区增长

手游接口php技巧_开源三年CloudWeGo 的生态成长和社区增长

访客 2024-11-10 0

扫一扫用手机浏览

文章目录 [+]

作者 | 罗广明 CloudWeGo 开源卖力人

CloudWeGo 最早于 2021 年 9 月正式开源,到本日为止已经经历了三年韶光。
作为追赶者,CloudWeGo 经受到了来自来自全方位的磨练和寻衅,稳步向前,始终坚持着开源的初衷,为社区供应一个微做事领域的高质量开源项目。
正如 CloudWeGo 三周年活动开场致辞中字节根本架构卖力人赵鹏伟所提到的,我们希望可以把字节多年的微做事干系实践履历和成果反馈到社区,回报社区,让诸多企业用户和开拓者都能和字节一样享受到高性能微做事框架在降落本钱、提升研发效率方面的收益。

手游接口php技巧_开源三年CloudWeGo 的生态成长和社区增长

开源三年之际,以下大略盘点一下 CloudWeGo 的生态发展和社区增长情形。

手游接口php技巧_开源三年CloudWeGo 的生态成长和社区增长
(图片来自网络侵删)

CloudWeGo 的项目生态

Go 是在 2014 年被引入字节跳动的,2019 年旁边,由于新框架的培植,Go 逐渐成为字节跳动内部紧张的业务开拓措辞,超过 50% 的做事采取的是 Go。
此外,字节跳动在三年前开始培植 Rust 做事端方向,完成了内部生态培植并已经在多个业务线完成落地,并取得了超出预期的收益。

Go 和 Rust 是我们团队主推的两个编程措辞,适应不同的业务场景,同时也是 CloudWeGo 项目生态支持的两个编程措辞。

Go 生态是我们最早开源的,也是 CloudWeGo 紧张措辞生态。
包括 21 年首批开源的 Kitex、Netpoll,22 年开源的 Sonic、Hertz;23 年,我们相继开源了 shmipc 和 Dynamicgo 等项目,他们均有有个共同的特点,那便是高性能。

2021 年底,我们开源了 Monoio,在 Rust 社区引起了不少的关注,随后这个项目也加入到了 CloudWeGo 大家庭;2022 年 CloudWeGo 一周年之际,我们开源了核心微做事框架 Volo 及其干系生态库,包括 Motore、Pilota 和 MetaInfo 等;在 24 年1 月,我们对外开源了同样基于 SIMD 技能的 Sonic rust 版本。

下图便是由字节跳动做事框架团队自主开源出来的项目的生态全景图,左边是 Go 生态项目,右边是 Rust 生态项目;从上到下,依次包括 RPC 和 HTTP 框架、编解码序列化反序列化库、网络库与运行时、工具和中间件等。
各个项目既可独立利用也可搭配利用。

除了以上自主开源的项目生态外,核心项目的 Contribution 组织下也收成了诸多来自社区开拓者和企业用户参与共建的项目。
个中,对付 Kitex 这个项目来说,我们在 kitex-contrib 组织下支持了包括做事注册创造、动态配置、中央化做事管理、以及包含 log, trace, metrics 完全的可不雅观测性集成。
这里我们支持了险些所有主流的开源生态和事实标准,包括 CNCF 基金会下的 etcd、OpenTelemetry、Prometheus 和 Istio,广大用户可以灵巧集成和选用。

对付 Hertz 来说,在社区开拓者的大力支持和参与下,同样构建了丰富的周边生态,在做事注册创造以及可不雅观测性方面,和 Kitex 的能力集成体验上险些是同等的,技能栈可以保持统一。
比如,RPC 和 HTTP 场景都可以选择 etcd 作为注册中央,采取 OpenTelemetry 对可不雅观测度量进行打标,采取 Prometheus 展示 metrics 监控,采取 Jaeger 展示链路追踪等。
不过紧张运用于 BFF 场景下作为 HTTP 库,不汇合成过多做事管理的能力,但是会支持和 Web 浏览器通信的各种库,比如会话、缓存、跨域访问掌握、认证鉴权、SSE 等干系中间件,知足 Web 后端须要的统统必要能力的集成。

基于字节自主开源的核心项目以及社区开拓者共建的项目生态,CloudWeGo 构建起了一整套适应于研发体系的开源生态:
项目立项初期,用户可以参考我们发布的云原生微做事架构白皮书做好架构设计和技能选型
开拓阶段,可以利用脚手架工具基于 IDL 和项目模板一键天生脚手架代码,统一工程化构建,简化开拓流程
开拓完成后,可以非常方便在公有云微做事干系的产品或者自建环境快速完成项目支配
运行时,支持做事注册创造、(东西向)流量管理、动态配置、可不雅观测监控、数据安全等,未来还将支持南北向流量管理、API 测试、代码产物管理等能力

CloudWeGo 开拓者生态与创新
接下来,我们来看一下 CloudWeGo 开源三年以来开拓者干系的生态和自主创新项目。
这些生态项目均是由开拓者自主设计开拓完成,或是贡献到了 CloudWeGo 社区,或是具备较大参考意义的个人项目。
首先,我们来看一下贡献到 biz-demo 仓库下的四个繁芜业务案例,分别是由不同开拓者贡献和掩护,覆盖不同的场景,利用了不同的技能栈,项目中都集成利用到了 Kitex 和 Hertz。
EasyNote
https://github.com/cloudwego/biz-demo/tree/main/easy_note
第一个项目是 EasyNote,由 @Kinggo 和 @lorain 两个同学贡献和掩护,它是一个大略的条记做事,旨在演示如何在一个项目中同时集成 RPC 框架和 HTTP 框架的能力,并且和做事注册中央、数据库打通。
Hertz 卖力处理用户要求,处理卖力客用户直接访问的 HTTP 要求,包括这里也利用了 Hertz 的 4 个中间件 ,requestid 中间件、jwt 中间件、 pproof 以及 gzip 中间件。
Kitex 紧张利用了它的 etcd 的扩展作为做事注册与创造中央,并且也利用了一个 Kitex 的代码天生扩展,thrift-gen-validator 去对 RPC 要求做校验。
末了对数据库操作,利用了 GORM 框架,同时利用 MySQL 数据库作 RDBMS。
同时也集成了 OpenTelemetry 以及 Jaeger 对链路进行追踪。
末了,用 Logrus 日志对 Hertz, Kitex 与 GORM 默认的日志进行更换,达成统一。

Open Payment Platform
https://github.com/cloudwego/biz-demo/tree/main/open-payment-platform
第二个项目叫 OpenPayment Platform,由 @baiyutang 同学贡献和掩护,它是一个支付开放平台的 demo,支付开放平台常日是开放给做事商或商户供应收款记账等能力的做事入口从整体的角度去看这个项目,它是一个基于 Kitex 和 Hertz 实现了 API Gateway。
流程如图所示:左边用户发起了 HTTP 要求,POST 方法,指定特定的做事路径参数,传了某些业务参数到了网关;网关会判断它是要去到哪一个 RPC 微做事,然后用通报过来的参数,由泛化调用客户端,向 RPC 做事发起要求。
项目中紧张利用到了泛化调用和整洁架构这两个核心理念,项目力求简洁、清晰。
不过由于当时 cwgo 还没有开源,项目没有基于 cwgo 实现自定义工程化模版,这块开拓者可以基于这个项目进行扩展。

Bookinfo
https://github.com/cloudwego/biz-demo/tree/main/bookinfo

第三个项目是 Bookinfo,由 @CoderPoet 同学贡献和掩护,这个项目是基于 CloudWeGo 这套技能栈重写 Istio 最经典的微做事 demo。

首先,Bookinfo 是 Istio 官方供应的经典 demo 运用,它的目的是演示 Istio 的各种各样特性。
这个项目的目的也是类似的:希望利用 CloudWeGo 技能栈来重写这个 demo,并且基于 CloudWeGo 本身供应的技能栈,跟 Istio 生态做结合,去演示如何知足微做事场景上的需求。

技能选型上面,用 Hertz 实现 HTTP 做事 productpage,用 Kitex 实现 RPC 做事;基于 Istio 作为做事网格掌握面,与数据面的 xDS 模块做交互,卖力 xDS 配置动态下发;基于 OpenTelemetry 的 Baggage 实现高下文透传,同时实现 logs、trace、metrics

终极实现基于 Proxyless 架构的全链路泳道。
即演示了 CloudWeGo 生态可以与 Istio 生态完美兼容,由演示了可不雅观测、全链路灰度等干系增强能力,是很多企业用户非常关注的技能能力。

Book Shop
https://github.com/cloudwego/biz-demo/tree/main/book-shop
第四个项目是 Bookshop,由字节电商研发团队的 @bodhisatan 同学贡献和掩护,这是一个电商的最小化demo,对商品实体和商品链路做了精简,旨在帮助大家理解电商、理解 CloudWeGo 技能栈,对从事电商行业的开拓者具有较大的借鉴意义。
技能选型上,利用 Hertz 编写 Face 做事,统一对外 HTTP 层,用 Kitex 编写 Item、User、Order 做事等系统 RPC,利用 Redis 做缓存,利用 ETCD 进行做事注册和创造 等。
此外本项目还借鉴了领域驱动设计干系的事理,实现了改进版的 DDD 四层架构,更有利于项目的扩展和掩护。

以上四个项目的详细解读均已发布在 CloudWeGo 的公众号,大家如果感兴趣也可以详细查阅理解。
Easy Note——快速入门 CloudWeGo 生态
Open Payment Platform——基于 CloudWeGo 实现 API Gateway
Bookinfo——基于 CloudWeGo 重写 Istio 经典 demo
BookShop demo 案例详解 ——从上手电商到上手 CloudWeGo
其它精良创新项目
TikTok Demo:由一组字节青训营的学生开拓,该项目贡献在 hertz-example 目录下,旨在演示如何基于 Hertz 实现一个大略的 HTTPserver 来供应 user、video、交互和社交干系的后端做事项目中利用到了 Redis、MySQL 等技能。
详见 https://github.com/cloudwego/hertz-examples/tree/main/bizdemo/tiktok_demo
FreeCar:是一套基于 CloudWeGo 和 云原生技能栈的分时共享租车系统,由重庆邮电大学一组本科生团队开拓,在中国大学生打算机设计大赛中荣获二等奖。
详见 https://github.com/CyanAsterisk/FreeCar
Chatbot Demo :是由字节 @Haswf 同学开拓并开源在 GitHub 的一个开源项目,可以基于本地模型 ollama、langchaingo 和 Hertz SSE 构建演示流式传输的 demo。
详见 https://github.com/Haswf/hertz-chatbot-demo

CloudWeGo 企业用户案例
CloudWeGo 关注真实企业用户落地,构建企业用户支持体系和掩护体系,持续支持新用户落地,支持现有企业用户需求。
当前较大规模落地的企业用户包括:智谱 AI、贪玩游戏、方正证券、Construct、森马、华兴证券、数美科技等;Sonic 也在招商银行企业内部落地。
经由企业用户反馈,落地 CloudWeGo 后均得到的性能、本钱和稳定性收益。
游戏 - 贪玩游戏
手游登录接口业务率前辈行 PHP -> Golang 重构,并做微做事拆分,个中 HTTP 做事采取 Hertz 框架,而 RPC 微做事采取 Kitex 框架。
其它微做事技能选型:做事注册创造 & 配置中央 Nacos、链路追踪 OpenTelemetry、监控 Prometheus、限流 Kitex 内置限流策略。
后逐步推广至更多业务,全面启动重构,根据单一职责将业务拆分更细,可独立开拓和扩展。

收益:1. 性能和稳定性提升:单 Pod 1c2g 能处理 400+ QPS;链路耗时低;失落败率逼近 0%。
2. CloudWeGo 提高开拓效率,简化支配流程,自动伸缩容更便捷,业务更有弹性,本钱得到降落。
金融 - 方正证券
2023 年年初方正启动了微做事体系培植,个中注册中央采取的 zookeeper,存量做事利用的是 Dubbo 框架,新培植的 Web 和 RPC 运用框架分别采取的 CloudWeGo 的 Hertz 和 Kitex。
(Kitex <=> Dubbo)。
微做事架构下,随着业务的发展,对做事的管控难度会越来越大,做事管理的浸染便是为理解决做事拆分所引发的一系列问题,以让做事更稳定地运行,涉及的主题包含了做事注册与创造、负载均衡、做事熔断、做事降级、做事限流等。
方正夸克平台供应的超时、重试以及做事端限流的功能,均基于 Kitex 的干系能力而来。

目前方正已经进入到了微做事培植的深水区,紧张涉及到微做事管理,可不雅观测性能力,接口管理等,未来还将基于 CloudWeGo 体系深度探索与做事网格的结合、统一多措辞可不雅观测性、统一 RPC 和 HTTP 接口管理等。
AI - 数美科技
接入层 RPC client 以及业务层 RPC server & RPC client 基于 Thrift 协议采取 Kitex 框架重构,办理了很多原生 Apache Thrift 框架的不敷之处。
将与公司根本举动步伐耦合较紧密的这部分作为扩展进行接入,包括做事创造(Zookeeper)、日志(Zap)、链路追踪(OpenTelemetry)、Metrics(Prometheus)等,以上扩展组件 kitex-contrib 均供应了扩展支持,可以直策应用集成到自己系统。
集成限流、熔断、过载保护等做事管理能力,让系统能够自适应地办理可能带来稳定性问题的流量。

收益:上线 Kitex 框架和做事管理功能可以很好地办理弹性扩缩以及机器负载导致的可用性问题,将突增引发的失落败影响限定在很小范围内,极大得提升了系统的稳定性。
流量是考验效果的唯一标准,经由足够多流量验证的 Kitex 是很好的选择。
泛互 - Construct
Construct 做事端架构的演进反响了互联网业务从大略到繁芜的发展需求。
Construct 公司见证了从单体架构,再到微做事架构的做事注册与创造机制,终极到做事网格(Service Mesh)的演进。
面对浩瀚的微做事框架,Construct 经由寻思熟虑,终极选择了 Kitex。
这一决策基于几个核心成分:Kitex 的易用性、高性能,尤其是在高并发环境下的出色表现。
基准测试显示,Kitex 的 QPS 是 gRPC 的两倍,而且在延迟方面表现更为精良。

收益与总结:高并发性能出色,是 gRPC 两倍;高可用,可用性 > 99.999%;稳定性,稳定到险些觉得不到框架的存在。

CloudWeGo 的社区发展总结
关键词一:企业用户
CloudWeGo 关注真实企业用户落地,截止日期,Kitex & Hertz 落地外部企业用户超过了 60 家。

开源至今,拉起了 80+ 企业用户一对一互换群,免费帮忙用户办理技能问题,帮助 CloudWeGo 高性能微做事技能在公司内部生产环境落地。

组织了超过 10 次与企业用户的线下面对面技能互换,深度沟通技能问题和解决方案,网络利用反馈和来自一线用户的建议,帮助我们更好地打磨项目的易用性。
关键词二:Star(Just For Fun)

核心项目 Star 之和 2.9 w+,全部项目总计 3.3 w+(2021.9 - 2024.9)
对付开源项目来说,Star 只是一个浅层次的一个指标,每每很难和项目质量、项目代价、项目落地规模强干系。
不过 Star 可以在一定程度上展示项目的受欢迎程度,star 的增长也可以给开拓者带来感情上的代价,Happy and Fun !
关键词三:环球访问用户
截止 2024 年 9 月,CloudWeGo 官网环球独立访问用户超过了 19 万,遍布中国、新加坡、美国、日本、印度尼西亚、德国、韩国等环球地区国家。
这一指标意味着 CloudWeGo 走向了国际舞台,已经受到了环球多个国家的关注和利用。
关键词四:贡献者

CloudWeGo 自开源以来,吸引了来自公司内外的环球开拓者参与到 CloudWeGo 的代码和文档的贡献,去重后全组织下的贡献者已经超过了 400 个,个中通过长期参与和有效贡献申请成为 Committer 的累计有 22 个,在此之上进一步晋升成为 Reviewer 的有 7 个,Approver 1 个。
社区开拓者繁荣且多样,包括海内的和外洋的,也包括在职员工和高校学生。
是大家的共同努力与共享,才铸就了当前 CloudWeGo 生态的繁荣。
关键词五:线下活动

线下活动对付开源社区和开拓者来说是非常主要的活动,面对面的互换不仅能加速技能的深度触达,还能供应开拓者感情上的代价,给大家供应分享和相聚的机会。
自开源以来,我们累计举办了超过 8 场较大规模的线下技能沙龙,得到海内主流技能媒体的支持和转播,疫情之后的线下活动均吸引了超过百位激情亲切不雅观众的参会和互动,给大家带来持续提高的力量。

写在末了
自去年式对外发布以来,《CloudWeGo 技能白皮书 - 字节跳动云原生微做事架构事理与开源实践》在 CloudWeGo 官网、火山引擎官网累计下载人次 1000+,下载来源包括阿里、京东、腾讯、百度、美团、小红书等互联网行业公司员工,得到了业界的同等好评。
今年,我们更新了部分细节,新版白皮书将联合 InfoQ 发布,目前已经可以在 CloudWeGo 中文官网(https://www.cloudwego.io/zh/ )下载电子版,只需完成大略信息登记即可免费获取。

活动回顾
2024年9月21日,CloudWeGo 在北京成功举办了“高性能微做事技能实践与 AI 新范式—— CloudWeGo 技能沙龙暨三周年庆典活动”,超过200位开拓者参与活动,与八位讲师一起磋商了近一年来 Kitex/Hertz 如何助力大模型,以及一站式 Go 开拓工具 cwgo 和 LLM 原生的代码办理方案 ABCoder 和 ROG 等项目实践。
本文是 CloudWeGo 开源卖力人罗广明的分享总结。
三周年庆典活动视频回顾请访问CSDN、稀土掘金微信公众年夜众号。
点击「」即可得到PPT下载链接。

相关文章

机电代码,智慧时代的技术基石

随着科技的飞速发展,机电行业在国民经济中的地位日益凸显。机电代码作为机电行业的核心技术,已成为推动产业升级和创新发展的重要力量。本...

PHP教程 2024-12-25 阅读0 评论0

期货代码“Y”,探寻金融市场的脉搏与机遇

期货市场作为我国金融体系的重要组成部分,近年来在我国经济发展中发挥着越来越重要的作用。期货代码“Y”作为一种特殊的金融工具,以其独...

PHP教程 2024-12-25 阅读0 评论0

IT系统在现代企业中的运用及其深远影响

随着科技的飞速发展,信息技术(IT)已经渗透到各行各业,成为推动社会进步的重要力量。在现代企业中,IT系统的运用不仅提高了企业的运...

PHP教程 2024-12-25 阅读0 评论0

IT系统技术在现代企业中的应用与挑战

随着信息技术的飞速发展,IT系统技术已成为现代企业核心竞争力的重要组成部分。本文将从IT系统技术的应用现状、优势及挑战三个方面进行...

PHP教程 2024-12-25 阅读0 评论0