(五)微服务面试—什么是微服务架构

为什么要使用微服务?

随着互联网的快速发展,各行各业都在用互联网。互联网已经离不开人们的形形色色。随着越来越多的用户,业务场景也愈来愈复杂。
传统的单体架构已经很难满足互联网技术发展的要求,代码可维护性扩展性和可读性降低,维护成本的提高都是驱动微服务的发展趋势。

单体架构是什么?到底存在哪些不足?

单体架构是经典的三层架构:表示层,业务逻辑层,数据访问层。把这三层放在一个工程中最终编译打包部署到一台服务器上。在应用的初始阶段单体架构的开发速度和运维难度还是服务器成有着显著的优势,在一个产品前景不明确的初始阶段选择单体结构是最明智的。
不足:

  1. 业务越来越复杂,单体应用的代码量越来越大可读性可维护下可扩展性降低,新人接手时间越来越长,业务的扩展带来的代价越来越大。
  2. 随着用户的越来越多,程序承受的并发越来越高但能力有限。
  3. 测试难度加大,随着需求的变动改造带来不必要的影响测试覆盖力度加大甚至测试不全面导致问题增加。
  4. 系统资源浪费、部署效率低下。

什么是微服务?

微服务架构:是一个分布式系统,它是将单体应用划分成小的服务单元,微服务之间使用HTTP的API进行访问操作。每个微服务都独自运行在自己的进程中独立部署,而且每个微服务可以使用单独的语言开发以及不同的数据库存储。
总结几点好处

  1. 微服务可以根据业务模块来划分,服务边界明确并解耦。
    根据业务划分微服务,独立部署独立运行,服务之间没有任何耦合有良好的扩展性和复用性。
  2. 通过HTTP通信。
    微服务单元通信使用HTTP这种通信机制,更多是RESTFul API,通信机制跟平台语言无关每个微服务可以使用独立的语言。
  3. 微服务的数据库独立。
    分库分表,正因为与单体架构一样都在一个数据库里面就会给数据库造成压力最好的办法及时分库分表。
  4. 微服务可以做到自动化部署。
    每个独立的微服务都可以进行独立部署和运行(Jenkins,DevOps等项目管理平台实现自动化部署)
  5. 分布式服务集中化管理。
    服务的管理中心对微服务集中化管理,Eureka和Zookeeper和Consul。
  6. 熔断机制
    微服务之间相互依赖,如果其中一个服务超时或者网络延迟无法正常处理业务带来的影响,在高并发下会导致线程阻塞使该服务挂掉最终依赖该服务的微服务也会无法正常处理和运行导致整个系统瘫痪不可用,这就是“雪崩效应”。为了解决这一问题采用“熔断机制”。
    “熔断机制”:即微服务故障时请求失败响应超过设定的阀值时自动开启熔断器则该服务不会继续处理业务,执行时快速响应失败结果反馈。熔断器还可以自我修复经过一段时间后熔断器半打开尝试处理部分业务如果处理成功就会彻底关闭熔断器,否则继续快速响应失败结果。

微服务的不足

  1. 微服务构建十分复杂不止是开发需要付出时间学习
  2. 分布式事物控制数据的一致性问题
  3. 运维部署维护层面也十分重要
  4. 通信成本高
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值