系统架构演变与服务调用方式

系统架构演变和服务调用方式

1.系统架构演变
1.1集中式架构

将所有的功能部署在一个应用中,以减少部署节点和成本
在这里插入图片描述
优点:

  1. 系统开发速度快
  2. 维护成本低
  3. 适用于并发较低的系统

缺点:

  1. 代码耦合度高,后期维护困难
  2. 无法对不同模块进行针对性优化
  3. 无法水平扩展
  4. 单点容错率低,并发能力差
1.2 垂直拆分架构

根据业务功能对系统进行拆分
在这里插入图片描述
优点:

  1. 系统拆分实现了流量分担,解决了并发问题
  2. 可以针对不同模块进行优化
  3. 方便水平扩展,负载均衡,容错率高

缺点:

系统间相互独立,会有许多重复开发工作,重用率低,影响开发效率

1.3 分布式服务

将核心业务抽取出来,作为独立的服务
在这里插入图片描述
优点:

将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率
缺点:
系统间耦合度变高,调用关系错综复杂,难以维护

1.4 面向服务架构(SOA)

一种设计思想,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中,各个服务之间通过网络调用

在这里插入图片描述
优点:

  1. 重复功能或模块抽取为服务,提高开发效率
  2. 可重用性高
  3. 可维护性高
    缺点:
  4. 各系统间业务不同,很难确定功能或模块是重复的
  5. 抽取服务的粒度大
  6. 系统和服务之间耦合度高
1.5微服务架构

使用一套小服务来开发单个应用的方式或途径,每个服务基于单一业务能力构建,运行在自己的进程中,并且使用轻量级机制通信,通常是HttpAPI

在这里插入图片描述
优点:

  1. 服务拆分粒度更细,有利于提高开发效率
  2. 可以针对不同服务制定对应的优化方案
  3. 使用与互联网时代,产品迭代周期更短

缺点:

  1. 粒度太细导致服务太多,维护成本高
  2. 分布式系统开发的技术成本高,对团队的挑战大

微服务的特点:

  1. 单一职责:微服务中每一个服务都对应唯一的业务能力
  2. 微:微服务的服务拆分粒度很小
  3. 面向服务:每个服务都要对外暴露REST风格服务接口API
  4. 自治:服务间互相独立,互不干扰
2.服务调用方式
2.1 RPC和HTTP

常见的远程调用方式:

  • RPC: Remote Procedure Call 远程过程调用
    RPC基于Socket,工作在会话层,自定义数据格式,速度快,效率高
    早期的WebService,现在的dubbo都是RPC的典型代表
  • HTTP:一种网络传输协议,基于TCP,工作在应用层,规定了数 据传输的格式,消息封装臃肿,但是对服务提供方和调用方没有任何技术限定,自由灵活
2.2HTTP客户端工具
  • HttpClient
  • OKHttp
  • URLConnection

Spring对这些客户端工具进行了封装,提供了一个工具类叫做RestTemplate,可以实现对象与json的序列化与反序列化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值