【Spring全家桶系列】- 微服务是什么(小白释义)

一. 微服务的来源

“微服务”一词来源于 Martin Fowler 的《Microservices》一文,这篇文章开启了人们关于微服务的思考及实践。

随着技术的发展,传统架构开始显现大量的问题,比如:

项目编译、启动速度慢;

迭代不够灵活;

项目组职责、权限不清

项目功能扩展困难

项目部署扩展困难;

项目新成员上手困难;

数据库庞大,引起一系列问题;

为了解决传统架构的问题,人们想出了各种各样的解决方案:

前后端完全分离:基于MVC(视图View、模型Model、控制器Controller),及三层结构(视图层、逻辑实现层、持久层(也叫数据库访问层)), 后端使用API接口,前端进行调用,有时,前后端使用不同的技术,可能后端为java,前端为.NET,这是有段时间很流行的架构;

将不同的业务拆分出来:如将用户管理、产品管理等与电商拆分开,但是造成大量重复代码等;

SOA:面向服务架构

最终找到了微服务的解决方案。

二. 什么是微服务

“微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。”引自百度百科。

从字面意义上来说,微就是小,甚至曾有人说每个功能都可以作为一个微的项目独立存在,服务就是以业务为中心进行拆分,从而将一个大而全的应用拆分为可以独立开发,独立部署,独立测试,独立运行的一组小的应用,并且使用轻量级,通用的通信机制进行组与组之间的通信。

三. 微服务的优势是什么?

可扩展性:每个微服务都可以独立进行横向或纵向扩展;

升级性:每个微服务都可以独立进行服务升级、更新,不用依赖于其它服务,开发人员可以快速完成升级;

易维护性:每个微服务的代码均只专注于完成该业务范畴的事情,因此微服务项目代码数量将减少,从而提高了代码的可读性,及开发效率;

语言无关性:可以选用自己最熟悉的语言和框架来完成他们的微服务项目;

故障和资源的隔离性:在系统中出现严重故障时,如内存泄露、软件崩溃等,将只会影响单个微服务;

基于“云”的系统架构设计:基于微服务架构设计风格,我们可以构建出“云”端的分布式部署集群;

四. 微服务的设计原则

  • AKF扩展拆分

AKF可扩展立方,如下图。这个立方体中沿着三个坐标轴设置分别为X,Y,Z。

X轴:关注水平扩展,也就是容量不足,机器补足,可用性不好,机器补足,曾在网上看到一句话:“世界上没有什么事是一顿烧烤解决不了的,如果有,那就两顿”,很好的描述了这种方式。

Y轴:基于不同的业务进行拆分,从而将庞大的系统拆分成几个小的服务,比如客户管理、产品管理等。

Z轴:基于独特的需求,进行系统划分。比如,按照PC端与移动端进行分组的方式,或者按照商品热度,如秒杀品等。

  • 后端分离

前端只负责显示,及样式等,通常使用ajax调用后端API接口, 后端为服务提供者,可供多个前端的消费者进行调用。

  • 状态服务

该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的。

  • Rest通讯风格

REST 定义了一组体系架构原则,它是一种WEB应用的架构风格。

Restful API是如今最常用的API,它使用URL定位资源位置,使用GET,HEAD,POST,PUT,PATCH,DELETE进行操作,用响应状态码表示操作结果。

五. 流行的微服务框架

Spring Cloud

Dubbo/Dubbox

 

--------推荐视频-------------

玩转Spring Data JPA&Spring Data JDBC

玩转 Spring 全家桶

--------推荐内容-------------

系统上线后雪崩!让我们来学习 Spring Cloud Hystrix 及监控来解决雪崩问题

10 分钟教会你 Spring Boot 集成 Thymeleaf、MyBatis 完成产品的增删改查

【高阶用法】一个实例学会 Spring Cloud 的注册中心 Eureka的使用

Spring Cloud gateway与注册中心Eureka的完美集成

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT职涯

你的鼓励将是我最最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值