Rust HTTP 协议栈在终端通信场景的实践 - 胡凯第三届中国Rust开发者大会 Rust HTTP 协议栈在终端通信场景的实践 胡凯 hukai45@huawei.com 华为 公共开发部 嵌入式软件能力中心 什么是 HTTP 协议? ⚫ HTTP 协议介绍 目录 终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题。 ⚫ 终端 HTTP 通信场景浅析 我们当前结合 Rust 和终端通信场景的实践的简单介绍。 ⚫ Rust Rust 与 HTTP 协议栈结合的业界实现。 ⚫ Rust 与 HTTP 协议 HTTP 协议介绍 Part 01 什么是 HTTP 协议? Rust China Conf 2022 – 2023, Shanghai, China Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议,即超文本传输协议(HyperText 和超媒体 信息系统的应用层协议。 HTTP 是一个客户端(用户)和服务端(网站)之间请求和应答的标准。 Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议主要具有以下特点: ✓ 支持客户/服务器模式。 ✓ 简单快速:客户向服务器请求服务时,只需传送 请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速度很快。0 码力 | 26 页 | 1.25 MB | 1 年前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕@DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 - 对于本身就是 对于本身就是使用Rust语言作为智能合约开发的区块链 平台来说,支持集成支持IBC协议会很方便。 - 这里优先构想了在Solana链上实现IBC协议,因为 Solana平台本身极 低的gas消耗,很适合我现在构思 的这套实现方案。(后面会做解释) 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合 约开发者在Solana上开发智能合约的难度。 - 以及本人对Solana平台的喜欢,优先考虑 了Solana平台,但是这套方案是可以推广到 任何的Rust智能合约平台的。 大致讲解下IBC协议的原理, 以及参与整个IBC协议活动的不同决策 IBC协议概述> 详细介绍IBC协议的基本概念和原理 Connection创建原理 Connection创建OpenInit Connection创建OpenTry Connection创建OpenAck0 码力 | 29 页 | 3.05 MB | 1 年前3
2.2.2 深入理解BFE深入理解BFE 章淼 百度智能云 架构师 什么是BFE? • 百度统一的七层流量转发平台 • HTTP, HTTPS, HTTP/2, QUIC • 2012年开始建设 • 每日转发请求约1万亿,日峰值超过1KW QPS • 2019年,核心转发引擎对外开源 • BFE => Beyond Front End • https://github.com/bfenetworks/bfe 2021年Q3将由电子工业出版社正式出版 BFE开源项目公众号 目 录 BFE涉及的相关技术原理 01 BFE的设计思想 02 BFE的实现机制 03 为什么需要BFE? • 没有统一七层接入的问题 • 功能重复开发 • 运维成本高 • 流量统一控制能力低 • 引入BFE后 • 功能统一开发 • 运维统一管理 • 流量控制能力增强 • BFE平台的主要功能 • 接入和转发,流量调度,安全防攻击,数据分析 总体流量规模较大; 应用场景对流量控 制要求低;无法使 用负载均衡器的场 景。 负载均衡器 • 负载均衡的趋势 • 硬件 => 软件 • 四层和七层负载均衡器分离 • 四层负载均衡 • LVS,DPVS,… • 七层负载均衡 • HAProxy,Nginx,Envoy,Traefik, BFE,… BFE为什么基于Go语言 • 研发效率 • 远高于C语言 • 稳定性0 码力 | 26 页 | 1.78 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力6 • 升级成本高 • 业务解耦 • 平滑升级 • 异构语言治理 • 异构语言治理能力弱 • SDK 版本不统一 应用 SDK 服务路由 负载均衡 通信序列化协议 sidecar 应用 SDK 通信序列化协议 业务逻辑 服务路由 熔断限流 进程通信 熔断限流 负载均衡 Service Mesh 落地实践 7 基础设施 MOSN RPC MQ Actuator 业务逻辑 RPC SDK 通信序列化协议 RPC SOFA-RPC 基础设施 新的挑战 2:异构语言接入成本高 12 MOSN NodeJS 业务逻辑 RPC SDK 通信序列化协议 RPC Cache MQ Config SOFA-RPC Redis SOFA-MQ SOFA- config 基础设施 X SDK 通信序列化协议 新的挑战 2:异构语言接入成本高 13 MOSN NodeJS 业务逻辑 X SDK 通信序列化协议 RPC Cache MQ Config python 业务逻辑 X SDK 通信序列化协议 go 业务逻辑 X SDK 通信序列化协议 C++ 业务逻辑 X SDK 通信序列化协议 SOFA- RPC Redis SOFA-MQ SOFA-config 基础设施 14 Multi-Runtime0 码力 | 63 页 | 880.85 KB | 1 年前3
2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华应用层防火墙WAF • 百度GOLANG委员会成员 内容提要 • 后台程序开发的需求和难点 –C, Python and Go对比 • 采用Go语言重构BFE –背景和技术路线 –GC问题 –协议一致性 –分布式架构 后台程序开发的需求(1) • 性能 –C/C++, Java –Python, Ruby • 并发性 –Process, Thread, Event(编程难度) • –严格的编译阶段检查:强类型,文件包含,… –Panic,便于定位问题 Golang(3) • 上线和运维 –可编译为独立可执行程序 BFE(Baidu Front End) • 百度统一前端 –七层流量接入平台 BFE(Baidu Front End) • 主要服务 • 接入转发 • 防攻击、流量调度、数据分析 • 业务现状 • 覆盖大部分重要产品 • 日请求量千亿级别 接入与转发 –并发编程模型:同步(Go) vs 异步(Nginx) –内存管理 –语言描述能力 • 性能 – 在BFE的场景下,性能在可接受范围内 – 通过算法设计和架构设计来弥补 几个问题 • GC优化 • http协议栈 • 分布式架构 GC带来的问题 –GC是个好东西,但也有问题 –难以避免的延迟(几十到几百ms) • 经验公式:10万对象1ms 扫描时间 –1个tcp连接,约10个对象=> 1万连接,1ms0 码力 | 35 页 | 730.17 KB | 1 年前3
基于gRPC go实现消息发布订阅06 gRPC go介绍 gRPC是什么? 01. 副标题 开篇思考几个问题 01. 副标题 gRPC介绍 01. 副标题 gRPC介绍 01. 副标题 gRPC是框架,七层协议 gRPC go是实现,每个语言都有自己的实现 protobuf介绍 01. 副标题 protobuf示例 01. 副标题 gRPC四种通信模式 gRPC四种通信模式 01. 副标题0 码力 | 31 页 | 2.42 MB | 1 年前3
美团点评2018技术年货过采样聚合上报。采样聚合是对消息树拆分归类,利用本地内存做分类统计,将聚合之后的数据进行 上报,减少客户端的消息量以及降低网络开销。 通信协议优化 CAT 客户端与服务端通信协议由自定义文本协议升级为自定义二进制协议,在大规模数据实时处理场 景下性能提升显著。目前服务端同时支持两种版本的通信协议,向下兼容旧版客户端。 测试环境:CentOS 6.5,4C8G 虚拟机 测试结果:新版相比旧版,序列化耗时降低约 3 Netty解决了JDK 的很多包括空轮训在内的 Bug。 5. Netty底层对线程,Selector 做了很多细小的优化,精心设计的 Reactor 线程做到非常高效的并发处理。 6. 自带各种协议栈,让我们处理任何一种通用协议都几乎不用亲自动手。 7. Netty社区活跃,遇到问题随时邮件列表或者 issue。 8. Netty已经历各大RPC框架(Dubbo),消息中间件(RocketMQ),大数据通信(Hadoop)框架的广泛的线上验 最近在做一个基于 Websocket 的长连中间件,服务端使用实现了 Socket.IO 协议(基于WebSocket协 议,提供长轮询降级能力) 的 netty-socketio 框架,该框架为 Netty 实现,鉴于本人对 Netty 比较 熟,并且对比同样实现了 Socket.IO 协议的其他框架,Netty 的口碑都要更好一些,因此选择这个框架作 为底层核心。 诚然,任何开源框架都避免不了0 码力 | 229 页 | 61.61 MB | 1 年前3
Go Web编程雨痕(review第二章) 授权许可 授权许可 1 除特别声明外,本书中的内容使用CC BY-SA 3.0 License(创作共用 署名-相同方式共享3.0许可协议)授权,代码 遵循BSD 3-Clause License(3项条款的BSD许可协议)。 开始阅读 开始阅读 开始阅读 2 Copyright (c) 2012, AstaXie and The Contributors 一个Web服务器也被称为HTTP服务器,它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器(其实手机端 客户端内部也是浏览器实现的)。 Web服务器的工作原理可以简单地归纳为: 客户机通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言 描述一个网络上的资源, 基本格式如下 schema://host[:port#]/path/.../[?query-string][#anchor] scheme 指定低层使用的协议(例如:http, https, ftp) host HTTP服务器的IP地址或者域名 port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如0 码力 | 295 页 | 5.91 MB | 1 年前3
Java 应用与开发 - Java EE 体系结构EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 Java 应用与开发 Java EE 体系结构 王晓东 wangxiaodong@ouc.edu.cn 计算机科学与技术系 November 6, 2018 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 参考书目 1. 吕海东,张坤编著,Java EE 企业级应用开发实例教程,清 概述 Java EE 容器 Java EE 组件 组件间通信协议 学习目标 1. 了解软件开发的现状与发展趋势,了解企业级应用的特点 2. 掌握 Java EE 的概念和规范,掌握 Java EE 容器、组件和 通信协议的类型和功能 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 大纲 软件开发现状 Java EE 概述 Java Java EE 组件 组件间通信协议 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 ���� 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 软件开发现状 面向 Internet0 码力 | 40 页 | 1.89 MB | 1 年前3
Nacos架构&原理
简介 13 Nacos 架构 17 Nacos 总体设计 17 Nacos 架构 17 Nacos 配置模型 21 Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 42 Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 规模:十万级服务/配置,百万级连接,具备强大扩展性。 15 > 简介 Nacos 生态 Nacos 几乎支持所有主流语言,其中 Java/Golang/Python 已经支持 Nacos 2.0 长链接协议,能 最大限度发挥 Nacos 性能。阿里微服务 DNS(Dubbo+Nacos+Spring-cloud-alibaba/Seata/ Sentinel)最佳实践,是 Java 微服务生态最佳解决方案;除此之外,Nacos 接口,简单易用,方便多语言集成。 Console:易用控制台,做服务管理、配置管理等操作。 SDK:多语言 SDK,目前几乎支持所有主流编程语言。 Agent:Sidecar 模式运行,通过标准 DNS 协议与业务解耦。 CLI:命令行对产品进行轻量化管理,像 git ⼀样好用。 业务层 服务管理:实现服务 CRUD,域名 CRUD,服务健康状态检查,服务权重管理等功能。 配置管理:实现配置管0 码力 | 326 页 | 12.83 MB | 9 月前3
共 296 条
- 1
- 2
- 3
- 4
- 5
- 6
- 30













