* 
ESB:各个系统之间不同的接口进行互通。如json、xml、webservice等不同的接口,ESB去适配已经存在的各种异构系统,屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务高效的,互联互通
松耦合:减少各个服务间的依赖和互相影响
 <>SOA架构
 * SOA架构比较高层级的架构设计理念,一般说SOA架构来构建了什么系统,不会说某个独立的系统采用了SOA架构 
 * SOA提出的背景是企业内部的IT系统重复建设切效率低下 
 * SOA解决了传统IT系统重复建设和拓展效率低的问题,但其本身也引入了更多的复杂性的ESB 
 * ESB设计也是无奈之举,因为各种系统已经存在很多年了,重写或者改造成本非常大,只能通过ESB去适配已经存在的各种异构系统 
 <>微服务
微服务与SOA的关系
 * 服务是SOA的实现方式,服务就是更细粒度的SOA 
 * 微服务是去掉ESB后的SOA,改为轻量级的http RESTFul实现 
 * 微服务是一种和SOA相似,但本质上不同的架构理念 
微服务并不是没有代价,而是会带来系统复杂度、运维复杂度、性能下降等问题
微服务陷阱
 * 服务划分过细,服务间关系复杂 
 * 服务数量太多,团队效率急剧下降 
 * 调用链太长,性能下降 
 * 调用链太长,问题定位困难 
 * 没有自动化支撑,无法快速交付 
对于小团队建议使用
 三个火枪手,一个微服务三个人负责开发
服务拆分方法
 * 基于业务逻辑拆分 
 * 基于可扩展拆分 
 * 基于可靠性拆分,带来的好处 
 * 避免非核心业务故障影响核心业务 
 * 核心服务高可用方案可以更简单 
 * 能够降低高可用成本 
 * 基于性能拆分 
上四种拆分可以据实际情况自由排列组合
微服务基础设施
 * 服务发现,两种实现方式,自己式,代理式 
 * 服务路由 
 * 服务容错,常见的服务容错请求重试,流控,服务隔离 
 * 服务监控 
 * 服务跟踪 
 * 服务安全 
 * 自动化测试 
 * 自动化部署 
 * 配置中心 
 * 接口框架 
 * API网关 
热门工具 换一换
