SpringCloud-微服务

一)什么是微服务

微服务:
微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。
微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构
如果分要下个的定义的话:微服务架构就是将的一个完整的项目按照功能模块进行拆分,按照不同的模块进行应用的部署,微服务架构中每个模块是高内聚的,能够独立运行。微服务是一种架构风格。一个大型复杂的项目,应该由多个微服务模块组成,模块之间是松耦合的,

常见的架构风格

单体架构
组件模型架构
分层架构(MVC)
面向服务架构(SOA)

微服务的特点

1.系统由多个服务组成
2.每个服务可以单独独立部署
3.每个服务之间是松耦合的,服务内部是高内聚的(高内聚就是每个服务只关注一个的功能)
4.单个服务代码量少,启动速度快
4.微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行,他承认这并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性

微服务的优缺点:
优点
1):测试部署容易
由于每个模块独立,只需要测试独立模块即可
2):可伸缩性强
模块需要扩展的时候,只需要对的需要扩展的单独的模块进行扩展。而无需关注其他模块
3):可靠性强
项目不好意因为其中的一个模块宕机而导致整个系统的不能使用
4):跨域元灵活
我们可以根据我们的需要,使用不用的语言进行开发
5):团队协作
在进行团队开发的时候,我们可以根据不同的模块区分不同的团队,在进行项目开发的时候,降低程序员的学习成本和沟通成本。
6):系统迭代容易
在进行功能扩展的时候,只需要对单独的模块进行迭代,不需要进行骨干的合并。迭代只需要关注具体的模块
缺点
1):运维成本高
如果项目模块多的话,每个模块需要独立的部署,那么对运维部署就是很大的挑战了
2):接口兼容多版本
需要和其他模板之间的版本兼容问题,接口更新迭代大。微服务之间通过接口进行通信。如果修改某一个微服务的API,可能所有使用了该接口的微服务都需要做调整。很多服务可能都会使用到相同的功能,而这个功能并没有达到分解为一个微服务的程度,这个时候,可能各个服务都会开发这一功能,从而导致代码重复。
重复劳动
3):分布式系统的复杂性
会引起服务的,容错,负载均衡等问题,使用微服务架构是分布式系统。对于一个分布式系统,系统容错,网络延迟,分布式事务等都会带来巨大的挑战。
4):分布式事务

二)常见的架构之前的区别

在这里插入图片描述

1)MVC架构
MVC 架构 其实 MVC 架构就是一个单体架构。 代表技术:Struts2、SpringMVC、Spring、Mybatis 等等。
2)RPC架构
RPC(Remote Procedure Call):远程过程调用。他一种通过网络从远程计算机程序上请求 服务,而不需要了解底层网络技术的协议。 代表技术:Thrift、Hessian 等等
3)SOA架构
SOA(Service oriented Architecture):面向服务架构 ESB(Enterparise Servce Bus):企业服务总线,服务中介。主要是提供了一个服务于服务 之间的交互。 ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控 告急等等。 代表技术:Mule、WSO2
4)微服务
微服务就是一个轻量级的服务治理方案。 代表技术:SpringCloud、dubbo 等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值