SpringCloud微服务的概念介绍
文章目录
- 一、微服务相关概念
- 1、什么是微服务?
- 2、微服务与单体架构区别
- 二、Spring Cloud相关概念
- 1、什么是Spring Cloud?
- 2、Spring Cloud和SpringBoot的关系?
- 3、SpringCloud优缺点?
- 4、SpringCloud Netflix核心组件
- 5、Nacos基本概念
- 5.1 常见的注册中心
一、微服务相关概念
1、什么是微服务?
微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同的数据库存储技术,并保持最低限度的集中式管理。
微服务介绍
(1)微服务是架构风格。
(2)把一个项目拆分成独立的多个服务,多个服务独立运行,每个服务占用独立进程。
2、微服务与单体架构区别
(1)、单个架构所有的模块全部耦合在一起,代码量大,维护困难。
微服务每个模块相当于一个单独的项目,代码里明显减少,遇到问题也相对来说比较好解决。
(2)、单体架构的所有模块共用一个数据库,存储方式比较单一。
微服务每个模块都可以使用不同的存储方式,数据库也是单个模块对应自己的数据库。
(3)、单体架构的所有模块开发所使用的技术都一样。
微服务每个模块都可以使用不同的开发技术,开发模式更加灵活。
二、Spring Cloud相关概念
1、什么是Spring Cloud?
Spring Cloud是一系列框架的集合和一系列技术总称;使用Spring Cloud,需要依赖Spring Boot。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务注册与发现(Eureka/Nacos)
、服务调用(Feign)
、负载均衡(Ribbon)
、熔断器(Hystrix)
、服务网关(Zuul)
、分布式配置(Config/Nacos)
、消息总线(Bus/Nacos)
等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
SpringCloud相关基础服务组件
Eureka
:负责服务的注册与发现;Ribbon
:负责客户端调用的负载均衡;Hystrix
:负责服务之间远程调用时的容错保护;Feign
:可以让我们通过定义接口的方式直接调用其他服务的API;Zuul
:API网关,是客户端请求的入口,负责鉴权,路由等功能;Spring Cloud Config
:用于统一的配置管理;
2、Spring Cloud和SpringBoot的关系?
SpringBoot是Spring的一套快速配置脚手架,可以基于SpringBoot快速开发单个微服务;
Spring Cloud是一个基于SpringBoot实现的开发工具;
SpringBoot专注于快速、方便集成的单个微服务个体,SpringCloud关注全局的服务治理框架;SpringBoot使用默认大于配置的理念,很多集成方案已经默认选择。
3、SpringCloud优缺点?
优点:
1、集大成者,Spring Cloud 包含了微服务架构的方方面面。
2、约定优于配置,基于注解,没有配置文件。
3、轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
4、开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
5、开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。
缺点:
1、项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
2、部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。
4、SpringCloud Netflix核心组件
Eureka:服务治理组件,包括服务端的服务注册和客户端的服务发现;
Ribbon:负载均衡的服务调用组件,负责客户端调用的负载均衡;
Feign:基于Ribbon和Hystrix的声明式服务调用组件,可以让我们通过定义接口的方式直接调用其他服务的API;
Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力;
Zuul:API网关,是客户端请求的入口,负责鉴权,路由等功能;
Spring Cloud Config:用于统一的配置管理;
Sleuth:用于请求的链路跟踪。
架构图
5、Nacos基本概念
Nacos是阿里巴巴推出的开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
5.1 常见的注册中心
Eureka
:原生,2.0遇到性能瓶颈,停止维护;Consul
:原生,Go语言开发;Zookeeper
:专业的独立产品,例如Dubbo;Nacos
:相对于Eureka来说,Nacos更加强大,Nacos = SpringCloud Eureka + SpringCloud Config;
Nacos是以服务为主要的服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
Nacos主要提供以下四大功能:
1、服务发现和服务健康检测
2、动态配置服务
3、动态DNS服务
4、服务及元数据管理
SpringCloud微服务的概念介绍相关推荐
- SpringCloud 微服务网关Gateway介绍及简单路由配置
概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...
- springCloud(微服务的概念)1-1
微服务架构是什么? 微服务架构是一种架构模式或者说是一种架构风格,他提倡将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间的互相协调,相互配合,为用户提供最终的价值.服务 ...
- 介绍6款热门的SpringCloud微服务开源项目,总有适合你的!
今天介绍六款比较热门的SpringCloud微服务项目,感兴趣的可以clone下来研究一下,相信对你学习微服务架构很有帮助. 一.Cloud-Platform 介绍 Cloud-Platform是国内 ...
- SpringCloud 微服务网关Gateway 动态路由配置
概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...
- springcloud微服务介绍及应用场景
目录 1 微服务的介绍 1.1系统架构演变 1.1.1 单体应用架构 1.1.2 垂直应用架构 1.1.3 分布式架构 1.1.5 微服务架构 1.2 微服务架构介绍 1.2.1 微服务架构的常见问题 ...
- 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...
- 基于SpringCloud微服务的Hdfs分布式大数据实现的企业网盘系统
目录 1 绪 论 5 1.1 研究的背景及意义 5 1.1.1 选题的背景 5 1.1.2 国内外研究现状 6 1.1.3 研究的意义 7 1.2 系统目标 7 2 需求分析 8 2.1 功能需求 8 ...
- SpringCloud微服务治理技术入门
1.集群.分布式.微服务 首先先理解三个感念 什么是集群?: 同一个业务,部署在多个服务器上,目的是实现高可用,保证节点可用! 什么是分布式?: 一个业务分拆成多个子业务,部署在不同的服务器上,每个子 ...
- 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...
最新文章
- displaysettings.java_Android设置系统开机自动永不休眠
- Linux内核设计与实现笔记(一) 虚拟文件系统、块I/O层
- Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
- python安装失败如何卸载干净_彻底卸载Python环境及安装的Python模块
- 在同一个机器上布署两个JBOSS,要修改那些端口?
- 单点登录终极方案之 CAS 应用及原理
- python大数据招聘信息_2017招聘大数据丨Python需求增速达174%,AI人才缺口超百万!...
- springboot_poi思路
- 计算机二级c语言编译题评分,计算机二级C语言题型和评分标准
- CentOS桥接网卡配置
- 脚本的使用与修改Tampermonkey(油猴)
- 常用十六进制颜色对照表代码
- 如何在 R 中计算 Eta 平方
- 计算机运用基础2020四川传媒学院考题,2020年计算机基础考试题EY[含答案](15页)-原创力文档...
- uniapp打包后高德地图定位失败解决
- tableau中LOD:fixed、include、exclude 区别
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
- 嵌入式linux 无线网卡,一种基于嵌入式Linux的无线网卡的制作方法
- MATLAB处理.nii格式文件(.nii转换为.jpg格式)
- 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(19):不定积分(补充知识)