文章目录

  • 一、微服务相关概念
    • 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 常见的注册中心

  1. Eureka:原生,2.0遇到性能瓶颈,停止维护;
  2. Consul:原生,Go语言开发;
  3. Zookeeper:专业的独立产品,例如Dubbo;
  4. Nacos:相对于Eureka来说,Nacos更加强大,Nacos = SpringCloud Eureka + SpringCloud Config

Nacos是以服务为主要的服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
Nacos主要提供以下四大功能:
1、服务发现和服务健康检测
2、动态配置服务
3、动态DNS服务
4、服务及元数据管理

SpringCloud微服务的概念介绍相关推荐

  1. SpringCloud 微服务网关Gateway介绍及简单路由配置

    概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...

  2. springCloud(微服务的概念)1-1

    微服务架构是什么? 微服务架构是一种架构模式或者说是一种架构风格,他提倡将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间的互相协调,相互配合,为用户提供最终的价值.服务 ...

  3. 介绍6款热门的SpringCloud微服务开源项目,总有适合你的!

    今天介绍六款比较热门的SpringCloud微服务项目,感兴趣的可以clone下来研究一下,相信对你学习微服务架构很有帮助. 一.Cloud-Platform 介绍 Cloud-Platform是国内 ...

  4. SpringCloud 微服务网关Gateway 动态路由配置

    概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...

  5. springcloud微服务介绍及应用场景

    目录 1 微服务的介绍 1.1系统架构演变 1.1.1 单体应用架构 1.1.2 垂直应用架构 1.1.3 分布式架构 1.1.5 微服务架构 1.2 微服务架构介绍 1.2.1 微服务架构的常见问题 ...

  6. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  7. 基于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 ...

  8. SpringCloud微服务治理技术入门

    1.集群.分布式.微服务 首先先理解三个感念 什么是集群?: 同一个业务,部署在多个服务器上,目的是实现高可用,保证节点可用! 什么是分布式?: 一个业务分拆成多个子业务,部署在不同的服务器上,每个子 ...

  9. 学习笔记:SpringCloud 微服务技术栈_实用篇①_基础知识

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

最新文章

  1. displaysettings.java_Android设置系统开机自动永不休眠
  2. Linux内核设计与实现笔记(一) 虚拟文件系统、块I/O层
  3. Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
  4. python安装失败如何卸载干净_彻底卸载Python环境及安装的Python模块
  5. 在同一个机器上布署两个JBOSS,要修改那些端口?
  6. 单点登录终极方案之 CAS 应用及原理
  7. python大数据招聘信息_2017招聘大数据丨Python需求增速达174%,AI人才缺口超百万!...
  8. springboot_poi思路
  9. 计算机二级c语言编译题评分,计算机二级C语言题型和评分标准
  10. CentOS桥接网卡配置
  11. 脚本的使用与修改Tampermonkey(油猴)
  12. 常用十六进制颜色对照表代码
  13. 如何在 R 中计算 Eta 平方
  14. 计算机运用基础2020四川传媒学院考题,2020年计算机基础考试题EY[含答案](15页)-原创力文档...
  15. uniapp打包后高德地图定位失败解决
  16. tableau中LOD:fixed、include、exclude 区别
  17. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
  18. 嵌入式linux 无线网卡,一种基于嵌入式Linux的无线网卡的制作方法
  19. MATLAB处理.nii格式文件(.nii转换为.jpg格式)
  20. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(19):不定积分(补充知识)

热门文章

  1. IE选项注册表控制大全(转)
  2. C# textbox控件输入字符串触发回车事件
  3. 今天,我把准备捐给灾区的200块给了一个发廊妹
  4. 问题创建双网卡后,不能重启网卡的解决办法
  5. django文件上传到服务器,django上传文件的三种方式
  6. metro ui html,Metro UI是什么
  7. js serializeArray方法
  8. 解决kali换源数字签名失效的问题!
  9. 百度搜索-url编码
  10. C++ UDP通信,recvfrom函数一直堵塞