深圳幻海软件技术有限公司 欢迎您!

微服务之SpringCloud(一)

2023-03-25

一、微服务1.1微服务是什么微服务:面向服务开发(SOA:Service-OrientedArchitecture)的一种落地架构.是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦,并提供更加灵活的服务支持原则:1.分而治之2.各司其职3.服务的高可用和可扩展性微服务其实就

一、微服务
1.1 微服务是什么
微服务:面向服务开发(SOA:Service-Oriented Architecture)的一种落地架构.是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦,并提供更加灵活的服务支持
原则:
1.分而治之 2.各司其职 3.服务的高可用和可扩展性
微服务其实就是将一个应用按照功能模块进行拆分,拆分为不同的服务,服务之间通过http请求完成调用
1.2 微服务特点
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。
微服务这一概念出现于2012年,是因软件作者Martin Fowler而流行,他承认这并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。
从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布式架构--->SOA架构--->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。
1.3 微服务的优缺点

优点:
将应用拆分,便于应用代码维护,降低开发难度,减低耦合
以前所有的功能代码都耦合在一起,如果有一个微小的bug所有功能模块都要打包升级,耦合严重开发人员开发一个功能,也要对所有其他的代码熟悉,如果不熟悉就可以导致其他模块不能使用
改变:
如果应用拆分,每一个工程师都维护一个模块代码,升级升级某一部分,降低耦合,降低开发难度,应用拆分可以多实例部署,大大提高并发能力商品模块并发量很高,可以多部署几台商品模块即可 
坏处:
模块过多,应用过多,需要专门的运维同学去负责这些模块运行发布升级,运维成本高
结论:
所以在用户量少或业务简单时,都用单机或者垂直架构部署,当用户量很大或者业务复杂时,就需要微服务
1.3 微服务解决方案
Dubbo(阿里巴巴,开源到apache):2012面世,2014停更;2015底阿里巴巴宣布继续更新。Dubbox(即Dubbo eXtensions,当当网基于Dubbo的扩展)
jd-hydra(京东基于Dubbo的扩展,没有开源)
Spring Cloud(Spring)2016年(曾经是SpringCloud Netfiex 现如今是SpringCloud Aliababa)
ServiceComb(华为,开源到apache,在公司内部叫cse) 2017年
Lstio(服务网格化 由谷歌、IBM 与 Lyft合作开源)(uml.org.cn/wfw/201909063.asp),2017年5月发布
HSF(阿里内部使用的,面向企业收费) 

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览108492 人正在系统学习中