Spring Cloud
介绍微服务开源框架Spring Cloud
peterwanghao
这个作者很懒,什么都没留下…
展开
-
服务监控 Spring Boot Actuator 介绍
1. 概述在本文中,我们将介绍Spring Boot Actuator。首先介绍一些Actuator的基础知识,然后详细讨论Spring Boot 1.x与2.x中的用法和不同点。我们将学习如何在Spring Boot 1.x中使用,配置和扩展此监视工具。然后,我们将讨论如何使用Boot 2.x和WebFlux利用反应式编程模型来做同样的事情。Spring Boot Actuator自201...原创 2019-01-31 11:45:05 · 1909 阅读 · 0 评论 -
消费者驱动的契约测试 Spring Cloud Contract介绍
什么是契约测试测试是软件流程中非常重要,不可或缺的一个环节。一般的测试分为单元测试,集成测试,端到端的手工测试,这也是构成测试金字塔的三个层级。我们今天将要讨论的话题是契约测试,它是处于单元测试和集成测试中间的一个环节。这三个层级分别测试的场景如下:单元测试:测试单个service集成测试:测试由多个services组成的系统端到端测试:测试从用户到各个外部系统的整个场景契约测试的作...原创 2019-01-11 11:35:06 · 1599 阅读 · 1 评论 -
Consul架构介绍
Consul是由HashiCorp基于Go语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件,采用Raft算法保证服务的一致性,且支持健康检查。Consul架构只有一个数据中心的Consul的架构图如下:我们可以看到,有三个不同的服务器由Consul管理。整个架构通过使用Raft算法工作,这有助于我们从三个不同的服务器中选出一个领导者。然后根据诸如Follower和Leader之...原创 2018-12-12 22:06:56 · 4082 阅读 · 1 评论 -
Spring Cloud Consul 基础使用介绍
1.概述onsul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。Consul是一个工具,提供解决微服务架构中一些最常见挑战的组件:服务发现 -...原创 2018-12-07 14:52:15 · 2251 阅读 · 0 评论 -
Spring Cloud CLI简介
1.简介在本文中,我们将介绍Spring Boot Cloud CLI(或简称Cloud CLI)。该工具为Spring Boot CLI提供了一组命令行增强功能,有助于进一步抽象和简化Spring Cloud部署。CLI于2016年底推出,允许使用命令行、.yml配置文件和Groovy脚本快速自动配置和部署标准Spring Cloud服务。2.安装Spring Boot Cloud CL...原创 2018-12-20 22:26:38 · 4814 阅读 · 1 评论 -
Spring Cloudt整合Netflix Archaius之多数据源
1.概述Netflix Archaius提供了用于连接许多数据源的类库和功能。在本教程中,我们将学习如何获取配置:使用JDBC API连接到数据库读取来自存储在DynamoDB实例中的配置通过Zookeeper配置为动态分布式配置有关Netflix Archaius的介绍,请查看本文。2.将Netflix Archaius与JDBC连接一起使用正如我们在介绍性教程中所解释的,每...原创 2018-11-21 23:17:30 · 3677 阅读 · 0 评论 -
Spring Cloudt整合Netflix Archaius介绍
1.概述Netflix Archaius 是一个功能强大的配置管理库。它是一个可用于从许多不同来源收集配置属性的框架,提供对配置信息的快速及线程安全访问。除此之外,Archaius允许属性在运行时动态更改,使系统无需重新启动应用程序即可获得这些变化。在这个介绍性文章中,我们将设置一个简单的Spring Cloud Archaius配置,我们将解释底层发生了什么,最后,我们将看到Spring...原创 2018-11-07 23:49:27 · 4124 阅读 · 7 评论 -
Spring Cloud Vault 使用示例
1.概述在本文中我们将展示如何在Spring Boot应用程序中使用Hashicorp的Vault来保护敏感的配置数据。我们在这里假设你已经掌握了一些Vault知识,并且已经准备好了运行环境。如果不是这样的话,让我们花点时间阅读下之前的文章Vault 介绍教程,以便我们熟悉其基础知识。2. Spring Cloud VaultSpring Cloud Vault是Spring Cloud堆...原创 2018-10-26 10:19:47 · 6500 阅读 · 2 评论 -
Spring Cloud Task 简单示例
1. 概述Spring Cloud Task的目标是为Spring Boot应用程序提供创建短运行期微服务的功能。在Spring Cloud Task中,我们可以灵活地动态运行任何任务,按需分配资源并在任务完成后检索结果。Tasks是Spring Cloud Data Flow中的一个基础项目,允许用户将几乎任何Spring Boot应用程序作为一个短期任务执行。2. 一个简单的任务应用程序...原创 2018-10-12 22:07:23 · 19808 阅读 · 1 评论 -
Zuul和Eureka的负载均衡示例
1.概述在本文中,我们将介绍如何通过Zuul和Eureka一起使用来实现负载均衡。我们将请求路由到注册在Spring Cloud Eureka,并通过Zuul Proxy来发现的REST服务。2.初始设置我们需要设置Eureka服务器/客户端,如文章介绍微服务中服务治理Spring-Cloud-Netflix-Eureka所示。3.配置ZuulZuul还从Eureka服务站点获取服务列...原创 2018-09-18 09:51:22 · 9977 阅读 · 0 评论 -
使用Spring Cloud Netflix Zuul代理网关访问后台REST服务
1.概述在本文中,我们将探讨如何在互相单独部署的前端应用程序和后端REST API服务之间进行通信。目的是解决浏览器的跨域资源访问和同源策略限制,允许页面UI能够调用后台的API,即使它们不在同一个服务器中。我们在这里创建了两个独立的应用程序 - 一个UI应用程序和一个简单的REST API,我们将在UI应用程序中使用Zuul代理来代理对REST API的调用。Zuul是Netflix基于...原创 2018-09-11 13:49:18 · 1646 阅读 · 1 评论 -
Hystrix断路器集群监控Turbine
Netflix Hystrix 可以为应用程序中的命令状态提供实时指标。这些数据通过一个名为Hystrix Dashboard的非常酷的界面以图形形式展现出来。但是它只能提供单个服务的信息,如果需要调用几十个微服务,我们希望看到的是这些微服务的性能,而不是一个微服务一个微服务的去查看。所以我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上,使用Turbin...原创 2018-08-20 16:14:20 · 418 阅读 · 0 评论 -
Spring Cloud Netfix Hystrix断路器例子
1.概述在本文中我们将介绍Spring Cloud Netflix Hystrix - 断路器。我们将使用该库来实现断路器的企业模式,该模式描述了应用程序中不同级别的故障级联策略。断路器的工作原理类似于电子产品:Hystrix 用来观察正在调用某些相关服务的方法。如果出现了故障,它将打开断路器并将呼叫转发到回退方法。该库将设置失败次数的阈值,正常情况下它将使电路保持开放状态。当超过容忍...原创 2018-08-16 14:33:25 · 636 阅读 · 0 评论 -
微服务与断路器
众所周知,微服务架构具有许多优点。包含松散耦合,自治服务,分散治理,更容易连续交付等。但与此同时,它使架构变得脆弱,因为每个用户的操作结果都会调用多个服务。它通过网络上的远程调用替换了单体系结构中的内存调用。但是当一个或多个服务不可用或表现出高延迟时,会导致整个系统出现级联故障。服务客户端的重试逻辑只会使情况更糟糕,并且可能导致系统彻底的崩溃。断路器模式有助于防止跨多个系统的这种灾难性级联故障...原创 2018-08-08 16:01:17 · 2969 阅读 · 2 评论 -
Spring Cloud 安全:集成OAuth2实现身份认证和单点登录
1、概述Spring Cloud 的安全模块可以为Spring Boot应用提供基于令牌的安全特性。具体讲就是支持OAuth2协议来实现单点登录(SSO),可以很方便地在资源服务之间传递身份令牌,以及使用嵌入式的ZUUL代理来配置下游服务的认证。在这篇文章中,我们将介绍如何在Spring Boot 客户端应用、身份认证服务与提供REST API的资源服务之间配置完成这些功能。实现系统的安全...原创 2018-07-20 17:41:03 · 57908 阅读 · 22 评论 -
容器编排解决方案
目前市场上有很多容器编排工具可用,它们之间的能力有许多重叠的地方。通常的情况下,需要使用这些工具中的一个或多个的组合来满足业务的需求。容器管理或编排工具采用容器(包含要执行的服务)和一组约束或规则作为部署描述符,一起组成可部署的工件,然后在多台机器上找到最适合部署的基础设施。在这里,我们将探讨市场上流行的一些容器编排解决方案。Docker Swarm Dcocker Swarm是Dock...原创 2018-06-20 11:25:26 · 4463 阅读 · 0 评论 -
容器编排的作用和要实现的内容
Docker平台以及周边生态系统包含很多工具来管理容器的生命周期。例如,Docker Command Line Interface(CLI)满足在单个主机上管理容器的需求,但是面对部署在多个主机上的容器时就无所适从了。为了超越单个容器管理,我们必须转向编排工具。容器编排工具将生命周期管理能力扩展到部署在大量机器集群上部署的复杂的、多容器工作负载。容器编排工具为开发人员和基础设施团队提供了一个抽...原创 2018-06-13 15:15:52 · 10098 阅读 · 0 评论 -
微服务的自动缩放
自动缩放是一种基于资源使用情况来自动缩放服务实例的方法,通过复制要缩放的服务来满足约定的服务等级协议(SLAs)。系统能够自动检测到流量的增加,通过增加额外的实例来提高处理能力。同样当流量下降时,系统也能自动地探测到并且从服务中返回活动着的实例来减少实例的数量。同时还需要确保有一定数量的实例一直处于激活状态并运行着。除此之外,不论是使用物理机还是虚拟机都需要一种自动提供机器的机制,如果是虚拟机...原创 2018-06-08 14:58:24 · 382 阅读 · 0 评论 -
微服务架构中如何适应12要素应用(Twelve‑Factor App)
Heroku是业内知名的云应用平台,从对外提供服务以来,他们已经有上百万应用的托管和运营经验。其创始人Adam Wiggins根据这些经验,发布了一个“十二要素应用宣言(The Twelve-Factor App)”,这个设计原则对SaaS平台非常具有指导意义。十二要素应用宣言 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如...原创 2018-06-05 15:38:06 · 2538 阅读 · 0 评论 -
在Docker容器中部署相互依赖的应用
在上一篇文章中介绍了如何在Docker中部署单独的Spring Boot应用。使用Docker命令和Dockerfile文件特别适合创建单独的容器。但如果你想在相互孤立的应用中建立网络通信互相调用,容器管理将很快变得非常混乱。为解决这个问题,Docker提供了一个名为Docker Compose的工具。Compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose ...原创 2018-06-01 16:22:21 · 11006 阅读 · 1 评论 -
在Docker容器中部署Spring Boot应用
Docker是开发者的开放平台,它是一个机制,通过将每个应用程序打包到容器中来隔离依赖关系。容器是可扩展的,可更安全的使用和部署。Docker容器能够共享一个内核并共享应用程序库,因此容器比虚拟机具有更低的系统开销,只要用户愿意使用单一平台来提供共享的操作系统,容器可以更快,占用更少资源。在本文中介绍如何在Docker容器中部署一个简单的Spring Boot应用,通过构建、部署过程来理解Do...原创 2018-05-30 15:08:34 · 1523 阅读 · 0 评论 -
介绍Spring Cloud Stream与RabbitMQ集成
Spring Cloud Stream是一个建立在Spring Boot和Spring Integration之上的框架,有助于创建事件驱动或消息驱动的微服务。在本文中,我们将通过一些简单的例子来介绍Spring Cloud Stream的概念和构造。1 Maven依赖在开始之前,我们需要添加Spring Cloud Stream与RabbitMQ消息中间件的依赖。<de...原创 2018-05-13 23:48:10 · 17469 阅读 · 6 评论 -
Spring Cloud 中整合Zipkin进行服务跟踪
在这篇文章里介绍如何将Zipkin整合到我们的云服务里。Zipkin是一个开源项目,它提供了在分布式环境下发送、接收、存储和可视化跟踪的机制。这使我们能够对服务之间的活动进行关联,并更清楚地了解我们服务中发生的情况。这篇文章中的示例工程是基于之前文章的进一步开发,想了解更多情况可阅读。“使用Spring Cloud搭建的微服务示例” “Spring Cloud 微服务的安全保护”1、Z...原创 2018-05-04 16:14:49 · 12916 阅读 · 5 评论 -
Spring Cloud 微服务的安全保护
上一篇文章中介绍了如何使用Spring Cloud搭建微服务,在本文中讲讲如何对微服务进行安全保护。在Spring Cloud中对应用进行安全保护通常使用Spring Security,这种方式集成起来非常简单而且很容易扩展现有的应用场景。在分布式环境中Spring Security使用Spring Session和Redis来共享会话。共享会话可以将在微服务网关中登录的用户验证信息传递到系统...原创 2018-05-03 20:57:25 · 2876 阅读 · 0 评论 -
使用Spring Cloud搭建的微服务示例
Spring Cloud是一个可以构建云应用的框架,使用该框架可以解决应用在迁移到分布式环境时所面临的众多问题。应用的微服务化目的是旨在简化开发、部署和维护的工作量,将应用程序分解可以帮助程序开发人员一次只专注于一个问题,同时在进行系统改进时不影响其它部分的运行。另一方面,使用微服务时也带来了一些挑战:配置的外部化实现,配置改变是不需要重启服务。 服务是如何发现的。 服务在不同主机上...原创 2018-04-25 23:47:25 · 1381 阅读 · 0 评论 -
使用Spring Cloud Sleuth在应用中进行日志跟踪
Spring Cloud Sleuth是一个在应用中实现日志跟踪的强有力的工具。使用Sleuth库可以应用于计划任务 、多线程服务或复杂的Web请求,尤其是在一个由多个服务组成的系统中。当我们在这些应用中来诊断问题时,即使有日志记录也很难判断出一个请求需要将哪些操作关联在一起。如果想要诊断复杂操作,通常的解决方案是在请求中传递唯一的ID到每个方法来识别日志。而Sleuth可以与日志框架Logb...原创 2018-04-16 22:21:10 · 17988 阅读 · 3 评论 -
介绍客户端负载均衡Spring Cloud Ribbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。可轻松地将面向服务的REST请求自动转换成客户端负载均衡的服务调用。Netflix Ribbon是一个在云端使用的IPC(进程间通信)库,主要提供客户端的负载均衡算法。除了客户端负载均衡算法,Ribbon还提供其他功能:服务发现集成 - Ribbon负载均衡器可...原创 2018-04-02 22:26:32 · 325 阅读 · 0 评论 -
介绍如何在Spring-Cloud中使用Zookeeper作为服务注册中心
本文将介绍如何使用Zookeeper在微服务框架中实现服务发现,该服务发现机制可作为云服务的注册中心。通过Spring Cloud Zookeeper为应用程序提供一种Spring Boot集成,将Zookeeper通过自动配置和绑定 的方式集成到Spring环境中。在本例子中我们将创建两个应用程序:提供服务的应用程序(称为 服务提供者)使用此服务的应用程序(称为 服务消费者)A...原创 2018-03-28 08:57:17 · 8024 阅读 · 1 评论 -
使用Spring-Cloud-Config创建配置中心
Spring Cloud Config是Spring创建的一个全新的服务端/客户端项目,为应用提供分布式的配置存储,提供集中化的外部配置支持。它除了适用于Spring构建的应用程序外,也可以在其他语言运行的应用程序中使用。Spring Cloud Config分为服务端和客户端两部分。其中服务端称为分布式配置中心,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息的功能;客户端则是微服...原创 2018-03-22 11:03:34 · 2199 阅读 · 0 评论 -
介绍微服务中服务治理Spring-Cloud-Netflix-Eureka
1、概述微服务框架中最为核心和基础的模块就是服务治理,它主要用来实现各个微服务实例的自动化注册与发现。在这个体系结构中有一个“中心点”——服务注册中心,每个服务必须注册到服务注册中心。而各个服务之间进行通讯并不需要知道具体服务的主机名和端口。这种实现的一个缺点是所有客户机必须实现某种逻辑来与这个中心点进行交互,这样在实现服务请求之前将增加一次额外的网络往返。Spring Cloud 使用 ...原创 2018-03-16 22:31:41 · 9550 阅读 · 1 评论 -
介绍Spring-Cloud的版本是如何定义的
Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。Spring Cloud通过一个资源清单BOM(Bill of Materials)来管理每个版本的子项目清单。为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些版本名称的命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如...原创 2018-03-20 22:44:39 · 6792 阅读 · 0 评论