SpringCloud

SpringCloud从技术架构上降低了对大型系统构建的要求和难度,使我们以非常低的成本(技术或者硬件)搭建一套高效,分布式,容错的平台.

SpringBoot建议采用2.1.x版本

实际开发中,每个微服务为一个独立的SpringBoot工程

一. 工程的创建

1.1 创建服务的父工程

创建maven工程   配置依赖坐标 (SpringBoot,SpringCloud)

maven的parent 以及SpringCloud的依赖管理坐标

1.2 创建服务提供者(provider)工程

创建SpringBoot工程  勾选依赖坐标    数据库连接信息

编写三层架构: Mapper  Service  Controller

配置Mapper映射文件

在配置文件application.properties 或者 application.yml 中

添加MyBatis配置 扫描mapper.xml和mapper

1.3 创建服务消费者(consumer)工程

创建SpringBoot工程 consumer_service    勾选starter

注册RestTemplate用于发送请求

在Controller中调用RestTemplate   

二. 注册中心 Spring Cloud Eureka

Eureka负责管理记录服务提供者的信息。

服务调用者无需自己寻找服务,Eureka自动匹配服务给调用者。

服务提供者:启动后向Eureka注册自己的信息(地址,提供什么服务)

服务消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新

心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态

搭建 eureka-server工程

创建springboot工程      勾选坐标 Eureka_server 

在启动类EurekaServerApplication声明当前应用为Eureka服务

使用@EnableEurekaServer注解  // 开启注册中心

编写配置文件application.yml

在 服务提供者(user-service) 添加注册服务中心 Eureka

先在 服务提供者中导入pom文件

然后再启动类上开启 Eureka 客户端发现功能 

使用注解@EnableDiscoveryClient  // 开启Eureka客户端发现功能

最后在application.yml 中注入eurekaserver配置

在 服务消费者(consumer-service) 添加注册服务中心 Eureka 

在启动类开启Eureka客户端  使用注解@EnableDiscoveryClient  // 开启服务发现

最后修改application.yml配置文件

消费者consumer 通过Eureka 访问提供者provice

首先在controller中注入  DiscoveryClient

Eureka中三个核心角色:

Eureka服务注册中心: 提供服务注册发现功能

服务提供者:  提供服务的应用

服务消费者:  从注册中心获取服务列表 ,知道去哪调用服务方


服务注册过程:

当我们导入了eureka-client依赖坐标,配置Eureka服务注册中心地址

服务在启动时,会检测是否有@DiscoveryClient注解和配置信息

如果有,则会向注册中心发起注册请求,携带服务元数据信息

Eureka注册中心会把服务的信息保存在Map中。

服务的续约:

服务每隔30秒会向注册中心续约(心跳)一次,如果没有续约,

租约在90秒后到期,然后服务会被失效

获取服务列表:

每隔30秒服务会从注册中心中拉取一份服务列表,这个时间可以通过配置修改

三. 负载均衡 Spring Cloud Ribbon

在存在多个服务提供者时, 使用负载均衡

因为Eureka已经集成了Ribbon,所以无需引入依赖

直接在RestTemplate的配置方法上添加注解 @LoadBalanced // 开启负载均衡

修改ConsumerController调用方式,不再手动获取ip和端口,而是直接通过服务名称调用

Ribbon默认的负载均衡策略是轮询 , 可以通过修改配置来变成随机

负载均衡器会动态的从服务注册中心中获取服务提供者的访问地址(host、port) 根据service名称

四.  熔断器 Spring Cloud Hystrix

目标:服务提供者的服务出现了故障,服务消费者快速失败给用户友好提示。服务降级

首先要在服务消费者pom中引入熔断的starter依赖坐标

服务消费者中开启熔断的注解 在启动类上开启

编写服务降级处理方法:  使用@HystrixCommand定义fallback方法

其中fallbackMethod的值要和降级方法名称相同

参数 和 返回值 原方法和降级方法的都要相同

可以配置的熔断策略:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • 服务治理之Spring Cloud Eureka 1.服务治理。可以说是微服务架构中最为核心和基础的模块,主要用来...
    LUOERD阅读 388评论 0 1
  • Eureka和Zookeeper很类似,它是SpringCloud框架中的服务注册及发现组件。所有的微服务在使用过...
    Coding小聪阅读 7,146评论 0 10
  • 一、简介 Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,...
    生活的探路者阅读 1,055评论 0 6
  • 听,大雨在哭泣曾经深情的表白如今变成了愤怒的讨伐负心汉多如牛毛痴情女子也浩若繁星男人和女人的恩怨犹如白天与夜晚的对...
    上官飞鸿阅读 234评论 4 3
  • 星座的话 你信 它就是那么回事 你若不信 也就都是虚的 我是一只七月份的蟹子 心里住着一只小魔鬼 时不时让我堕入黑...
    三趾树懒记阅读 234评论 0 1