网站架构演变过程 传统架构、分布式架构、微服务架构

SpringCloud中文翻译:https://www.springcloud.cc/spring-cloud-dalston.html

1、网站架构的演变过程

从传统架构(单点应用) →  分布式架构(以项目进行拆分) →  SOA架构(面向服务架构) →  微服务架构

1、传统架构

传统架构其实就是SSH架构或者SSM架构,属于单点应用,把整个业务模块都会在一个项目进行开发,分为MVC架构,会拆分控制层、业务逻辑成、视图层、数据访问层。com.controller/ com.service/ com.dao,

一般只是适于一个人或则小团队开发

缺点:耦合度太高,一旦某个模块导致服务不可用,可能会影响到其他模块

 

2、分布式架构

假如有100个java开发人员,都在同一个项目进行开发,可能会产生什么问题?

1、代码冲突,任务不好分配,容易起冲突问题。

2、分布式架构基于传统架构演变过来

分布式架构基于传统架构演变过来的,将传统的项目以项目模块进行拆分成n多个子模块,比如拆分成会员项目、订单项目、支付项目、优惠券等,每个项目中都有自己独立的数据库、独立的redis等。

会员项目: 登录、注册、修改密码

订单项目: 下单、查询订单

总结: 分布式架构与传统架构区别: 项目粒度分的更加细、慢慢开始适合于互联网公司开发,耦合度降低。

 

maven聚合项目是不是分布式项目?答案:不完全

解释:可以将传统的项目,以maven聚合方式分为3个项目

test_web

test_service

test_dao

但是最终还是打包成一个war包。则不叫分布式项目

互联网公司都是以聚合项目进项开发member_web、order_web

最终区别于打的jar或者war

 

项目表达意思: 包含业务逻辑层和视图层

服务表达意思: 只包含业务逻辑层,不包含视图层

 

前端调用后端都可以通过ajax调用,因为我们后端都是通过http协议的,这个过程都可以理解为rpc的

 

3、SOA微服务架构

SOA也是基于分布式架构演变过来的,SOA架构代表面向服务架构,俗称服务化,可以理解为面向与业务逻辑层。将共同的业务代码进行抽取出来,提供给其他接口进行调用。服务与服务之间通讯采用rpc远程调用技术。

服务概念:将共同的业务逻辑进行拆分,拆分成独立一个项目进行部署,没有视图层

会员前台项目(提供给用户进行操作)(com.member.controller)← SOA架构层(只有业务逻辑层)(com.member.service、com.member.dao)→ 会员后台项目(管理用户操作)(com.member.controller),这两个controller都是通过rpc远程调用技术调用业务逻辑层的

rpc远程调用技术框架: httpclient、springcloud、dubbo、grpc,核心底层socket技术或者netty实现。 大公司都有自己的rpc远程调用技术框架

SOA架构特点: 底层基于SOAP或者ESB(消息总线)实现,底层使用HTTP或者Https协议+重量级XML数据交换格式进行通讯。

在后面的的微服务中,以json格式替代xml。xml非常冗余,很占用宽带

WebService 已经比较老了,除非在银行还在用,(因为系统比较老了,很多项目都是2000年开发出来的项目,架构里面用到的就是WebService,都是XML,现在不好改系统了),底层是采用Http协议+XML(SOAP)

RPC是远程调用技术,两个或多个应用实现远程调用。

SOA架构是面相与服务架构、SOAP是简单对象协议Http+xml混合物

 

4、微服务架构

微服务架构产生的原因

1、首先微服务架构基于SOA架构演变过来的?

SOA架构缺点: 1.依赖于中心化服务发现机制(WebService)  2.因为SOA架构采用SOAP协议(Http+XML),因为XML传输协议比较占用宽带,整个xml报文中有非常大的冗余数据,所以在微服务架构中以json轻量级方式替代xml报文传输。 3.服务管理非常混乱,缺少服务管理和治理设施不完善。所以现在用微服务架构模式

微服务架构模式: 微服务架构是从SOA架构演变过来,比SOA架构粒度上更加精细。让专业的人做专业的事情(更加专注),目的是为了提高效率。每个服务与服务之间互不影响,每个服务必须独立部署(独立的数据库、独立的redis等),微服务架构更加体现轻量级,采用restful风格提供API,也就是Http协议+json格式进行传输,更加轻巧,更加适合于互联网公司敏捷开发、快速迭代产品。

在项目架构中如何保证项目能够支持如下来源访问: 移动端、PC端、微信端、小程序端

微服务架构模式,包含SOA架构

2、面试中微服务架构与SOA架构区别..

1、微服务架构基于SOA架构演变过来,继承SOA框架的有点,在微服务架构中去除SOA架构中的ESB消息总线,采用http+json(restful)进行传输

2、微服务架构比SOA架构粒度更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务与服务之间互不影响,微服务架构中,每个服务必须独立部署,为服务架构更加轻巧,轻量级

3、SOA架构中可能数据库存储会发生共享,微服务强调每个服务都是单独数据库,保证每个服务之间互不影响

4、项目体现特征微服务架构比SOA架构更适合于互联网公司敏捷开发、快速迭代版本,因为粒度非常精细

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值