手牵手一起学Springcloud(1)微服务的理解

简介: 这篇文章将从以下几个角度来学习Springcloud入门的一些相关知识。1、微服务是什么?2、微服务和微服务架构的区别是什么?3、微服务技术有什么?4、微服务的优缺点是什么?5、为什么选择Springcloud作为微服务架构?在写本系列文章之前,我也看了很多网上的大佬那些微服务系列的文章,他们写的都非常好,别人问我关于一些微服务的技术文章时,我也都会把那些我认为写的好的文章推送给他们,但是存在一个问题,那就是刚刚接触微服务的同学,一开始觉得写的通俗易懂而且确实很简单,但是越往后看越看不懂。因此才萌生出自己写一套循序渐进的文章。

一、从单体结构说起


本来想以自己的项目为例,但是由于涉及一些学校不能外传的信息,所以换一个常见的例子。我们以餐厅卖饭为例

v2-c0fb8e680d36f890e1772a6a2d20b7f5_1440w.jpg

从上图我们会发现,收银、做饭、洗碗等操作都由小张一个人完成。随着服务项目的不断复杂,顾客人数的不断增多,这会带来大量的问题。


1、技术太复杂,有时候往往会牵一发而动全身,代码耦合性太大,修改起来很麻烦。

2、拓展能力弱,功能模块代码紧耦合,无人进行有效拓展

3、维护成本太高,一旦出一个问题,修改很难受。


当然还有很多很多的缺点,为此继续一种技术去改善这个问题。什么技术呢?就是我们今天所说的微服务架构。


二、什么是微服务


由于业界还没有对微服务的概念有一个统一的解释,但是你可以这样去理解,微服务其实就是一种思想,这个思想是:考虑如何把一个复杂的项目拆分成一个个独立的小项目。就好比是电脑中的进程,拆分成一个个小的线程一样。

再举个

v2-cd021d37f1679025382788e451f0298e_1440w.jpg

现在,小张每一个服务业务都让不同的人来负责,这就大大简化了人的劳动程度。


三、微服务和微服务架构的区别是什么


他们俩的区别你可以这样去理解,微服务就好比是指导思想,微服务架构就是根据这个指导思想实施的方案。就好比是古代的时候,皇帝说要减轻赋税,然后下面的大臣根据这个指导思想去实施具体的方案。


当然这里还有更加标准化的回答:


微服务架构是⼀种架构模式,它提倡将单⼀应⽤程序划分成⼀组⼩的服务,服务之间互相协调、互相配合,为⽤户提供最终价值。每个服务运⾏在其独⽴的进程中,采⽤轻量级的通信机制互相协作

如果你能理解刚刚皇帝的那个例子,应该就能理解微服务架构的含义了。


四、微服务技术有什么?


微服务的技术还是很多的,python、c++等等都有,不过因为是专注于java,所以还是主要聊聊java中的微服务技术。


Dubbo被重启之后又焕发出了新的光彩,但是跨语言支持不足是它的一个弱项,另外功能比较少,之后服务治理相关的技术,完全用好这个框架的门槛比较高。这对于初学者来说开发难度还是比较大的。目前dubbo已经被阿里捐献给Apache了,Apache也正在致力打造属于dubbo的微服务体系,但是从这两年多的发展情况来看,并不乐观。


Netflix微服务架构经过多年生产验证,最终形成一整套开源的微服务基础组件,统称 NetflixOSS,Netflix 的成功经验开始被业界认可并推崇,于是Pivotal 将 NetflixOSS 开源微服务组件集成到其 Spring 体系,推出 Spring Cloud 微服务开发技术栈。随着时间的推移目前基本上也占据了半壁江山。本系列教程也会围绕着Springcloud来展开。

其他的微服务技术比如springcloud Alibaba、istio等等在这里就不对比了,没有大规模使用的还有待观察。一旦流行了再学习也不迟。


五、微服务的优缺点是什么?


既然要使用微服务,微服务有什么优点呢?他的优缺点你可以对比着单体结构的缺点来记忆。


1、维护起来比较简单,毕竟每一个服务只关注于项目中的一个小模块

2、拓展性好,有新功能需要添加的时候,那就再建立一个微服务,和之前的互不干扰。

3、每一个微服务都有着自己的数据库


优点真的是太多了,能想到的就这些吧。


当然还有很多缺点,咳咳,缺点不说太多,要不然你觉得微服务不好了,缺点那就是一个个微服务构成了分布式系统,出现了分布式系统的各种问题。


六、为什么选择Springcloud?


说实话,一开始我在认识微服务的时候,完全不理解他的特点是什么含义,只有当学习了一遍之后,重新回过头来看,才发现,原来是这样呀。不过在这里你最好先记住。否则以后你连回头的想法都没:


1、约定大于配置。

2、适用于各种环境

3、整合了Springboot的优点

4、轻量级组件

5、功能齐全

6、灵活


优点太多,数不过来,所以你先记住这几条,看了几本书发现基本上也是这样介绍的。

这篇文章是我的微服务系列的第一篇文章,下一篇文章将主要开始介绍Springcloud的每一个组件的功能,以及为什么要有这样一个组件。

相关文章
|
2月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
496 126
|
2月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
292 0
|
4月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
811 3
|
2月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
3月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
236 1
|
3月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
493 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
3月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
461 0
|
6月前
|
负载均衡 Java API
基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供全套分布式系统解决方案。它整合了 Netflix、Zookeeper 等成熟技术,通过简化配置和开发流程,支持服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、API网关(Zuul)、配置管理(Config)等功能。此外,Spring Cloud 还兼容 Nacos、Consul、Etcd 等注册中心,满足不同场景需求。其核心组件如 Feign 和 Stream,进一步增强了服务调用与消息处理能力,为开发者提供了一站式微服务开发工具包。
657 0
|
10月前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
528 1

热门文章

最新文章