栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

微服务架构

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微服务架构

微服务架构演变 传统架构

传统的架构,也就是为单点应用,也就是大家在早期所学习的JavaEE知识SSH或者SSM架构模式,会采用分层架构模式:数据库访问层、业务逻辑层、控制层,从前端到后台所有的代码都是一个开发者去完成。

优点: 开发简单、运维简单
缺点: 该架构模式没有对我们业务逻辑实现拆分,所有的代码都要写入到同一个项目中,只适合小公司开发团队或者个人开发。不适合团队模式协作开发。
如果该系统一个模块出现不可用、会导致整个系统无法使用。

分布式架构模式

分布式架构模式是基于传统的架构模式演变过来,将传统的单点项目根据业务模块实现拆分、会拆分为会员系统、订单系统、支付系统、秒杀系统等。 从而降低我们项目的耦合度,这种架构模式开始慢慢的适合于互联网公司开发团队。

SOA面向服务架构

SOA面向服务架构就是基于我们的分布式架构模式演变过来的。俗称服务化,也就是面向与接口开发。

SOA架构模式也称作为:面向服务架构模式、俗称面向与接口开发,将共同存在的业务逻辑抽取成一个共同的服务,提供给其他的服务接口实现调用、服务与服务之间通讯采用rpc远程调用技术

SOA架构模式特点:

  1. SOA架构通讯中,采用XML方式实现通讯、在高并发下通讯过程中协议存在非常大冗余性,所以在最后微服务架构模式中使用JSON格式替代了XML。
  2. SOA架构模式实现方案为WebService或者是ESB企业服务总线 底层通讯协议SOAP协议(Http/https + XML)实现传输。


SOA架构模式存在哪些缺点:

  1. 采用SOAP协议实现通讯,xml传输非常重,效率比较低。
  2. 服务化管理和治理不够完善。
  3. 依赖与中心服务发现机制。
  4. 不适合于前后端分离的架构模式。
微服务架构

基本概念:
微服务架构模式是从SOA架构模式演变过来, 比SOA架构模式粒度更加精细,采用前后端分离的架构模式,让专业的人去做专业的事情(专注),目的是提高效率,每个服务与服务之间互不影响,微服务架构中每个服务必须独立部署、互不影响,微服务架构模式体现轻巧、轻量级、适合于互联网公司开发模式。

微服务架构倡导应用程序设计程多个独立、可配置、可运行和可微服务的子服务。服务与服务通讯协议采用Http协议,使用restful 风格API形式来进行通讯,数据交换格式轻量级json格式通讯,整个传输过程中,采用二进制,所以http协议可以跨语言平台,并且可以和其他不同的语言进行相互的通讯,所以很多开放平台都采用http协议接口。

微服务架构与SOA架构的不同
  1. 通讯协议:微服务架构基于 SOA 架构 演变过来,继承 SOA架构的优点,在微服务架构中去除 SOA 架构中的 ESB 企业服务总线(ESB企业服务总线:解决多系统之间跨语言无法实现通讯的问题,对我们数据协议实现转换,可以提供可靠的消息传输。),采用 http+json(restful)进行传输。
  2. 服务拆分力度:微服务架构比 SOA 架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务于服务之间互不影响,微服务架构中,每个服务必须独立部署,微服务架构更加轻巧,轻量级。
  3. SOA 架构中可能数据库存储会发生共享,微服务强调独每个服务都是单独数据库,保证每个服务于服务之间互不影响。
  4. 迭代:项目体现特征微服务架构比 SOA 架构更加适合与互联网公司敏捷开发、快速迭代版本,因为粒度非常精细。
微服务架构中存在的问题

1、分布式事务解决方案(rabbitmq/rocketmq/lcn(已经淘汰)/ Seata),最终一致性概念。
2、分布式任务调度平台(XXL-Job、阿里Scheduler、elastic-job)
3、分布式服务注册中心 eureka、Zookeeper、consule、nacos等。
4、分布式日志采集系统ELJ+Kafka
5、分布式服务追踪与调用链Zipkin等。
6、分布式配置中心(spring cloud config、携程apollo、disconfig、nacos)

非常重要的概念:独立部署、可配置、动态化。

SpringCloud

SpringCloud并不是rpc远程调用框架,而是一套全家桶的微服务解决框架,理念就是解决我们在微服务架构中遇到的任何问题。

Eureka:服务治理
Hystrix:服务保护框架
Ribbon:客户端负载均衡器
Feign:基于ribbon和hystrix的声明式服务调用组件(rpc远程服务调用)
Zuul: 网关组件,提供智能路由、访问过滤等功能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/912927.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号