微服务是什么_1|学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 快速学习微服务是什么_1

开发者学堂课程【微服务框架 Spring Cloud 快速入门微服务是什么_1】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/614/detail/9327


微服务是什么_1


目录:

一、微服务是什么?

二、总结

 

一、微服务是什么?

论文地址:

https://martinfowler.com/articles/microservices.html

马丁弗勒大概在2014年左右,提出了微服务架构这个概念

微服务是马丁弗勒提出的、他是微服务的主创人和微服务这个概念的作俑者。他说:就目前而言,对于微服务业界并没有一个统一标准的定义(While there is no precise definition of this architectural style)

现在也没有一个定论,慢慢迭代以后会最终出现微服务是什么,但是任何东西不能没有一个最终的说法,至少截至到现在,大致根据马丁弗勒对于微服务的定义有了一个清晰的认知。

但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

它提倡将单一应用程序划分成一组小的服务这句话的意思是:在软件开发之前,粗略的来说经历了三个阶段。

第一种单机版俗称为 All  In  One,在 eclipse 里以及开发工具工作空间里面只有一个工程,比方说有一个Tmall这样一个工程,里面所有东西都加载一起,com.atguigu.service,这个 service 下有大量接口有商品的、交易的、积分的、订单的等等,这个时候单机版随着互联网时代的崛起并发量越来越大,都明白天下大事合久必分,分久必合。往后可以发现单机版变成了分布式。之前有商品的、交易的、积分的、订单的分在一起,或多或少不方便,为了项目的耦合度更低、职责更加明确,有这样一个概念,专业的事情交给专业的人来做,尽量降低耦合。

商品,交易,积分,订单在一起,会指向修改订单部分,但是因为四个模块在一起就会影响其他三个模块。会把集中在一块的 all in one 变成四个模块,每一个模块可以按照业务来进行拆分就可以看成一个微服务。例如之前所做的短信模块,登录需要发送短信,下订单需要发送短信,调用支付接口支付金额需要发送短信,很多个模块都需要发送短信,把这个公共的模块提取出来,把发短信做成一个小模块,只做一件事形成微服务。

Double、微服务、cloud 的区别有哪些?其中最重要的就是它们之间的通信机制。Double 是基于 RPC 远程过程调用,而微服务、cloud 是基于 REST 调用,这两个是本质的区别。

结合网站的论文,对马丁弗勒对微服务的定义进行翻译。只需要有一个概念,就是第一单一应用 all in one 分成一组小的服务,第二每一次都是独立的进程。

 

二、总结

技术维度理解:微服务化的核心就是将传统的一站式应用,根据业务拆分成一个个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。

相关文章
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
174 0
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
299 0
|
7月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
187 1
|
7月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
156 1
|
7月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
107 1
|
7月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
778 1
|
7月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
876 0
|
7月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
1026 0
|
7月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
107 0
|
7月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
150 0