最好的微网站建设价格,查看注册过的网站,公司注册域名查询,微信小程序开发环境搭建一、谈谈你对微服务的理解#xff0c;微服务有哪些优缺点#xff1f;微服务是由Martin Fowler大师提出的。微服务是一种架构风格#xff0c;通过将大型的单体应用划分为比较小的服务单元#xff0c;从而降低整个系统的复杂度。优点#xff1a;1、服务部署更灵活#xff1…一、谈谈你对微服务的理解微服务有哪些优缺点微服务是由Martin Fowler大师提出的。微服务是一种架构风格通过将大型的单体应用划分为比较小的服务单元从而降低整个系统的复杂度。优点1、服务部署更灵活每个应用都可以是一个独立的项目可以独立部署不依赖于其他服务耦合性降低。2、技术更新灵活在大型单体应用中技术要进行更新往往是非常困难的。而微服务可以根据业务特点灵活选择技术栈。3、应用的性能得到提高 大型单体应用中往往启动就会成为一个很大的难关。而采用微服务之后整个系统的性能是能够得到提高的。4、更容易组合专门的团队 在单体应用时团队成员往往需要对系统的各个部分都要有深入的了解门槛是很高的。而采用微服务之后可以给每个微服务组建专门的团队。5、代码复用 很多底层服务可以以REST API的方式对外提供统一的服务所有基础服务可以在整个微服务系统中通用。缺点1、服务调用的复杂性提高了网络问题、容错问题、负载问题、高并发问题......2、分布式事务尽量不要使用微服务事务。3、测试的难度提升了。4、运维难度提升单体架构只要维护一个环境而到了微服务是很多个环境并且运维方式还都不一样。所以对部署、监控、告警等要求就会变得非常困难。二、SpringCloud和SpringCloudAlibaba都有哪些组件都解决了什么问题SpringCloud提供了构建微服务系统所需要的一组通用开发模式以及一系列快速实现这些开发模式的工具。通常所说的SpringCloud是指SpringCloud NetFlix他和SpringCloudAlibaba都是SpringCloud这一系列开发模式的具体实现。SpringCloud NetFlixSpringCloud Alibaba三、分布式事务如何处理怎么保证事务一致性误区 分布式事务 Seata 分布式事务 就是要将不同节点上的事务操作提供操作原子性保证。同时成功或者同时失败。分布式事务第一个要点就是要在原本没有直接关联的事务之间建立联系。1、HTTP连接 最大努力通知。 -- 事后补偿。2、 MQ 事务消息机制。3、Redis 也可以定制出分布式事务机制。4、Seata : 是通过TC来在多个事务之间建立联系。 两阶段AT XA 就在于要锁资源。三阶段TCC 在两阶段的基础上增加一个准备阶段。在准备阶段是不锁资源的。SAGA模式 类似于熔断。 业务自己实现正向操作和补偿操作的逻辑。四、怎么拆分微服务怎样设计出高内聚、低耦合的微服务什么是中台拆分微服务的时候为了尽量保证微服务的稳定会有一些基本的准则1、微服务之间尽量不要有业务交叉。2、微服务之前只能通过接口进行服务调用而不能绕过接口直接访问对方的数据。3、高内聚低耦合。高内聚低耦合是一种从上而下指导微服务设计的方法。实现高内聚低耦合的工具主要有 同步的接口调用 和 异步的事件驱动 两种方式。有没有了解过DDD领域驱动设计什么是DDD 在2004年由Eric Evans提出了 DDD是面对软件复杂之道。Domain-Driven- Design –Tackling Complexity in the Heart of Software Martin Fowler - 贫血模型 ——》 贫血失忆症。 充血模型MVC架构 -》 领域优先的四层架构大泥团 不利于微服务的拆分。大泥团结构拆分出来的微服务依然是泥团机构当服务业务逐渐复杂这个泥团又会膨胀成为大泥团。DDD只是一种方法论没有一个稳定的技术框架。DDD要求领域是跟技术无关、跟存储无关、跟通信无关。中台和微服务有什么关系中台这个概念是由阿里在2015年提出小前台大中台战略思想。 superCell 《皇室战争》《部落冲突》所谓中台就是将各个业务线中可以复用的一些功能抽取出来剥离个性提取共性形成一些可复用的组件。 盒马鲜生、团购大体上中台可以分为三类 业务中台、数据中台和技术中台。大数据杀熟-数据中台 电商 收银中台 支付风控中台中台跟DDD结合 DDD会通过限界上下文将系统拆分成一个一个的领域 而这种限界上下文天生就成了中台之间的逻辑屏障。DDD在技术与资源调度方面都能够给中台建设提供不错的指导。DDD分为战略设计和战术设计。 上层的战略设计能够很好的指导中台划分下层的战术设计能够很好的指导微服务搭建。在目前阶段DDD还大都处在小范围实验的阶段。五、你的项目中是怎么保证微服务敏捷开发的开发运维一体化。敏捷开发 目的就是为了提高团队的交付效率快速迭代快速试错。每个月固定发布新版本以分支的形式保存到代码仓库中。快速入职。任务面板、站立会议。团队人员灵活流动同时形成各个专家代表。测试环境- 生产环境 -》 开发测试环境SIT、集成测试环境、压测环境STR、预投产环境、生产环境PRD。文档优先。晨会、周会、需求拆分会。微服务的链路追踪、持续集成、AB发布要怎么做链路追踪1、基于日志。 形成全局事务ID落地到日志文件。 filebeat- logstash-Elasticsearch 形成大型报表。2、基于MQ往往需要架构支持。经过流式计算形成一些可视化的结果。持续集成SpringBoot maven pom -build - shell ; Jenkins。AB发布1、蓝绿发布、红黑发布。 老版本和新版本是同时存在的。2、灰度发布、金丝雀发布。