HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

微服务过微怎么办?字节跳动提供了一种合并编译的方案|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:3232736

评论

发布
暂无评论

超全!前端面试题大汇总

肥晨

前端面试题 11月月更 超全前端面试题

Redis 的 Sentinel 系统

月明风清

redis Sentinel 系统 哨兵机制

vue中网络请求axios的使用和封装

格斗家不爱在外太空沉思

Vue axios 11月月更

Java中的内部类与匿名内部类详解

共饮一杯无

Java 内部类 11月月更 匿名内部类

随机森林-概述

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

【LeetCode】爱生气的书店老板Java题解

Albert

算法 LeetCode 11月月更

JavaScript基本数据类型和引用数据类型详解

肥晨

js 11月月更 数据结构js

云原生训练营课程总结

Rex

chrome调试工具之network

格斗家不爱在外太空沉思

浏览器 11月月更 浏览器调试

JAVA中如何实现代码优化(技巧讲解)

叶秋学长

Java 优化 技巧总结 11月月更

云原生系列四:Yelp 如何在 Kubernetes 上运行 Kafka

叶秋学长

kafka Kubernetes 云原生 11月月更

下一代TCP: 网络演进的平台

俞凡

TCP 网络

Vue-Vuex学习

格斗家不爱在外太空沉思

vue.js vuex 11月月更

不借助 Fiori client,直接在手机浏览器里调用 SAP UI5 BarcodeScanner 实现条形码扫描的可能性?

汪子熙

sdk SAP Fiori SAP UI5 11月月更

pyside6 qml 支持更新液位的伪3D圆柱

Mr_No爱学习

学生管理系统考试试卷存储方案设计

乖乖IvyShine

Grafana 最新开源项目 Phlare 速体验

Grafana 爱好者

云原生 可观测性 Grafana 11月月更

Java中的static关键字详解

共饮一杯无

Java 关键字 11月月更

【kafka运维】TopicCommand运维脚本

石臻臻的杂货铺

kafka Kafka实战 kafka运维 11月月更

图片懒加载

源字节1号

软件开发

微服务架构组件总结篇

邱学喆

负载均衡 Spring Cloud 注册中心 配置中心 熔断服务

易观千帆 | 2022年9月银行APP月活跃用户规模盘点

易观分析

金融 手机银行

【C语言】case 关键字

謓泽

11月月更

2022-11-04:给定一个正数n,表示有多少个节点 给定一个二维数组edges,表示所有无向边 edges[i] = {a, b} 表示a到b有一条无向边 edges一定表示的是一个无环无向图,也

福大大架构师每日一题

算法 rust 福大大

低代码实现探索(五十一)组件的配置

零道云-混合式低代码平台

WEB-INF/web.xml泄露

我是一个茶壶

WEB安全 11月月更 源码泄露

【愚公系列】2022年11月 微信小程序-Request网络请求的封装

愚公搬代码

11月月更

工赋开发者社区 | 研究了代码质量后,开发速度提高了 2 倍,bug 减少了 15 倍

工赋开发者社区

hadoop2.7集群初始化之后没有DataNode的问题

程序员欣宸

大数据 hadoop 11月月更

SQL 碎碎念,你可能用不到但不能不知道的数据库技巧(2)

百里丶落云

数据库 后端 11月月更

QUIC不是TCP的替代品

俞凡

TCP 网络 QUIC

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