微服务的设计原则与⽣态系统 - 王磊## 微服务的设计原则 与生态系统 王磊 ## 关于我  Ruby Gems 开发实战  2018.08.25 ## AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 · 问答 ## SOFA MESH • 从 ISTIO 克隆并保持同步更新 - 使用 SOFA-MOSN 代替 Controller Pattern 通过 CRD 扩展新的能力 ## MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 - RPC 服务使用的接口,方法,参数语义无法匹配 ISTIO 的路由模型 • 一个应用上部署了多个 RPC 服务,每个服务有自己的版本 ## I STIO 控制平面路由的抽象模型 VirtualHost 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持 ## SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 - 避免为不同的微服务框架修改 PILOT 代码 • 通过插件的方式按需支持新的协议 • 对应用代码无侵入性 • 为微服务框架提供轻量化客户端0 码力 | 28 页 | 4.73 MB | 1 年前3
Building Effective Embedded Systems: Architectural Best Practices0 码力 | 241 页 | 2.28 MB | 1 年前3
Greenplum分布式事务和两阶段提交协议## Greenplum分布式事务 和两阶段提交协议 钉钉直播 | 10月21日 20:00 - 21:00 #### Greenplum中文社区 https://cn.greenplum.org 博文·资料·文档·项目 ## 全新的问答论坛 #### https://cn.greenplum.org/askgp ## GREENPLUM DATABASE $ ^{®} $  01 背景 为何从0到1开发Curve 02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ##0 码力 | 35 页 | 2.03 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯CONFE 2023 Rust HTTP 协议栈在终端通信场景的实践 胡凯 hukai45@huaweicom 华为 公共开发部 嵌入式软件能力中心 ‖ 目录 @ HTTP 协议介绍 什么是 HTTP 协议? @ Rust与HTTP协议 介绍 Rust 与 HTTP 协议栈结合的业界实现。 @ 终端 HTTP 通信场景浅析 终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题。 和终端通信场景的实践的简单介绍, 和1 Part 01 HTTP 协议介绍 什么是 HTTP 协议? Rust China Conf 2022 - 2023, Shanghai China HTTP 协议介绍 HTTP 协议,即超文本传输协议 (HyperText Transfer Protocol) 是一种用于分布式、协作式和超媒体 信息系统的应用层协议。 HTTP 是一个客户端〈用户) 和服务端 (网站) Server ust China Conf 2022 - 20: HTTP 协议介绍 HTTP 协议主要具有以下特点: WO WO 支持客户/服务器模式。 简单快速: 客户向服务器请求服务时,只需传送 请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速度很快。 灵活: HTTP 支持传输任意类型的数据对象。 无连接:0 码力 | 26 页 | 1.25 MB | 2 年前3
Node 的设计错误## Node 的设计错误 Ryan Dahl JS Conf 柏林 2018.06 ## 背景: 1. 基于最初的开发,我创建了并管理 Node。 2. 我的主要关注目标是事件驱动的 HTTP server。 3. 这一主要目标对当时服务器端的 JavaScript 起着关键作用。即使在当时这一点不那么明显,但是服务器端 JS 的成功需要事件循环的助力。 ## 背景: 2012 年我离开 年我离开 Node 项目的时候,当时我觉得 Node(或多或少)实现了我的预定目标:创建一个用户友好的非阻塞框架,具体内容如下 1 核心支持许多协议:HTTP,SSL... 2. 在 Windows(使用 IOCP)Linux(EPOLL)和MAC(KQuey)上跨平台工作。 3. 一个比较稳定的相对较小的核心API。 4. 通过 NPM 增加外部模块的生态系统。 但我错了...因为还有许多问题仍待解决 因为还有许多问题仍待解决..... ## 使得 Node 保持增长的几项关键工作 1. NPM(Isaac 开发)将核心 Node 库解耦并允许生态系统的分布。 2. N-API 是设计精美的绑定API。 3. Ben Noordhuis 和 Bert Belder 构建了 libuv。 4. Mikeal Rogers 组织了管理活动和社区。 5. Fedor Indutny 在代码基础上产生了巨大的影响,尤其是在加密中。0 码力 | 28 页 | 767.84 KB | 2 年前3
CurveFS方案设计CurveFS方案设计(总体设计,只实现了部分) |时间|修订人|修订内容| |---|---|---| |2021-03-23|李小翠|初稿(背景,调研,架构设计)| |2021-03-30|李小翠|增加快照部分| |2021-04-13|李小翠、陈威|补充元数据数据结构| |2021-04-19|李小翠、吴汉卿、许超杰等|补充文件空间分配,讨论与确认| 背景 • 调研 • 开源fs • • 性能对比 • 可行性分析 方案对比 • 对比结论 • 架构设计 卷和文件系统 元数据架构 文件系统快照 • 方案一:文件/目录级别快照 • 方案二:文件系统快照 • 关键点 - 元数据设计 - 数据结构 - 索引设计 - 文件空间管理 - 开发计划及安排 ## 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文 ephfs,理论上分析这个结果是合理的,分布式的元数据设计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? ## 可行性分析 ## 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: ### 1. CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用有目录层级的 namespace 方式,namespace0 码力 | 14 页 | 619.32 KB | 1 年前3
CurveFS Client 概要设计CurveFS Client 概要设计(已实现) 背景 - 概述 - 关键接口分析 - init - destroy - lookup - write - read • open • create & mknod • mkdir • forget • unlink • rmdir • opendir • readdir - 其他 功能分析 · 模块划分 · 接口设计 · Cache设计 |时间|作者|内容| |---|---|---| |2021-04-27|许超杰|初稿| |||| |||| |||| ## 背景 CurveFS初步设计见 CurveFS方案设计(总体设计,只实现了部分),目前需细化Client端设计 ## 概述 CurveFS client 向上提供两层接口,分别是 (fuse req t req, fuse ino t ino, fuse ino t newparent, const char *newname); - 这个涉及到下文中“重要问题讨论”,目前暂时无法设计 硬链接相关目前可先不实现。 ## flush & fsync ■ 缓存的问题暂时先不考虑太细,目前默认数据和元数据直接存储到底层,这两个也可先不实现 ## 其他 ■ xattr系列0 码力 | 11 页 | 487.92 KB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100
相关搜索词
微服务架构去中心化自动化一切交付流水线API网关SOFAMeshService MeshX-PROTOCOLMultiplexingSidecar代理嵌入式系统操作系统分层设计线程协议设计原则事务分布式事务两阶段提交协议Write Ahead Logging (WAL)GreenplumIstio七层协议扩展服务发现流量管理模型xDS协议Curve高性能分布式存储multi raft开源Rust HTTP协议栈终端通信场景Ylong HTTP客户端库异步IO状态机GYPPromiseNode_modules安全性require函数CurveFS元数据文件系统快照空间管理CurveFS Clientfuse接口lib库低层次操作符分布式数据库接口













