Java Chassis通信处理详解 - 通信优化实践
通信优化实践 议题 问题不挑战 整体线程模型 Consumer Producer 问题不挑战 消费者 编程 模型 透明 RPC Spring MVC Transport Highway Vertx REST Servlet REST 生产者 编程 模型 透明 RPC JAX-RS Spring MVC RPC还是REST,传输方式决定编程模型 2. 丌同开发人员熟悉丌同的编程模型 3. RPC、REST的治理如何迚行 4. REST性能低 5. Reactive还是同步 ServiceComb的同步 仅仅是指编程模型上的同步,跟网络通信无关 因为所有场景下网络操作都是异步的 •Producer •Consumer 整体线程模型 Producer Consumer Highway client-原始单连接模型 Eventloop TcpClientConnecton 业务线程 …… 业务线程 Vertx Message Buffer Connection.send -> Socket.write(buf) Consumer Highway client-优化单连接模型 Eventloop TcpClientConnecton0 码力 | 17 页 | 2.22 MB | 1 年前3ServiceComb 微服务框架
、高 可用服务中心。 Java Chassis是一个由编程模型、运行模型、通信模型和服务契约四个 部分组成的微服务框架。 Saga 是一个微服务数据一致性解决方案。 ServiceComb的开放性设计 •Provider与Consumer具有完全 一致的开发体验 •通信模型与编程模型隔离,适 应不同业务场景需求 •运行模型支持灵活扩展,便于 对接外部系统 特性介绍: Service return roundToOnePrecision(bmi); } 特性介绍: Saga 基于Pack模型的新构架 由 Alpha 和 Omega组成 •Alpha充当协调者的角色,主要负责对事务的 事件进行持久化存储以及协调子事务的状态,使 其最终得以与全局事务的状态保持一致,即保证 事务中的子事务全执行,或全不执行。 况下根据Alpha下发的指令执行相应的补偿或重 试操作。 Service A Omega Service B Omega Alpha Alpha Alpha DB 特性介绍: Saga Pack模型 @SpringBootApplication @EnableOmega public class Application { public static void main(String[] args)0 码力 | 11 页 | 668.81 KB | 1 年前3微服务架构与领域驱动设计 - 王磊
什什么是领域驱动设计 领域驱动设计 �8 领域驱动设计解决的两个核⼼心问题: 1.业务架构如何合理理的设计划分? 2.技术架构与业务架构保持⼀一致? 领域驱动设计是⼀一种设计⽅方法,围绕业务概念构建领域模型, 并通过分离技术实现的复杂性,从⽽而控制软件演化的复杂度。 Tacking Complexity in the heart of software �9 微服务架构与领域驱动设计? �10 微服务架构与领域驱动设计 • 能有效指导服务的设计与划分 基于领域驱动设 计,能有效识别 业务模型/业务上 下⽂文。从业务⻆角 度指导服务拆分。 微服务架构与DDD 01 领域驱动设计的核⼼心 02 基于事件⻛风暴暴的DDD实践 03 领域驱动设计的核⼼心 1.建⽴立统⼀一语⾔言 2.建⽴立领域模型 3.识别依赖关系 4.细分界限上下⽂文 将业务架构和系统架构对应起来,建⽴立针对业务变化的⾼高响应⼒力力架构 Domain&Subdomains - 领域&⼦子域 • Core Domain • Supporting Domain • Generic Domain Bounded Contexts - 业务上下⽂文 • 定义领域模型的应⽤用范围和其上下⽂文 Context Mapping - 上下⽂文映射 • 负责不不同上下⽂文之间的协作 • Shared Kernel • Anti-Corruption Layer Entity0 码力 | 28 页 | 1.84 MB | 1 年前3Apache ServiceComb 开源微服务社区
ServiceComb 插件式处理链 SpringMVC 编程模型 限流 负载均衡 分布式追踪 动态配置 服务注册 服务度量 通信模型 REST 边缘服务 熔断/容错 安全认证 分布式事务 标准契约管理 微服务脚手架 配置治理中心 POJO 编程模型 JAX-RS 编程模型 通信模型 RPC 插件式扩展 开箱即用 编程/通信模型分离 轻量级边缘服务 纯异步内核 内置监控治理 分布式事务方案 语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 19 年Apache ServiceComb新品发布 ServiceStage 大数据服务 系统集成服务 IaaS(计算、存储、网络、安全) 中间件服务 标准与规范 应用全微服务化,接口标准由财政厅统一管控, ISV只需聚焦微服务交付,降低依赖性 统一业务模型和数据集成标准,系统无缝对接, 财政数据统一呈现,业务全盘管控 基于先进研发理念,标准化研发环境和工具, 开发效率高,财政需求上线快 解除ISV绑定 降低业务监管难度 新需求上线快 案例:助力S省财政厅数字化转型0 码力 | 15 页 | 2.86 MB | 1 年前3反应式微服务框架ServiceComb设计思想&mdash
的 I/O 通信模型演进 pServiceComb API⺴关Edge Service p实践案例 为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 业界趋势 n Java 9中把反应式流规范以 java.util.concurrent.Flow 类的方式添加到了标准库中 n Spring 5对反应式编程模型提供了内置支持,并增加了新的 webflux ServiceComb 的通信模型演进 启动更多的线程 Why? Thread 2 Thread 1 Thread 4 Thread 3 进程1 Thread 2 Thread 1 Thread 4 Thread 3 进程2 核3 核1 核0 核2 集中到⼀个线程 ServiceComb 的通信模型演进—Reactor 黄金法则:不要阻塞Event ServiceComb 采⽤Vert.x的背景 3 Vert.x vs webflux 同步 Reactive ServiceComb同步线程模型 ServiceComb嵌套同步线程模型 一个误区 ServiceComb非阻塞线程模型 p 与传统流程不同的是,所有功能都在 eventloop中执行,并不会进行线程切 换 p 橙色箭头走完后,对本线程的占用即完 成了,不会阻塞等待应答,该线程可以0 码力 | 33 页 | 5.68 MB | 1 年前3微服务的设计原则与⽣态系统 - 王磊
Complexity • Performance • Testability 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” • 业务领域模型(Domain) • 通⽤用语⾔言(Ubiquitous language) • 界限上下⽂文(Bundle context) 围绕业务-构建团队 围绕业务-构建团队 VS 服务A 开发 (OpenAPI) 通信模型 (序列列化、传输协 议) 编程模型 (同步、异步、 Reactive…) 服务发现 熔断 负载均衡 配置 跟踪 … 运⾏行行模型 编程模型 - 使⽤用OpenAPI的⽅方式定义契约 运⾏行行模型 - 服务发现/熔断/负载均衡/跟踪 通信模型 - ⾼高效的序列列化机制/传输协议0 码力 | 62 页 | 6.65 MB | 1 年前3庖丁解牛:华为云微服务工具解放开发者
Huawei Confidential 11 案例2:存量系统2微服务拆分分析-图搜索拆分微服务 从左到右分别是拆分出扩展属性服务、模型/模型实例服务、目录服务以及离散表独立成的服务,其中离散表中标红部分概念上应该划分到模型/模型实例服 务中,但实际的sql,却并未体现其和模型/模型实例的关联关系,因此被自动划分到独立服务中 Huawei Confidential 12 微服务架构下,API管控的挑战0 码力 | 14 页 | 1.54 MB | 1 年前3微服务创新新品发布
语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 分布式系统配置中心 服务中心异构通信 多语言运行环境 微服务鉴权 微服务契约工具 Apache ServiceComb 契约提取 代码生成 文档制作 契约校验 ServiceComb SpringCloud …… ServiceComb toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件开发商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同企业遗留系统微服务化 提供契约、代码、文档相互转换和校验的能力,帮助用户快速构建基于流行微服务框架和编程模型 的微服务工程,降低微服务学习成本,使能用户聚焦业务开发,提升遗留系统重构、开发效率。 • 契约生成微服务工程:一键生成基于ServiceComb/SpringCloud的微服务工程。 • 代码提取契约:一键从基于SpringMVC/POJO/JAX-RS编程模型开发代码提取OpenAPI契约。 • 契约校验:一键校验实际代码的实现是否与约定契约一致性。0 码力 | 12 页 | 2.96 MB | 1 年前3Apache ServiceComb 微服务创新项目解读
语言进行开 发部署 使能多微服 务技术栈开 发的微服务 应用之间协 同工作和共 同治理 使能满足第三 方认证被广泛 采纳的趋势下 认证鉴权的性 能和安全的要 求 帮助企业用 户达成业务 模型和数据 集成标准统 一 通过易于理 解的数据和 入口,管理 复杂的分布 式系统配置 多语言运行环境 服务中心异构通信 微服务鉴权 分布式系统配置中心 微服务契约工具 Apache ServiceComb Toolkit Toolkit - 遵循OpenAPI的微服务开发、改造工具 提供遵循OpenAPI规范的API、代码、文档相互转换和校 验的能力,帮助用户快速构建基于流行微服务框架和编程 模型的微服务脚手架工程,提升遗留系统重构、开发效率 • 项目地址 https://github.com/apache/servicecomb-toolkit • 开发计划 - 支持API生成Spring toolkit 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 ServiceComb 契约开发工具 开发微服务 测试微服务 客户+集成商 软件提供商 部署微服务 契约仓库 微服务 运行环 境 验收微服务 协同实现基于契约(API)的数据、服务标准化管控 划分微服务 (含依赖关系) 定义契约 (接口和模型) 发布契约 微服务 运行环 境 验收微服务 基于OpenAPI规范0 码力 | 13 页 | 1.24 MB | 1 年前3ServiceComb设计揭秘:标准与开发
ServiceComb 开发框架 通信模型 (restful、 highway) 编程模型 (jaxrs、pojo、 springmvc) 服务契约 (OpenAPI) 服务发现 熔断 负载均衡 配置 跟踪 … 运行模型 基本概念 • SchemaMeta0 码力 | 9 页 | 831.77 KB | 1 年前3
共 30 条
- 1
- 2
- 3