![](https://img-blog.csdnimg.cn/20190708090110622.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud
使用SpringCloud构建微服务
皓晨的架构笔记
生命不息,奋斗不止!
展开
-
SpringCloud构建微服务之Zuul服务网关
在前面的文章我们讲解了,`Eureka`服务注册与发现,`Ribbon`负载均衡,`Feign`的声明式服务调用,用户服务保护的`Hystrix`,配置中心`SpringCloudConfig`,似乎一个完整的微服务架构已经搭建完成了。原创 2019-08-03 22:10:32 · 280 阅读 · 0 评论 -
SpringCloud构建微服务之SpringCloudConfig配置中心Refresh
在前面我们整合`SpringCloudConfig`遇到了一个问题,就是当配置信息有更新的时候,客户端并不能主动感知到配置的变化,从而去主动获取最新的配置。那么客户端如何去主动获取最新新的配置信息呢?`SpringCloud`已经给我们提供了解决方案,客户端可以通过`actuator`的`/refresh`接口来刷新配置信息。原创 2019-08-03 20:58:36 · 569 阅读 · 0 评论 -
SpringCloud构建微服务之SpringCloudConfig配置中心高可用
前言在上篇文章我们讲解了使用客户端直接调用配置中心服务端来获取配置文件信息,但是这样客户端和服务耦合性就太高了,不利于维护和扩展。那么该怎么样处理呢?我们只需将配置中心服务端注册到eureka中,客户端直接从eureka集群中获取配置中心服务即可。下面我们来动手实现。server端改造修改spring-cloud-config-serverpom文件,引入eureka依赖:<?xm...原创 2019-08-01 22:42:57 · 341 阅读 · 0 评论 -
SpringCloud构建微服务之SpringCloudConfig配置中心Git版
随着系统的微服务化,将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,导致配置文件也随着服务的增加而不断的增加,很难统一维护管理。此时配置中心是必不可少的。原创 2019-07-31 23:03:04 · 993 阅读 · 0 评论 -
SpringCloud构建微服务之HystrixDashboard服务监控
前言在前面我们讲解了利用Hystrix进行服务保护,但是只有工具的使用而没有监控,我们就无法在第一时间发现出现问题的依赖,也不能判断服务整体的健康状态/运行状态。所以我们还要做好相关的监控工作。什么是HystrixDashboard?Hystrix除了服务保护外还提供了准实时的调用监控(Hystrix Dashboard) ,Hystrix会持续地记录所有通过Hystrix发起的请求的执行信...原创 2019-07-29 21:56:50 · 786 阅读 · 0 评论 -
SpringCloud构建微服务之Hystrix熔断降级
前言在前面呢我们有介绍什么是Hystrix,以及Hystrix的作用。那么本篇文章呢我们将结合代码,来演示如何利用Hystrix来现实服务的熔断和降级。集成Hystrix首先在spring-cloud-examples的基础上新建一个子module——spring-cloud-hystrix,然后在spring-cloud-hystrix的基础上再分别建立consumer-hystrix和c...原创 2019-07-28 21:34:46 · 250 阅读 · 0 评论 -
SpringCloud构建微服务之Hystrix概述
前言在分布式环境中,完成一个业务,可能会依赖很多服务。比如用户购买一个商品,可能会经过订单、库存、支付等等服务。由于分布式环境的复杂性,避免不了其中某一个服务因为网络通讯问题连接不上或者资源占用过高导致down机等等,从而导致服务不能正常使用。当服务正常时,整个服务链如下图所示:其中一个服务出现了问题,阻塞了整个业务:在某一时刻,达到流浪高峰,导致服务资源耗尽:分布式服务常见现象...原创 2019-07-27 22:49:01 · 215 阅读 · 0 评论 -
SpringCloud构建微服务之Feign声明式服务调用
前言在讲前面几篇文章的时候,消费者服务与提供者服务是利用RestTemplate进行通信的。这种方式是属于面向服务编程,在实际开发中,对服务依赖的客户端可能会有很多,每个客户端都需要对这些依赖的服务调用进行封装,大大增加的工作量。因此,SpringCloud就提供一种解决方案,面向接口编程的声明式服务调用——Feign,大大减轻的工作量。什么是Feign?Feign是一个声明式WebSer...原创 2019-07-27 22:04:40 · 265 阅读 · 0 评论 -
SpringCloud构建微服务之Ribbon自定义负载均衡规则
前言在上篇文章我们介绍了Ribbon自带的负载均衡规则,以及如何切换使用自带的其它规则。那么可能有时候,自带规则满足不了我们的业务需求,此时就需要我们自己来自已定义规则,Ribbon怎么来自定义规则呢?下面我们将来讲解。自定义Ribbon规则我们要自定义负载均衡规则,肯定是要有一个需求的,那么假设现在有一个需求就是每个服务要求调用次数达到3次,再切换到其它服务,Ribbon自带的规则显然是满...原创 2019-07-27 17:33:33 · 1027 阅读 · 0 评论 -
SpringCloud构建微服务之Ribbon核心接口IRule
前言在上篇文章我们整合了Ribbon实现了客户端的负载均衡,本次将来介绍Ribbon的负载均衡规则,以及如何来自定义负载均衡规则。Ribbon自带规则Ribbon中具体实现负载均衡的策略是通过IRule这个接口来实现的,结构图如下:Ribbon自带规则规则名称规则描述RoundRobinRule轮询RandomRule随机AvailabilityFi...原创 2019-07-22 23:27:30 · 640 阅读 · 0 评论 -
SpringCloud构建微服务之Ribbon负载均衡
什么是Ribbon?Spring Cloud Ribbon是基于Netflix Ribbon实现的一套**客户端 负载均衡的工具 **。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(...原创 2019-07-21 21:03:26 · 142 阅读 · 0 评论 -
服务注册中心Eureka与Zookeeper哪个好?
先来回顾一下CAP理论:一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在前面有说过:Zookeeper保证的是CP, Eureka则是AP。Zookeeper保证CP :当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就...原创 2019-07-21 16:24:41 · 227 阅读 · 0 评论 -
SpringCloud构建微服务之Eureka集群
什么是集群?在讲解如何搭建eureka集群前,先给大家普及一下集群的概念,有些小伙伴可能还不知道什么是集群。说到集群可能就有人会想到分布式,可能有很多人对分布式和集群这两个概念有点混淆:分布式:将一套系统拆分成不同子系统部署在不同服务器上集群:部署多个相同的子系统在不同的服务器上分布式的每一个子系统,完成的是不同的业务,一台服务挂了,那么这个业务功能就无法访问了,甚至可能会影响到其他...原创 2019-07-21 15:54:23 · 510 阅读 · 0 评论 -
SpringCloud构建微服务之Eureka服务注册与发现
前言在上篇文章我讲到如何搭建SpringCloud微服务基础环境,本次我将介绍Netflix的Eureka,并整合到SpringCloud中什么是Eureka?Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标...原创 2019-07-07 18:44:52 · 270 阅读 · 0 评论 -
SpringCloud构建微服务之基础环境搭建
前言本次我们将使用SpringCloud构建一个用户微服务案例,Consumer消费者(Client)通过REST调用Provider提供者(Server)提供的服务。构建环境:SpringCloud Dalston.SR1+Spring Boot 1.5.9.RELEASE+Jdk 1.8+Idea+Maven 3.6+MySQL建立整体父工程(spring-cloud-examples)...原创 2019-07-07 09:04:18 · 5818 阅读 · 1 评论 -
SpringCloud介绍
什么是SpringCloud?SpringCloud 是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。官方介绍:SpringCloud是基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。S...原创 2019-07-03 23:23:16 · 6083 阅读 · 0 评论