如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

大前端趋势下 bilibili 网关演化史 - MOSS

  • 2020-02-05
  • 本文字数:879 字

    阅读完需:约 3 分钟

大前端趋势下bilibili网关演化史 - MOSS

ArchSummit 北京 2019 大会上,张忻正讲师做了《大前端趋势下 bilibili 网关演化史 - MOSS》主题演讲,主要内容如下。


演讲简介


在软件行业,多数端多数架构都选择了使用 HTTP + JSON 的方式进行数据交互。


诚然这套架构在端上,服务端,运维都有了较成熟的基础建设,但是依然存在诸如排障能力弱,缺乏服务端 PUSH 能力,为弱类型做大量的数据容错,以及对安全性和较前沿技术栈的妥协。


多数系统为了实现这些能力,各自分别又造了各自平台上的轮子,甚至为了对齐采取了一些 hook 的手段去进行了较大程度的魔改。


本次分享将带来 bilibili 针对以上问题所实现的基于 gRPC 和 Cronet 所实现的网关 - MOSS,MOSS 通过统一的类 gRPC 的 Framework 实现了网络内核白盒,数据双向流,强类型协议等能力,且大幅解决了连接复用低,流量高,Mock 困难,spam 成本高等问题。


MOSS 通过统一的协议语言 Protobuf 进行大前端(iOS Android Flutter Web)与后端服务的一致性保证,并实现大前端的接口实现及后端的接口 stub。


MOSS 通过统一的网络技术栈 Cronet 进行大前端(iOS Android Flutter Web)的基本统一。


内容大纲


  1. 目前大前端(iOS Android Flutter Web)通信协议的基本概述

  2. 典型案例分析: 一则协议不一致弱类型导致的 Bug

  3. 典型案例分析: 一则网络内核为黑盒的排障

  4. 介绍 Protobuf 并阐述大前端的 API 及后端的 Stub 生成的流程

  5. 介绍 Cronet 并阐述多端的技术栈的改造

  6. 介绍 MOSS 结构以及分别在 iOS Android Flutter Web 的实现

  7. 总结: 每个系统使用相同语义的语言,每个系统使用相同的技术栈


听众受益点


  1. 了解 gRPC 于大前端的基本实践

  2. 了解生产中 bilibili 的大前端网关的实现

  3. 学习如何更高性能更通用性的解决多端的不一致性问题


讲师介绍


张忻正


bilibili 主站技术中心 架构师


2014 年加入 bilibili,历经 b 站从单一业务发展到平台的过程。曾负责 iOS 业务组、播放器内核组、移动基础组件组、工程效率组,现担任移动架构师职责。在职期间担任过开源播放器 IJKPlayer maintainer 及 FFmpeg 贡献者、基于 Bazel 重建 iOS 构建系统。












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/beijing/schedule


2020-02-05 19:552370

评论

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

提升RTC音频体验 - 从搞懂硬件开始

Wilber

音视频 RTC 3A 音频技术 音频3A

从原理带你掌握Spring MVC拦截处理器知识

华为云开发者联盟

Spring MVC 拦截器 拦截处理器 HTTP请求

Hi,Contributor,有一份专属周边礼包等你领取!

SphereEx

开源社区 ShardingSphere SphereEx Contributor 周边

Java编程中忽略这些细节,Bug肯定找上你

华为云开发者联盟

Java 编程 对象 垃圾回收 switch语句

只需10分钟,让你的企业应用具备OCR能力

明道云

WebRTC DTLS | 谈谈 DTLS Fragment

泰一

DTLS

货币“大动作”,中国数字货币DCEP即将落地!

CECBC

直播 | 大数据能力体系构建的技术方法全在这了!

百度开发者中心

大数据 百度 直播 开发者沙龙

在浏览器里使用 SAP GUI

汪子熙

SAP abap SAPGUI 11月日更

Android C++系列:Linux文件系统(一)

轻口味

c++ android jni 11月日更

前端开发:Node版本引起的报错问题

三掌柜

11月日更

北京主题展|2022第十五届北京国际物联网展览会

InfoQ_caf7dbb9aa8a

复杂JSON结构创建语法

FunTester

Java json 接口测试 测试开发 FunTester

明道云初学者如何速成报表管理系统

明道云

【LeetCode】整数替换Java题解

Albert

算法 LeetCode 11月日更

Java将增加虚拟线程,挑战Go协程

编程宝库

Java golang 并发

建设区块链基础设施,加速区块链等新技术与传统行业深度融合发展

CECBC

数字藏品是什么?有风险吗?谁来监管?

CECBC

测试左移实践介绍

刘冉

TDD 自动化测试 测试驱动开发 测试左移 ATTD

论文解读丨文本行识别模型的再思考

华为云开发者联盟

数据集 文档 文本 文本识别 语言模型

北京智博会主题展|2022第十五届北京国际物联网展览会

InfoQ_caf7dbb9aa8a

Vue进阶(贰佰):前端UI框架介绍

No Silver Bullet

Vue UI 11月日更

研发效能提升的八项实践建议

博文视点Broadview

flutter 开发中 vscode 插件推荐 3

坚果

flutter 11月日更

dart系列之:创建Library package

程序那些事

flutter dart 程序那些事 11月日更

【Flutter 专题】04 图解第一个程序遇到的安装依赖问题

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例

冰河

Java 并发编程 多线程 高并发 异步编程

精选案例 | YRCloudFile 引领自动驾驶存储技术新趋势

焱融科技

自动驾驶 云计算 分布式 高性能 文件存储

SAP UI 搜索分页技术

汪子熙

JavaScript Web SAP 11月日更

[ Kitex 源码解析] 函数式编程

baiyutang

golang 微服务 Go 语言 11月日更

部署Apollo

小鲍侃java

11月日更

大前端趋势下bilibili网关演化史 - MOSS_ArchSummit_张忻正_InfoQ精选文章