Spring Cloud微服务笔记(二)Spring Cloud 简介

时间:2021-07-18 19:15:58

Spring Cloud 简介

Spring Cloud的设计理念是Integrate Everything,即充分利用现有的开源组件,

在它们之上设计一套统一的规范/接口使它们能够接入Spring Cloud体系并且能够无缝切换底层实现。

一、Spring Cloud 与中间件

中间件向下屏蔽异构的硬件、软件、网络等计算机资源,向上提供应用开发、运行、维护等全生命周期的

统一环境与管理,属于承上启下的中间层。中间件本质上可以归属为技术构架,常见的中间件分别是服务

治理中间件(如,Dubbo)、配置中心、全链路监控、分布式事务、分布式定时任务、消息中间件、API网关、

分布式缓存、数据库中间件。

Spring Cloud 是一系列中间件合集,提供了一套完整的微服务解决方案。

1.Spring Cloud 与服务治理中间件

服务治理中间件包括服务注册与发现、服务路由、负载均衡、自我保护、丰富的治理管理机制等功能。

其中服务路由包括服务上下线、在线测试、机房就近选择、A/B测试、灰度发布等。负载均衡支持根据

目标状态和目标权重进行负载均衡。自我保护服务降级、流量监控。

Spring Cloud 目前支持:

1)Euraka、Zookeeper、Consul作为注册中心;

2)Hystrix进行熔断自我保护;

3)Ribbon进行负载均衡;

2.Spring Cloud 与配置中间件

在分布式系统中,由于存在多个实例,需要分别管理每个具体服务工程中的配置,

上线需要准备Check List并逐个检查每个上线服务是否正确。在系统上线后一旦

修改某个配置,就需要重启服务。这样开发管理相当麻烦。因此我们需要把分布式

系统中的配置信息抽取出来统一管理,这个管理的中间件称为配置中心。配置中心

应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限管理

体系集成,各种兼容支持。Spring Cloud Config 是Spring Cloud生态圈中的配置中心中间件。

3.Spring Cloud 与网关中间件

AIP Gateway,是出现在系统边界上一个面向API的、串行集中式的强管控服务,这里的边界是企业

IT系统的边界,可以理解为企业级防火强,主要起到隔离外部访问与内部系统的作用。网关在微服务架构中的位置:

Spring Cloud微服务笔记(二)Spring Cloud 简介

作为一个网关中间件,至少应该具备如下四个功能:

1)统一接入功能:

2)协议适配功能:

3)流量管控功能:

4)安全防护;

Spring Cloud 第一代网关Zuul, 第二代网关Gateway。

4.Spring Cloud 与全链路监控中间件

在微服务架构中,分散在每个服务下的日志信息不利于问题的排查定位问题发生的根本原因。

此时,就可以了利用全链路监控中间件收集、汇总与分析日志信息,进行可视化展示和监控告警。

全链路监控中间件应具备如下功能:

1)定位慢调用:包括慢Web服务、慢REST或RPC服务、慢SQL;

2)定位各种错误:包括4XX、5XX、Service Error;

3)定位各种异常:

4)展现依赖和拓扑:

5)trace条用链:

6)应用警告:

Spring Cloud微服务笔记(二)Spring Cloud 简介的更多相关文章

  1. spring cloud微服务实践二

    在上一篇,我们已经搭建了spring cloud微服务中的注册中心.但只有一个注册中心还远远不够. 接下来我们就来尝试提供服务. 注:这一个系列的开发环境版本为 java1.8, spring boo ...

  2. Spring Cloud 微服务五:Spring cloud gateway限流

    前言:在互联网应用中,特别是电商,高并发的场景非常多,比如:秒杀.抢购.双11等,在开始时间点会使流量爆发式地涌入,如果对网络流量不加控制很有可能造成后台实例资源耗尽.限流是指通过指定的策略削减流量, ...

  3. Spring Cloud微服务笔记(三)服务治理:Spring Cloud Eureka快速入门

    服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构 ...

  4. Spring Cloud微服务笔记(一)微服务概念

    微服务概念 一.什么是微服务架构 微服务,是一个小的.松耦合的分布式服务. 为什么需要微服务: 1)单体系统部署在一个进程中,修改了一个小功能,为了部署上线就会影响其他功能. 2)单体应用各个功能模块 ...

  5. Spring Cloud 微服务笔记(七) Zuul入门

    Zuul入门 Zuul是从设备和网站到后端应用程序所有请求的前门,为内部服务提供可配置的对外URL到服务的 映射关系,基于JVM的后端路由器.其具备一下功能: 1)认证与授权 2)压力控制 3)金丝雀 ...

  6. Spring Cloud 微服务笔记(六)Spring Cloud Hystrix

    Spring Cloud Hystrix Hystrix是一个延迟和容错库,旨在隔离远程系统.服务和第三方库,阻止链接故障,在复杂的分布式系统中实现恢复能力. 一.快速入门 1)依赖: <dep ...

  7. Spring Cloud微服务笔记(五)Feign

    Feign 一.Feign概述 Feign是一个声明式的Web Service客户端.在Spring Cloud 中使用Feign,可以做到 使用HTTP请求访问远程服务,就像调用本地方法一样,同时它 ...

  8. Spring Cloud微服务笔记(四)客户端负载均衡:Spring Cloud Ribbon

    客户端负载均衡:Spring Cloud Ribbon 一.负载均衡概念 负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容.因为负载均衡对系统的高可用性. 网络压力的缓解和处理能力的扩容的 ...

  9. Spring Cloud 微服务六:调用链跟踪Spring cloud sleuth &plus;zipkin

    前言:随着微服务系统的增加,服务之间的调用关系变得会非常复杂,这给运维以及排查问题带来了很大的麻烦,这时服务调用监控就显得非常重要了.spring cloud sleuth实现了对分布式服务的监控解决 ...

随机推荐

  1. HTML5&plus;CSS3实现图片可倾斜摆放的动画相册效果

    先看看效果:其中鼠标悬浮在图片上会有动态效果图 直接上代码: css文件 @CHARSET "UTF-8"; *{ padding:0px; margin:0px; } div{ ...

  2. meta的Name为apple-itunes-app 是什么意思

    例如:<meta name="apple-itunes-app" content="app-id=432274380" /> 解答:这个标签是告诉i ...

  3. JDBC访问SQLServer2008数据库

    来源:十二随风博客 由JDBC驱动直接访问数据库优点:100% Java,快又可跨平台缺点:访问不同的数据库需要下载专用的JDBC驱动 (1)下载对应数据库版本的jdbc驱动并安装,注意安装后的得到的 ...

  4. Jetty容器集群配置Session存储到MySQL、MongoDB

    在Web开发中,Session表示HTTP服务器与客户端(例如浏览器)的"会话",每个客户端会有其对应的Session保存在服务器端,通常用来保存和客户端关联的一些信息,例如是否登 ...

  5. Mysql:执行source sql脚本时,出现&colon;error 2

    Centos下部署mysql: 1.yum -y install mysql*; 2.service mysqld start; 3.chkconfig mysqld on; 4.设置用户名和密码:m ...

  6. Linux开发黑客

    参考网站:http://blog.chinaunix.net/uid/20543672/abstract/1.html tekkamanninja

  7. Linux基础操作二

    编程语言的作用及与操作系统和硬件的关系 编程语言的作用:用来定义计算机程序的形式,程序员用它来编写程序,进而控制其向计算机发出指令,使计算机完成人类布置的任务. 编程语言的作用及与操作系统和硬件的关系 ...

  8. centos安装man中文手册

    第一步下载man中文手册压缩包 //下载 wget http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1. ...

  9. XE里, TStringField 还是 ansi的

    { TStringField } TStringField = class(TField) private FFixedChar: Boolean; FTransliterate: Boolean; ...

  10. ios之runtime

    简介 OC是从C语言发展过来的, 之所以能变为动态语言是因为runtime机制, runtime就是OC在运行时的一些机制: OC的runtime最重要的是消息机制. 在编译阶段,OC可以调用任意函数 ...