11 2022 档案
摘要:1 依赖管理问题:(1)为什么导入dependency时不需要指定版本? 在Spring Boot入门程序中,项目pom.xml文件有两个核心依赖,分别是spring-boot-starter-parent和spring-boot-starter-web,关于这两个依赖的相关介绍具体如下:1.spr
阅读全文
摘要:一、数据库驱动的微服务实现 1.使用Spring Data JPA实现数据库驱动微服务 聚合、实体和值对象 随着对象关系映射(Object-Relational Mapping,ORM)以及 Hibernate这样的框架的流⾏,数据库驱动的应⽤的实现变得简单了很多。对象关系映射指的是对象模型和数据库
阅读全文
摘要:在微服务架构的设计过程中,首先需要通过统一的API网关对外提供服务,各微服务之间通过REST或gRPC协议通信。单个微服务可以调用多个不同的微服务来完成自己的功能,同时每个微服务都需要有自己独立的数据存储。微服务的部署、运维等需要通过自动化的手段来实现。 服务注册中心 一个服务可以有多个实例,但如何
阅读全文
摘要:1.服务容器负责启动,加载,运行服务提供者; 2.服务提供者在启动时,向注册中心注册自己提供的服务; 3.服务消费者在启动时,向注册中心订阅自己所需的服务; 4.在注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者; 5.服务消费者,从提供者地址列表中,基于
阅读全文
摘要:1.质量保证体系 测试策略 1.分层 2.自动化 在微服务架构下,提升自动化测试的覆盖率对测试环境、测试技术和测试方法都提出了新的要求,具体如下。 ● 对于测试环境,需要保证有专门的人员进行维护,避免当需要测试的时候没有环境可用,以及当环境出现问题时不知道找谁维护。 ● 对于测试技术,我们需要根据不
阅读全文
摘要:1 什么是可观察性 度量你的基础设施、平台和应用程序,以了解它是如何运行的。 可观察性可以帮助我们理解和度量系统运行状态,判断是否有可优化的空间,以及定位如下问题。 每个服务的状态如何,是否在按预期处理请求?请求为什么会失败?客户请求都经过了哪些服务,调用链上是否有性能瓶颈? 至于如何使一个系统具有
阅读全文
摘要:1.服务网格的功能 流量管理:这是服务网格最核心的功能。比如动态路由,可以通过配置路由规则来动态确定要请求的服务。请求需要被路由到生产环境还是预发布环境,测试版本还是运行版本,仅针对登录用户还是全部用户?所有这些路由规则都可以以声明式方式进行配置。策略:为应用添加一些请求控制策略,比如黑/白名单、限
阅读全文
摘要:1.Serverless定义 Functions-as-a-Service(FaaS):函数即服务,开发者以一个函数(function)为入口,将业务逻辑编程打包上传,同时指定触发该函数的事件,如一个HTTP请求。当无事件发生时,函数不会执行且不产生费用。当指定的事件发生时,这些函数即被触发并执行,
阅读全文
摘要:1.自下而上 DDD自下而上的领域建模通常采用事件风暴,通过头脑风暴列出所有可能的业务行为和事件,然后找出产生这些行为的领域对象。通过事件风暴来梳理业务和抽象,在事件风暴中根据一些业务操作和行为找出实体或值对象,进而将业务关联紧密的实体和值对象进行组合,构成聚合。再根据业务语义将多个聚合划定在同一个
阅读全文
摘要:战略设计会控制和分解战术设计的边界与粒度;战术设计则从实证角度验证领域模型的有效性、完整性和一致性,进而以演进的方式对战略设计进行迭代。 在战略设计阶段,经过需求分析获得清晰的问题领域,通过对问题领域进行分析和建模,识别限界上下文,划分出相对独立的领域,并通过上下文映射建立它们之间的关系,辅以面向领
阅读全文
摘要:1.领域 领域指的是范围或边界,在研究和解决业务问题时,DDD会按照一定的规则将业务领域进行细分。当领域被细分到一定程度后,DDD会将问题范围限定在特定的边界内(也就是领域),并在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。DDD的领域指的就是边界,它确定了要解决的业务问题
阅读全文
摘要:1.领域模型边界不清晰,无法支持分布式架构:领域建模阶段往往使用面向对象的建模方式,缺少对象间的明确边界。将此方法运用到SOA架构或微服务架构中以后,不同的类将会被分散在不同的服务中,因此需要尽量避免跨越服务边界的对象引用。 比较通用的做法是独立设计、开发每个服务。 对于需要相互协作的服务,由于没有
阅读全文