SOFAMesh的通用协议扩展
SOFA MESH 的通用协议扩展 Service Mesh Meetup #3 深圳站 邵俊雄(熊啸) 2018.08.25AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 • 问答SOFA MESH • 从 ISTIO 克隆并保持同步更新 • 使用 寻址 • 使用 iptables/ebpf 透明地路由所有网络流量 • 服务治理规则,服务,实例和配置都是 Kubernetes 资源 • 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 • RPC 服务使用的接口,方法,参数语义无法匹配 ISTIO Kubernetes 服务 RPC Service 的域名就是其接口X-PROTOCOL 通用协议扩展目标 • Kubernetes Native,高性能,低侵入性的通用 Mesh 落地方案 • 支持新 RPC 框架和通信协议低成本接入 • 协议扩展对 Mesh 控制平面透明化 • 允许对协议多层次,插件化的扩展X-PROTOCOL 配置SOFA MOSN 调用流程 Upstream protocol0 码力 | 28 页 | 4.73 MB | 5 月前3curvefs client删除文件和目录功能设计
© XXX Page 1 of 15 curvefs client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? ent崩溃) 相关调研 moosefs moosefs 未对接forget moosefs 实现了在mds上open,因此删除时可以判断文件是否被打开 moosefs使用了两种机制,来实现上述功能,分别是trash机制和reserve机制(最新版本叫sustained),两种机制如下: trash机制: 对于所有TYPE_FILE类型的文件在删除时, ,则不会立即将该文件彻底删除,而是将 inode的打开情况? 经讨论,需要实现session机制,以应对打开文件被另一个进程删除的场景的场景。 方案设计 经小组会议讨论,决定使用trash + session机制去实现上述功能。 ulink流程如下:© XXX Page 10 of 15© XXX Page 11 of 15 1. 2. 3. 1. 2. 3. 4. 5. Trash机制:0 码力 | 15 页 | 325.42 KB | 5 月前313 Istio 流量管理原理与协议扩展 赵化冰
Istio 流量管理原理与协议扩展 赵化冰 赵化冰 腾讯云 服务网格团队 https://zhaohuabing.com Service Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 Istio 支持的七层协议非常有限:HTTP 1.1、 HTTP2、 gRPC 其余协议只能在四层进行处理(Thrift、Redis 等其他七层协议的控制面支持非常有限) 11 Istio 协议扩展:控制面和数据面需要进行的改动 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route xDS 配置下发 优点: • 控制面改动小,可以快速实现对新协议的支持 问题: • Pilot 目前缺少一个良好的协议扩展机制 • Pilot 需要理解 Envoy filter 中协议特定的知识 • Pilot 代码中维护众多七层协议的代价较大 12 Istio 协议扩展:常见七层协议的路由 Protocol Destination service Parameters could be0 码力 | 20 页 | 11.31 MB | 5 月前3TiDB 与 TiFlash扩展——向真 HTAP 平台前进 韦万
0 码力 | 45 页 | 2.75 MB | 5 月前3TiDB中文技术文档
内存控制文档 Bit-value Literals Boolean Literals Date 和 Time 字面值 十六进制的字面值 NULL Values 数值字面值 字符串字面值 TiDB 用户文档 高级功能 历史数据回溯 垃圾回收 (GC) TiDB Ansible 常见运维操作 TiDB 运维文档 Try TiDB - 3 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 运维文档 当前文档 《TiDB 中文技术文档》 由 进击的皇虫 使用 书栈(BookStack.CN) 进行构建,生成于 2018- 06-25。 书栈(BookStack.CN) 仅提供文档编写、整理、归类等功能,以及对文档内容的生成和导出工具。 文档内容由网友们编写和整理,书栈(BookStack.CN) 难以确认文档内容知识点是否错漏。如果您在阅读文档 获取知识的时候,发现文档内容有不恰当的地方,请向我 SQL 语句语法 实用工具语句 TiDB SQL 语法图 JSON 支持 Connectors 和 API TiDB 事务隔离级别 错误码与故障诊断 与 MySQL 兼容性对比 TiDB 内存控制 高级功能 历史数据回溯 垃圾回收 (GC) TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible 部署方案 Docker 部署方案 Docker Compose0 码力 | 444 页 | 4.89 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
Fork,增强,扩展,定制,集成 回馈社区,反哺开源 维持版本更新,同步升级 未来肯定会开源 可扩展和可定制化是必备的 可 控 性 社 区 支 持 技术输出 内部落地 如何让开源产品接受我们的改动? 如何让社区和客户认可我们的产品?开源方案选择之第一代Service Mesh Linkerd • 无控制平面 • Scala编写,基于JVM资源消耗大 • 可扩展性有限,dtab不易理解和使用 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service Mesh Istio • 腾讯:Tencent Service Mesh • 数据平面选择Envoy:成熟产品,符合 腾讯语言体系,内部广泛使用 • 控制平面据传“挣扎了一下”,最终还 是选择Istio,进行定制和扩展,解耦k8s国内公司的选择之三:另辟蹊径 UCloud:Service Mesh • 非常有意思的轻量ServiceMesh实践 • 从Istio中剥离Pilot和Envoy • 去掉Mixer和Auth0 码力 | 37 页 | 7.99 MB | 5 月前3分布式NewSQL数据库TiDB
16 18 ⽬录 ⽬录 ⽬录 ⽬录 概览 概览 什么是 什么是TiDB 产品优势 产品优势 ⾼度兼容 MySQL 动态扩展 分布式事务 HTAP 真正⾦融级⾼可⽤ 适⽤场景 适⽤场景 对数据⼀致性及⾼可靠、系统⾼可⽤、可扩展性、容灾要求较⾼的⾦融⾏业属性的场景 对存储容量、可扩展性、并发要求较⾼的海量数据及⾼并发的 OLTP 场景 Real-time HTAP 场景 数据汇聚、⼆次加⼯处理的场景 真正⾦融级⾼可⽤ ⾼度兼容 MySQL ⼤多数情况下,⽆需修改代码即可从 MySQL 轻松迁移⾄ TiDB,分库分表后的 MySQL 集群亦可通过 TiDB ⼯具进⾏实时迁移。 动态扩展 动态扩展 通过简单地增加新节点即可实现 TiDB 的⽔平扩展,按需扩展吞吐或存储,轻松应对⾼并发、海量数据场景。 分布式事务 分布式事务 TiDB 100% ⽀持标准的 ACID 事务。 HTAP 为在线事务处理、在线分析处理提供⼀ 解决⽅案。TiDB 适合⾼可⽤、强⼀致要求较⾼、数据规模较⼤等各种应⽤ 场景。 对数据⼀致性及⾼可靠、系统⾼可⽤、可扩展性、容灾要求较⾼的⾦融⾏业属性的场景 对数据⼀致性及⾼可靠、系统⾼可⽤、可扩展性、容灾要求较⾼的⾦融⾏业属性的场景 众所周知,⾦融⾏业对数据⼀致性及⾼可靠、系统⾼可⽤、可扩展性、容灾要求较⾼。传统的解决⽅案是同城两个机房提供服务、异地⼀个机房提供数据容灾能⼒但不提供服务,此解决⽅案存0 码力 | 120 页 | 7.42 MB | 5 月前3CurveFs 用户权限系统调研
。 。 。 内核执行标准的 UNIX 权限检查 如果文件系统在打开设备 fd 时的初始功能协商期间启用了 ACL 支持,则此挂载选项将被隐式激活。 在这种情况下,内核执行 ACL 和标准的 unix 权限检查 疑问:协商期间do_init()中的启用ACL的flags如何设置? 初始化时的 通过 : 功能协商 init()函数实现© XXX Page 9 of 33 // libfuse lib/fuse_lowlevel 的控制。可以针对用户(User)、群组(Group) 附加安全控制功能 更灵活、更细粒度 、默认属性掩码(umask)进行设置。 ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能。使用‘dumpe2fs’命令查看你的ACL功能是否启用: # acl root@pubbeta2-curve5:/home/nbs# XXX Page 28 of 33 在 Linux 操作系统中,如果libattr 功能在内核设置中被打开, ext2 、 ext3 、 ext4 、 JFS 、 ReiserFS 以及 XFS 文件系统都支持 。任何一个普通文件都可能包 扩展属性(简写为xattr, 详见 ) man xattr 含有一系列的扩展属性。每一个属性由一个名字以及与之相关联的数据所表示。其中名字必须为一个 字符串 ,并且必须有一个0 码力 | 33 页 | 732.13 KB | 5 月前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
率低,故障排查慢,阻碍了软件价值的流动 无法满足用户对于业务快速研发、 稳定交付的要求 场景 1 如果生产中一台Web应用服务器故障,恢复这台服务器需要 做哪些事情? 场景 2 如果应用负载升高/降低,如何及时、按需扩展/收缩所 用资源? 场景 3 如果业务系统要升级,如何平滑升级?万一升级失败是 否能够自动回滚?整个过程线上业务持续运行不中断。 传统稳态业务环境难以高效承载敏态应用 发现故障 (假死) 创建 新实例 测试确认 服务正常运行 实例 加入集群 恢复正常 场景 1 如果生产中一台Web应用服务器故障,恢复这台服务器需要 做哪些事情? 场景 2 如果应用负载升高/降低,如何及时按需扩展/收缩所用 资源? 场景 3 如果业务系统要升级,如何平滑升级?万一升级失败是 否能够自动回滚?整个过程线上业务持续运行不中断。 传统稳态业务环境难以高效承载敏态应用 发现故障 (假死) 创建 新实例 新一代架构(微服务)应用的对承载平台提出新要求 传统实践中,主要采用虚机/物理机+SpringCloud等微服务框架的方式承载微服务应用。但在一个虚机/服务器上 部署多个微服务会产生如下问题—— • 资源预分配,短时间内难以扩展 • 缺乏隔离性,服务相互抢占资源 • 增加环境、网络(端口)和资源管理的复杂性,治理成本高 • 监控粒度难以满足微服务应用运维的需要,线上问题难以排查定位,往往需要研发介入 我们需要一种新型的、为云而生的业务承载平台,去应对上述问题。0 码力 | 42 页 | 11.17 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
广州站Agenda Ø 背景 & 概览 Ø 持续演进路径 & 技术案例 Ø 实践案例 Ø 规划 & 展望 Ø QA背景 & 概览数据平面概览 SOFAMOSN • C实现,支持多语言扩展 • 基于Nginx扩展 • 开发不活跃 • 老牌代理系统,业界广 泛使用,服务各类场景 • C++实现 • CNCF第三个毕业项目, ISTIO原生数据平面 • 开发活跃,最新版为1.9.0 • Google 场景 • Rust实现 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFA on ADS Ø X-Protocol协议扩展机制, 以及Dubbo支持 Ø 支持network/stream filter 扩展 Ø 支持WRR负载均衡 Ø 支持subset复杂匹配路由 Ø 无损平滑迁移 Ø ProtocolEngine协议扩展 机制 Ø 支持Router模式 Ø GRPC支持 Ø 协议自动识别 Ø 链式路由扩展 Ø 完善流量管理策略,包括 Retry、DirectResponse、0 码力 | 29 页 | 7.03 MB | 5 月前3
共 82 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9