写点什么

微服务过微怎么办?字节跳动提供了一种合并编译的方案|QCon

  • 2024-01-16
    北京
  • 本文字数:1424 字

    阅读完需:约 5 分钟

大小:713.65K时长:04:03
微服务过微怎么办?字节跳动提供了一种合并编译的方案|QCon

随着业务规模的迅速扩张和复杂度提升,微服务架构已逐渐成为业界普遍采纳的先进策略。然而,在长期实践与演进的过程中,微服务粒度过细的现象日益突出,带来了种种问题,比如微服务分割过细导致的基础资源配置开销加剧,交互过程中链路增多引起的时延上升问题,以及服务治理开销过大等等。因此,当前针对单体架构与微服务架构的选择这一议题,又在经历着新一轮的审视与论证。

 

那么,有没有一种方案,可以既拥有单体的性能,又拥有微服务的研发效率呢?

 

字节跳动基础架构团队提供了一种方案——合并编译的方案,通过这种方式,可以使得服务拥有单体的性能和微服务的研发效率。目前该方案已在字节跳动内部多个业务线中使用,接入核心超过百万核,在不影响研发效率的情况下,带来数十万核的性能收益。

 

QCon全球软件开发大会(北京站)2024 的「单体 vs 微服务」专场,字节跳动后端研发工程师尹旭然将以《大规模微服务破局之道:合并编译》为题,把方案落地经验分享出来。据了解,尹老师主要负责合并编译方向和开源 HTTP 框架 CloudWeGo-Hertz 的研发,主要关注后端服务架构与技术。目前合并编译是字节跳动解决微服务过微问题上的主要解决方案之一,Hertz 也是字节跳动内部最大的 HTTP 框架。



我们不希望你错过这个演讲,因为——

  • 这个方案是业界已经大规模落地的,微服务过微的治理方案之一,在落地过程中有较多的经验,摸着前人的肩膀过河,机会难得

  • 核心负责人亲临现场,你既能听到方案的详细情况,又能与他面对面交流,互相启发新的思路,探索下一代后端服务架构

  • 通过这个方案,你会知道,单体和微服务并不是绝对的,服务可以灵活的选择单独部署与合并部署

 

尹旭然老师也表示,方案落地也不是没有痛点,一是理念普及是最大的难点,需要让业务的同学接受这种形态,了解哪些是真正的需求,哪些是不需要关注的点,二是相关生态(DevOps、监控、服务网格、PaaS 等)都需要支持,牵涉部门多。但这些问题都不是无解的,在交流过程中,尹老师分享了他们的做法。

 

“在业务接受上,我们主要有两个动作。第一点是自上而下的宣传,我在内部的平台上发表了很多文章,也有很多的分享,通过多次触达,让用户慢慢地理解这个事情。宣传的时候鼓励用户从更高维度的视角来看,跳出微服务的思维。合并之后就是一个单体服务,单体需要的哪些能力和微服务肯定是不一样的。第二点,我们也会用一些例子,找一些核心服务,在明白了这种架构形态之后接入,为我们做一些背书。随着核心服务接入的越来越多,业务接受起来也变得更加容易。第三点是打铁还须自身硬,合并编译听了很多业务的建议,对业务提到的能力也能够做到快速的补齐,慢慢的口碑也就上来了。”

 

目前,该方案在业务侧得到了正向反馈,“大家都能够明白这件事情带来的收益,也明白接入后研发模式带来的变化。尤其是收益这方面,取得了超出预期的收益,大家的反馈普遍还是非常不错的。”


此外,QCon 全球软件开发大会(北京站)将作为 InfoQ 2024 年首场会议,推出了全新主题——全面进化,并围绕着技术、产品、组织的全面进化策划了大模型场景化落地、大模型产品设计、大模型推理加速、高质量架构、单体 vs 微服务、可观测、性能优化、下一代生产力工具、开源产品的商业闭环、最新编程语言、数据质量与治理、大前端前沿技术、自研 OS 时代的大终端等超多精彩专题。全年会议 7 折特惠购票,仅限 1 月,咨询购票可联系票务经理 17310043226 。


目前大会议题同步征集中,点击此处了解详情,期待与各位开发者现场交流。



2024-01-16 17:3235489

评论

发布
暂无评论
发现更多内容

手写的第一个 Java 应用程序,执行的时候发生了什么?

白色蜗牛

Java

二十张图让你一分钟全面学习数仓建设之路

初学大数据

大数据 数据仓库

一个PHPer的Golang之路

万俊峰Kevin

php 微服务 Go 语言

寻找被遗忘的勇气(十)

Changing Lin

3月日更

B端产品经理自我认知

lenka

3月日更

redis工作原理(下)

Sakura

28天写作 3月日更 21天挑战

正则表达式.05 - 匹配模式

insight

正则表达式 3月日更

翻云覆雨——前景理论之隔离效应

Justin

心理学 28天写作 游戏设计

容器 & 服务:Kubernetes构件及Deployment操作

程序员架构进阶

Docker Kubernetes 容器 28天写作 3月日更

Python 关键字

HoneyMoose

垃圾代码和优质代码的区别?

xcbeyond

Java 优化代码 3月日更

Webpack 基石 tapable 揭秘

vivo互联网技术

大前端 webpack 流程管理 tapable

密码学系列之:内容嗅探

程序那些事

加密解密 密码学 程序那些事 内容嗅探

Elasticsearch 定制 Dynamic Mapping 策略

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

熬夜重构了IDEA插件Toolkit(整合程序员常用的工具箱),更加便捷

Silently9527

Java 程序员 idea插件

《精通比特币》学习笔记(第六章)

棉花糖

区块链 学习 3月日更

成为你向往的那只独角兽 - 《独角兽项目》出版在即

京东科技开发者

DevOps

DDR4看这一篇就够了

Kevin Z

算法攻关 - 重建二叉树 (O(n))_0105

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 重建二叉树

RPA助力证券行业高质量发展

Jason Tien

微服务 RPA 金融科技 证券 自动化平台

Markdown中的图标为什么不是图片却可以以图片方式显示

happlyfox

28天写作 3月日更

常见 git 需求整理(持续更新中)

blueju

git 大前端 工具 npm

CloudQuery v1.3.4 版本更新

BinTools图尔兹

oracle 运维 编辑器 sql 数据库管理工具

带你轻松理解数据结构之Map

蛙人

JavaScript 大前端

区块链赋能农产品溯源,农产品质量安全追溯

13530558032

第9周课后练习-性能优化三

潘涛

架构师训练营 4 期

Spring Boot工程结构

韩斌

Spring Boot

智慧组工党建系统-数字赋能组织工作

13530558032

RabbitMQ集群简介

Kylin

读书笔记 RabbitMQ 消息队列 3月日更 集群简介

(28DW-S8-Day18) 可插拔式知识

mtfelix

28天写作

波场环球系统开发|波场环球软件APP开发

系统开发

微服务过微怎么办?字节跳动提供了一种合并编译的方案|QCon_字节跳动_QCon全球软件开发大会_InfoQ精选文章