SpringCloud学习系列之一:基础概念介绍

  • 到底什么是微服务

  • SpringCloud组件介绍

一、到底什么是微服务


1、微服务的定义

"Microservice" 即微服务,在Martin Fowler的博文中介绍了微服务的具体概念。它是一种系统架构的设计风格。

以下是维基百科关于微服务的解释和说明:

微服务的起源是由 Peter Rodgers 博士于 2005 年度云端运算博览会提出的微 Web 服务(Micro-Web-Service) 开始,Juval Löwy 则是与他有类似的前导想法,将类别变成细粒服务 (granular services),以作为 Microsoft 下一阶段的软件架构,其核心想法是让服务是由类似 Unix管道的存取方式使用,而且复杂的服务背后是使用简单 URI 来开放界面,任何服务,任何细粒都能被开放 (exposed)。这个设计在 HP的实验室被实现,具有改变复杂软件系统的强大力量。

2014年,Martin Fowler 与 James Lewis共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTP API 通讯。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的编程语言与数据库等元件实作。

它以具备单一责任与功能的软件单元为基础,每个服务都有自己的独立进程,它们通过模块的方法将它们进行组合,构成大型复杂的应用程序,每个独立运行的进程可以采用不同的编程语言实现,同时它们之间采用轻量级的通讯方式(HTTP API)实现各个服务之间的通信。这些服务可以被独立部署,同时它们都是围绕着业务功能进行构建的。

如果可以进行类比的话微服务就像一个人身体当中的各个器官,而人就是一个复杂的系统平台。每个器官都各司其职,完成自己的使命,如胃负责消化食物、肝部负责解毒、肾负责生成尿液、排泄代谢废物的功能等等。正是因为各个器官的相互协作,才构成人这个复杂系统。

2、微服务带来的问题

(1)运维复杂性

大量微服务构成庞大的分布式应用,这些微服务分布在多台服务器中,当分布式系统较为复杂时,所带来的软件运维的人力物力成本的提高。

(2)数据一致性

由于微服务的大多数进行了分布式部署,那么分布在各个服务器中的数据如何保证一致性成为了难题;

(3)分布式系统的复杂性

各个微服务可以独立部署,那么在分布式环境下,接口调用、日志追踪、分布式事务以及异步信息等带来的复杂性更高。

分布式架构示意图所示:

在这里插入图片描述

二、SpringCloud组件介绍


SpringCloud是Java开发分布式系统的开发套件,对分布式系统中需要的各种组件进行了封装。开发人员可以方便的以此作为基础进行开发,方便的构建分布式服务。主要提供了服务治理、断路器、控制总线、负载均衡等等,主要包括以下几个组件:

(1)SpringCloud Eureka---------------服务治理(服务自动化治理与发现)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

既已说到spring cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?

就个人而言,对于整个微服务架构,像RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。

image

如果觉得图片不够清晰,也可来找小编分享原件的xmind文档!

且除此份微服务体系大纲外,我也有整理与其每个专题核心知识点对应的最强学习笔记:

  • 出神入化——SpringCloudAlibaba.pdf

  • SpringCloud微服务架构笔记(一).pdf

  • SpringCloud微服务架构笔记(二).pdf

  • SpringCloud微服务架构笔记(三).pdf

  • SpringCloud微服务架构笔记(四).pdf

  • Dubbo框架RPC实现原理.pdf

  • Dubbo最新全面深度解读.pdf

  • Spring Boot学习教程.pdf

  • SpringBoo核心宝典.pdf

  • 第一本Docker书-完整版.pdf

  • 使用SpringCloud和Docker实战微服务.pdf

  • K8S(kubernetes)学习指南.pdf

image

另外,如果不知道从何下手开始学习呢,小编这边也有对每个微服务的核心知识点手绘了其对应的知识架构体系大纲,不过全是导出的xmind文件,全部的源文件也都在此!

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
-1713328894853)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值