架构设计工作笔记005---微服务架构中的服务编排了解
技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
当一个系统采用了微服务架构后,原有的业务可能并没有发生变化,但系统已被拆分成了很多新的微服务,与传统架构相比,微服务架构下会更依赖通过各微服务之间的协作来实现一个完整的业务流程,这种协作就是服务编排。编排涉及到RPC、分布式事务等,需要有完善的编排框架来支撑。
3种常见的微服务编排方式:
- Orchestration面向可执行的流程:通过一个可执行的流程来协同内部及外部的服务交互,通过流程来控制总体的目标、涉及的操作、服务调用顺序。
- Choreography面向协作:通过消息的交互序列来控制各个部分资源的交互,参与交互的资源都是对等的,没有集中的控制。
- API网关可以看作一种简单的接口聚合/拆分的方式:每笔业务到来后先到达网关,网关调用各微服务,并最终聚合/拆分需反馈的结果。
对编排流程、适配参数、调用链分析等方面思路的考量,构成微服务编排的框架思路:
- 编排流程的思路:原子服务提供REST接口或者监听事件,通过流程编排这些原子服务来实现一个新的复杂
- 服务编排流程的模型
- 活动模型。例如(赋值、invoke(调用)、空)
- 控制模型。例如(顺序、分支、循环、异常抛出、异常捕获、并行)流程编排完成之后,我们还需要给每个被编的服务提供正确的参数,是一个适配的过程。
- 一个编排服务(abcd)由a、b、c、d服务编排而成,每个服务都会有自己的出参入参。适配的过程就是从上下文中给入参赋值以及将出参的结果写入到上下文中。
- 编排服务在执行上下文的组成模型过程中,框架也会产生一部分数据,这一部分数据主要是流水号(id)和安全方面的考量。
架构设计工作笔记005---微服务架构中的服务编排了解相关推荐
- 架构设计工作笔记002---微服务架构理论-扩展立方体
JAVA技术交流QQ群:170933152 主要就是说了架构设计原则中的x,y,z轴吧,感觉也没有什么实质性的内容,立方体,也算是个新词,记录一下吧 x指水平扩展,就是横向扩展,复制系统,然后做负载均 ...
- 架构设计工作笔记003---中台概念_业务中台_数据中台_技术中台
1.什么是中台,到底要解决什么问题? 这个最早由阿里在2015年提出的"大中台,小前台"战略中延伸出来的概念,灵感来源于一家芬兰的小公司Supercell--一家仅有300名员工, ...
- 架构设计工作笔记001---智慧城市项目架构设计中应该注意的问题
JAVA技术交流QQ群:170933152 写写大白话,通俗易懂说重点,描述血泪史... 1.一个项目后期好不好做,成员做的爽不爽,跟前期的需求调研,以及调研中需求能不能相对确定下来有很大关系 这里说 ...
- 架构设计工作笔记004---架构中常见的概念积累--随时更新
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 1.仓储在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管 ...
- MYSQL性能调优及架构设计学习笔记-基础篇MYSQL架构组成
为什么80%的码农都做不了架构师?>>> 目录 小结 MYSQL物理文件组成 MYSQL系统架构 MYSQL自带工具使用介绍 小结 本章主要从逻辑层与物理层两个方面介绍了MYS ...
- 《mysql性能调优与架构设计》笔记: 一mysql 架构组成
2019独角兽企业重金招聘Python工程师标准>>> 2.1mysql物理文件组成 2.1.1日志文件: 1,查看mysql配置文件:mysql --verbose --help ...
- 阿里P9:做了6年架构设计,这次聊聊微服务与分布式事务细节
微服务因其高内聚.低耦合.高扩展.敏捷开发为很多企业所用,当然,没有任何一项技术是完美的.系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现. 毫不夸张地说,分布式事务已 ...
- 智能客服平台的架构设计,实现高效、安全、可靠的服务运行
作者:禅与计算机程序设计艺术 "智能客服平台的架构设计,实现高效.安全.可靠的服务运行" 引言 1.1. 背景介绍 随着互联网技术的飞速发展,互联网服务行业也在蓬勃发展,客服系统作 ...
- 插件式架构设计实践:插件式系统架构设计简介
本系列博文将使用微软RIA技术解决方案Silverlight以及扩展性管理框架Managed Extensibility Framework(MEF),以插件式架构设计为导线,分享本人在从事基于微软S ...
最新文章
- 海南省长沈晓明:海南自贸区先导性项目取得阶段性进展
- 学python用什么教材-金融学专业学python用什么教材或课外资料比较好?
- 声音处理之-梅尔频率倒谱系数(MFCC)
- 自编码器深度分析+定制特征描述子构建初探
- python getopts_getopts用法
- 【NLP】5 分钟理解百度 ERNIE 核心思想
- VS2017 installed in a different location
- 第二章 Java基本语法(三)
- mysql中nchar_浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别
- 【计算机科学基础】ASCII码表知识总结
- android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...
- android studio打包h5,Android Studio打包生成APK教程
- 51单片机+PWM控制渐变七彩灯C51程序
- 【CSDN|每日一练】走楼梯
- 春季学习报告 4.19
- 微信ipad协议(PC版)源码demo
- Leetcode-D35-数组-455. 分发饼干
- 什么是BS?BS和CS模式的区别是什么?
- SVN:文件作比较时中文乱码问题
- 浅拷贝和深拷贝通俗解释
热门文章
- Page Cache引起的业务问题处理
- 决策树ID3、C4.5、CART、随机森林、bagging、boosting、Adaboost、GBDT、xgboost
- 网络监视工具nethogs命令
- error LNK2001: unresolved external symbol public: virtual void *__thiscall
- MYSQL 的集群
- java正则匹配并提取字串
- Go(4 [Map])
- 微信小程序开发的游戏《拼图游戏》
- iostat命令简单使用
- JAVA 垃圾收集监控