IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springcloud介绍及和dubbo的区别 -> 正文阅读

[Java知识库]springcloud介绍及和dubbo的区别

微服务概述

微服务是什么

在这里插入图片描述

微服务与微服务架构

在这里插入图片描述

微服务的优缺点

在这里插入图片描述


springcloud

一、spring cloud 介绍

spring cloud 是一系列框架的集合, 是一个大的容器,它将市面上较好的微服务框架集成进来。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

spring cloud 对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用 spring cloud 一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和 docker 容器概念的火爆,也会让 spring cloud 在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在目前五花八门的分布式解决方案中提供了标准化的、一站式的技术方案,意义可能会堪比当年 servlet 规范的诞生,有效推进服务端软件系统技术水平的进步。

其主要优点有:

  1. 集大成者,Spring Cloud 包含了微服务架构的方方面面。
  2. 约定优于配置,基于注解,没有配置文件。
  3. 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
  4. 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
  5. 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。

缺点:

  1. 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
  2. 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署。

二、Spring Cloud 和 Dubbo 对比

1.springcloud 与dubbo的组件对比

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。下面通过一张图对其进行比较:
在这里插入图片描述
可以看出,Spring Cloud 比较全面,而 Dubbo 由于只实现了服务治理,需要集成其他模块,需要单独引入,增加了集成成本。

2.springcloud 与dubbo的区别

在这里插入图片描述

  • Dubbo

    • Dubbo只是一个远程调用(RPC)框架
    • 默认基于长连接,支持多种序列化格式
  • Spring Cloud

    • 框架集
    • 提供了一整套微服务解决方案(全家桶)
    • 基于http调用, Rest API
  • 服务调用方式不同,dubbo是采用rpc远程调用,srpingcloud是采用rest api远程调用.

  • 注册中心: dubbo只能采用zookeeper ; springcloud可以是采用eureka,也可以是zookeeper

  • 服务网关不同:dubbo本身是没有实现的,只是整合了第三方的技术.而springcloud是有一个组建zuul作为路由网关,springcloud还支持断路器,与git完美集成分布式配置文件支持版本控制.

三、Spring Cloud的主要组件

在这里插入图片描述

  • eureka
    微服务治理,服务注册和发现
  • ribbon
    负载均衡、请求重试
  • hystrix
    断路器,服务降级、熔断
  • zuul
    API 网关,提供微服务的统一入口,并提供统一的权限验证
  • config
    配置中心
  • bus
    消息总线, 配置刷新
  • feign
    ribbon + hystrix 集成,并提供声明式客户端
  • hystrix dashboard 和 turbine
    hystrix 数据监控
  • sleuth+zipkin
    链路跟踪

1.eureka的服务注册与发现

1.1是什么

在这里插入图片描述

1.2原理讲解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3构建步骤

在这里插入图片描述

1.4集群配置

在这里插入图片描述

1.5 eureka和zookeeper的对比!!!

在这里插入图片描述

2.ribbon组建介绍

在这里插入图片描述

3.Hystrix组建

在微服务架构中,一个系统会有多个服务,服务之间的相互调用如果不做任何保护就会导致服务器雪崩问题.那么Hystrix就是用来解决这些问题的.Hystrix是隔离,熔断以及降级的一个框架,

3.1是什么

在这里插入图片描述

3.2服务雪崩

在这里插入图片描述

3.3什么是服务熔断

在这里插入图片描述

3.4 服务降级
整体资源快不够了,忍痛将某些服务关掉,保证核心服务的执行,待度过难关,再开启回来

4.zuul网关

在这里插入图片描述

zuul:微服务网关,主要是负责网络路由的.
在微服务的架构中,可能后台会部署几百个服务,所有的服务名称前端不可能全部记住.那么现在就需要网关,前端通过浏览器发送请求,进入到网关zuul,网关会根据请求的一些特征,将请求转发到后端的服务.

网关还可以做统一的服务降级,限流,认证权限安全等等.

5.feign

5.1feign是什么介绍

在这里插入图片描述

5.1feign能干什么

在这里插入图片描述

feign 组建其实是整合和ribbon的.feign主要是进行远程调用,它通过@FeginClient的注解,进行动态代理(要是某个接口上面标注有这个注解,那么feign会对这个接口进行动态代理)
feign的动态代理,会根据你请求的@RequestMapping 和参数,来动态构造你要请求的服务地址,然后根据地址发送请求.
如果服务部署了多台机器,那么feign会通过负载均衡ribbon的轮询机制确实服务机器(ribbon默认采用轮询机制).

6.config

6.1分布式的配置问题

在这里插入图片描述

6.2是什么,怎么玩

在这里插入图片描述

总结

本文对微服务进行了介绍,以及springcloud的主要组件介绍 以及和dubbo的区别。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:47:38  更:2021-09-01 11:48:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:53:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码