
微服务架构与开发
张彦峰ZYF
不断努力,不断提升!
-
原创 系统及其他相关问题整理
备注:针对基本问题做一些基本的总结,不是详细解答!1.遇到线上相关问题怎么排查?2.高并发系统的限流如何实现?3.高并发秒杀系统的设计?4.负载均衡如何设计?5.假如双十一等一些促销有高并发访问量要来访问我们的数据,怎么样做到可靠的服务?6.一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,布隆过滤器。7.常见的设计模式及应用场景。...2020-04-07 11:51:111050594
0
-
原创 Spring相关问题整理
备注:针对基本问题做一些基本的总结,不是详细解答!1.Spring Boot与以前的Spring有什么区别?2.Spring Boot启动加载过程是什么样的?3.Spring的IOC/AOP的实现(必考)4.动态代理的实现方式(必考)是否使用过GCLB,和JDK的区别是什么?5.Spring如何解决循环依赖(三级缓存)(必考)6.Spring的@Transactional如...2020-04-07 11:48:271060745
4
-
原创 如何使用事件风暴构建领域模型
目录一、事件风暴简述二、事件风暴的准备工作(一)事件风暴的参与者(二)事件风暴要准备的材料(三)事件风暴的场地(四)事件风暴分析的关注点三、利用事件风暴构建领域模型(一)产品愿景(二)业务场景分析(三)领域建模第一步:从命令和事件中提取产生这些行为的实体。第二步:寻找聚合根及它关联的实体和值对象组合为聚合第三步:划定限界上下文,根据上下文语义将聚...2020-04-07 11:39:181068294
0
-
原创 领域驱动实践总结(基本理论总结与分析+架构分析与代码设计+具体应用设计分析V)
领域驱动实践总结三:具体应用设计分析领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。微服务拆分困境产生的根本原因:不知道业务或者微服务的边界到底在什么地方。DDD 核心思想:通过领域驱动设计方法定义领域模...2020-03-27 19:04:301009011
0
-
原创 领域驱动实践总结(基本理论总结与分析+架构分析与代码设计V+具体应用设计分析)
领域驱动实践总结二:架构分析与代码设计领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。微服务拆分困境产生的根本原因:不知道业务或者微服务的边界到底在什么地方。DDD 核心思想:通过领域驱动设计方法定义领域...2020-03-26 18:34:461083210
5
-
原创 领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)
领域驱动实践总结一:基本理论总结与分析一、领域驱动设计两大设计:战略设计和战术设计二、理解和分析领域+子域+核心域+通用域+支撑域三、理解和分析界限上下文,定义领域边界四、理解和分析实体和值对象五、理解和分析聚合思想:聚合和聚合根六、理解很分析领域事件来解耦微服务...2020-03-24 19:03:131009345
6
-
原创 微服务架构-实现技术之具体实现工具与框架3:Spring Cloud概述和基本讲解
目录一、基本定义二、Spring Cloud相关组件成员框架Spring Cloud EurekaSpring Cloud RibbonSpring Cloud FeignSpring Cloud HytrixSpring Cloud ZuulSpring Cloud GatewaySpring Cloud ConfigSpring Cloud Admin...2019-02-14 14:23:561008366
0
-
原创 微服务架构-实现技术之具体实现工具与框架4:Spring Cloud Eureka原理与注意事项
目录一、服务发现与注册的由来1.单体架构时代2.SOA时代方式一方式二3.微服务时代方案一方案二二、服务发现与注册的技术选型与Eureka简介1.服务发现与注册的技术选型2.Eureka简介3.新的替换方案---Nacos三、Eureka设计理念1.主要解决的三大问题服务实例如何注册到服务中心服务实例如何从服务中心剔除服务...2019-02-14 14:28:331004085
0
-
原创 微服务架构-实现技术之具体实现工具与框架5:Spring Cloud Feign与Ribbon原理与注意事项
目录一、Spring Cloud Feign概述与工作原理解读(一)服务间调用的几种方式(二)Feign 概述二、FeignClent注解剖析+Spring Cloud Feign基本功能配置解读(一)@FeignClient 注解剖析(二)Spring Cloud Feign基本功能配置(三)Feign请求超时问题方法一方法二方法三三、Spring C...2019-02-14 14:32:181001281
0
-
原创 微服务架构-实现技术之具体实现工具与框架6:Spring Cloud Hytrix原理与注意事项
目录一、Spring Cloud Hytrix概述和设计目标(一)Spring Cloud Hytrix基本概述(二)Spring Cloud Hytrix概述设计目标二、Spring Cloud Hytrix解决的主要内容(一)隔离(线程池隔离和信号量隔离)1.线程和线程池线程隔离的好处:线程隔离的缺点2.信号量隔离(Semaphores)(二)优雅的降级...2019-02-14 14:34:52998460
0
-
原创 微服务架构-实现技术之具体实现工具与框架7:Spring Cloud Zuul原理与注意事项
目录一、Spring Cloud Zuul概述二、Spring Cloud Zuul典型基本配置:路由配置和功能配置(一)路由配置:配置简化与规则+路由通配符1.单实例serviceId映射(可不短简化,具体如下)2.单实例url映射3.多实例映射(Zuul默认使用Eureka集成的负载均衡功能,所以若使用该功能需要做如下两件事:见注释)4.forward 本地跳转(针...2019-02-14 14:35:42997514
0
-
原创 微服务架构-实现技术之具体实现工具与框架8:Spring Cloud Config原理与注意事项
目录注:主要只做理论性的总结与分析,相关实战代码会在后面的博客中和github中逐步增加。一、配置中心的由来及选择(一)配置中心由来(二)配置中心要求具备的功能(三)配置中心基本流转图和支撑体系分析 (四)多种配置中心的选择与对比方案二、Spring Cloud Config概述及基本实现方法介绍三、Spring Clo...2019-02-14 14:36:20996431
0
-
原创 微服务架构-以系统方法的前两项为基础进行简单案例分析--订单系统
参考书籍、文献和资料:【1】郑天民. 微服务设计原理与架构. 北京:人民邮电出版社,2018.2019-02-14 14:42:251051612
0
-
原创 微服务架构-实现技术之具体实现工具与框架2:Spring Boot概览与核心原理
目录一、Spring Boot概述1.回顾使用Spring开发WEB应用程序过程2.新一代开发框架的诞生Spring Boot编码方面配置方面部署方面监控方面3.SpringBoot核心功能4.SpringBoot优缺点优点:缺点:5.SpringBoot几个常用的注解二、Spring Boot核心原理@SpringBootApplicati...2019-02-14 14:21:171008812
0
-
原创 微服务架构-实现技术之具体实现工具与框架1:实现需求+实现技术选型
目录一、微服务架构实现需求二、微服务架构实现技术选型:参考标准的两个维度+微服务实现框架对比(一)技术选型的两个参考标准1.核心组件完备性2.关键要素实现难度(二)微服务实现框架对比Spring Boot/CloudDubbogRPC新锐微服务框架:Istio (Service Mesh的设计理念)参考书籍、文献和资料:一、微服务架构实现需求技...2019-02-14 14:18:341015602
0
-
原创 微服务架构分析1:先讲讲单块系统和分布式系统的问题和基本特征
一、单块系统面临的四大问题 二、分布式系统的基本特征和五大技术挑战2018-12-25 19:51:08597735
0
-
原创 微服务架构分析2:微服务架构基础及与现有架构体系的对比
一、微服务基本概念:大小决定高内聚 + 交互决定低耦合 二、微服务架构四大特点和三大切入点 三、微服务与现有架构体系的对比1.微服务架构与SOA 2.微服务架构与ESB 3.微服务架构对比SOA两者的主要差异如下:服务拆分粒度:SOA首先要解决的是异构系统应用的服务化;微服务强调的是服...2018-12-25 19:59:211059216
0
-
原创 微服务架构分析3:构建微服务架构的系统方法
目录一、服务模型二、实现技术三、基础设施四、研发过程参考书籍、文献和资料:构建微服务架构的系统方法主要包括四个方面,具体内容如图所示。一、服务模型服务模型主要由两部分组成:服务建模方法+服务拆分和集成。建模要明确服务的类别以及服务与业务之间的关系,从而明确服务的概念模型并给出服务的统一变现形式,同时,也需要借助诸如领域驱动设计中的界限上下文和领域事件等技术合...2018-12-25 20:02:381045026
0
-
原创 微服务架构分析4:实施微服务架构的优势与技术挑战
目录一、微服务架构实施的前提二、微服务实施的三大模式三、实施微服务架构的优势(一)、六大技术优势(二)、业务与组织优势四、实施微服务面临的挑战(一)、技术架构的挑战(二)、研发过程的挑战参考书籍、文献和资料:一、微服务架构实施的前提如图,Martin Fowler结石的生产率和复复杂度的关系。可以看出:1.当复杂度较小时,采用单块系统的生产率更高,微...2018-12-25 20:08:121044069
0
-
原创 微服务架构服务建模方法+服务拆分和集成1:服务建模的四大切入点
目录一、服务建模切入点一:服务分类(一)、服务的基本类别:工具服务+实体服务+任务服务(二)、从业务维度对服务做层次分类:基础服务+通用服务+定制服务+其他服务二、服务建模切入点二:服务模型(一)、服务的概念模型维度:服务标准+服务级别(二)、服务统一表现形式:服务契约化+文档服务三、服务建模切入点三:服务边界(一)、识别业务领域及边界:通用语言+子域+聚合(二...2018-12-25 20:28:281039371
1
-
原创 微服务架构服务建模方法+服务拆分和集成2:服务拆分的维度和拆分策略
目录一、架构的轮回理论二、服务拆分的维度:业务与数据的AKF扩展立方体分析X轴扩展讲解:Y轴扩展讲解:Z轴扩展讲解:总结:三、服务拆分的两大策略:绞杀者模式+修缮者模式1.绞杀者模式策略2.修缮者模式策略参考书籍、文献和资料:一、架构的轮回理论架构轮回给我们的启示是,将所有的东西放在一个系统中是不好的,软件系统的关注点应该清晰划分,并能通过功能拆分降...2018-12-25 20:37:241038560
1
-
原创 微服务架构服务建模方法+服务拆分和集成3:管理服务的依赖关系+管理服务数据+管理事务边界
目录一、管理服务的依赖关系:构建无环依赖关系1.上移切入点:交互部分抽离2.下移切入点:依赖关系转移重构3.回调切入点:接口或抽象类二、管理服务数据1.微服务中的数据管理策略2.数据管理尝试策略:CQRS模式及与领域驱动相结合三、管理事务边界:微服务架构中推崇打破事务边界实现数据弱一致性参考书籍、文献和资料:一、管理服务的依赖关系:构建无环依赖关系依赖关...2018-12-25 20:44:031034685
0
-
原创 微服务架构服务建模方法+服务拆分和集成4:微服务集成的四种主要方式
目录一、系统集成的四种基本方式1.文件传输(共享)2.共享数据库3.RPC(远程过程调用)4.消息队列二、微服务集成的四种主要方式1.接口集成2.数据集成3.客户端集成4.外部集成三、一些集成方式的分析和讲解参考书籍、文献和资料:一、系统集成的四种基本方式业界关于系统集成存在的驻留模式和工程实践主要有如下四种基本方式:文件传输FT、共享数据库...2018-12-25 20:50:351031145
0
-
原创 微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理
微服务架构的实现首先需要提供一些基础组件,这些基础的功能性组件主要包括服务之间的通信、面向事件驱动的架构设计方法、负载均衡、服务路由、API网关和分布式配置中心等,我们对这六大基本组件进行初步的分析定案。一、服务通信:网络连接+IO模型+可靠性+同步与异步对于微服务而言,网络通信主要关注于网络连接、IO模型、可靠性设计及服务调用方式。1.网络连接一般,基于TCP网络连接有两种基本方...2019-01-03 11:04:501029307
6
-
原创 微服务架构-实现技术之三大关键要素1服务治理:服务注册中心+服务发布与注册+服务发现与调用+服务监控
目录一、服务注册中心:注册中心核心功能+实现策略1.注册中心核心功能2.注册中心实现策略二、服务发布与注册三、服务发现与调用四、服务监控基本思路:日志埋点基本目标:基本定位:基本策略:具体实现:参考书籍、文献和资料:服务治理在面临系统存在大量服务时可以解决基本的三大定位问题:提升服务架构的可扩展性;有效的服务监控和故障定位;对服务的有效划分和路由...2019-02-06 23:42:421017180
4
-
原创 微服务架构-实现技术之三大关键要素2数据一致性:分布式事物+CAP&BASE+可靠事件模式+补偿模式+Sagas模式+TCC模式+最大努力通知模式+人工干预模式
目录一、分布式事物:本地事务和分布式事务(2PC+3PC)+传统分布式事务的问题(一)本地事务和分布式事务(2PC+3PC)(1)两阶段提交协议2PC(2)三阶段提交协议3PC(二)对于微服务,传统分布式事务存在的问题二、CAP理论和BASE思想1.CAP理论一致性Consistency:可用性Availability:分区容错性PartitionToler...2019-02-07 20:03:271015723
0
-
原创 微服务架构-实现技术之三大关键要素3服务可靠性:服务访问失败的原因和应对策略+服务容错+服务隔离+服务限流+服务降级
目录一、服务访问失败的原因和应对策略(一)服务访问失败的4大原因和分类1硬件失败2.分布式环境的固有原因3.服务自身失败4.服务依赖失败(二)服务访问的雪崩效应(三)服务访问失败的应对策略二、服务容错1.Failover2.Failback3.Failsafe4.Failfast5.Forking6.Broadcast三、服务隔离...2019-02-07 20:13:531012993
0
-
原创 微服务架构服务建模方法+服务拆分和集成5:拆分后应对新业务增长处理+持续拆分+如何保证拆对了
目录一、拆分后业务变了增加了怎么办?二、如何安全地持续地拆?三、如何保证拆对了?参考书籍、文献和资料:一、拆分后业务变了增加了怎么办?客户的业务是在变化的,我们对业务的认知也是逐渐的过程,所以Martin Fowler在他的文章中提出,系统的初期建议以单体结构开始,随业务发展决定其是否被拆分或合并。那么这也意味着这样构建的服务在它的生命周期中必然会持续被拆分或合并。那么为了...2018-12-28 19:04:531052357
0