目录

一:SpringCloud概述

二:SpringCloud(SpringBoot)如何构建微服务项目

三:SpringCloud的服务发现和注册的组件(作用阿里的Nacos) Spring Cloud 的各个组件说明

四:Ribbon:负载均衡客户端,需要结合RestTemplate(HttpClient)进行服务的调用

五:Feign   Feign默认集成了Ribbon,用它来管理服务(管理controller配置的路径)

六:Hystrix  熔断限流的组件

七: GateWay 网关组件

八: Ribbon和Feign区别

Spring Cloud 注意的细节

注意: 配置Feign,以及Rabbion的配置类上, 一定不能被springboot的引导类扫描到.


一:SpringCloud概述

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

二:SpringCloud(SpringBoot)如何构建微服务项目

创建一个父级项目:
统一springboot, springcloud的版本
创建一个子级项目:公共类的子级项目
统一维护其它自己项目要用到类
创建一个子级项目: 数据源的子级项目
创建一个网关的子级项目: GateWay
创建一个业务的子级项目: service
比如:
==商品业务的子级项目
==订单业务的子级项目
==秒杀业务的子级项目
创建一个业务接口的子级项目: openFeign
比如:
==商品业务接口的子级项目
==订单业务接口的子级项目
==秒杀业务接口的子级项目
创建一个用户访问入口的子级项目: web
SpringCloud构建的微服务项目之间的调用关系(执行流程)
用户通过客户端访问—>web入口---->GateWay子级项目 ---->openFeign子级项目—>service子级项目—>数据库

三:SpringCloud的服务发现和注册的组件(作用阿里的Nacos) Spring Cloud 的各个组件说明

1.注册中心 : Eureka server, 负责"保存"的服务(服务指的service子级项目的controller配置路径)
2.生产者: Eureka Client, 负责将服务发送到注册中心,由注册中心负责保存.
3.消费者: Eureka Client, 作用: 用户就是消费者,在客户端输入访问地址(地址服务),如果在注册中心由服务,就去访问,
4.如果在注册中心没有改服务,就报404
总结: 注册中心, 生产者, 消费者 三者之间的关系,以及通过心跳机制来管理服务

四:Ribbon:负载均衡客户端,需要结合RestTemplate(HttpClient)进行服务的调用

默认的负载均衡:轮询
服务器启动时,先从Eureka server获取服务列表,然后在请求微服务时,通过RestTemplate进行http调用
自定义访问策略
实现步骤: 自定义一个类, 实现Rule接口,那么我们自定义的类就是一个策略类(代码里面就是算法,确定访问方式)
方式一: 在定义的类上面加上@Configuration这个注解(注意: 该配置类不能被springboot扫描到)
方式二:在全局配置文件application.yml配置 策略类.

五:Feign   Feign默认集成了Ribbon,用它来管理服务(管理controller配置的路径)

Feign可以通过@FeignClient 注解标识一个接口,通过该接口生成一个代理类来进行远程的微服务调用

六:Hystrix  熔断限流的组件

为了防止微服务直接调用时,由于某一个微服务宕机导致整个项目无法访问(雪崩现象),这里采用Hystrix来阻断对存在宕机,异常情况的请求,直接本地返回

1)Ribbon集成,首先引入相关的依赖,接着开启@EnableHystrix
接着在调用微服务方法上添加 @HystrixCommand(fallbackMethod = “hiError”)指定服务异常的之后本地执行的方法
2)Feign集成,在微服务绑定的接口@FeignClient(value = “service-hi”,fallback = SchedualServiceHiHystric.class)中指定异常时调用本地接口实现
判定失败:Hystrix会在某个服务连续调用N次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务,执行本地业务。
恢复服务:Hystrix间隔时间会再次检查此服务,如果服务恢复将继续提供服务。Hystrix间隔几秒会让其中一个请求去调用远程微服务,如果调用成功,就表示服务正常,后面就重新链接
开路 断路

七: GateWay 网关组件

GateWay (网关):
GateWay的主要功能是路由转发和过滤器。路由功能是微服务的一部分,
比如/api/user转发到到user服务,/api/shop转发到到shop服务。GateWay默认和Ribbon结合实现了负载均衡的功能。
作用:限流处理,认证和授权,单点登录,日志管理等等
GateWay的位置:
客户端发送请求---------所有请求------->GateWay网关: 路由分发----------->openFeign: 远程调用-------->service业务

八: Ribbon和Feign区别

Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value=“服务名称”) 使用RestTemplate调用远程服务对应的方法

feign添加maven依赖 spring-starter-feign 服务提供方提供对外接口 调用方使用 在接口上使用@FeignClient(“指定服务名”)

Ribbon和Feign的区别: Ribbon和Feign都是用于调用其他服务的,不过方式不同。

启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

Spring Cloud 注意的细节

注意: 配置Feign,以及Rabbion的配置类上, 一定不能被springboot的引导类扫描到.

Spring Cloud 【微服务】相关推荐

  1. spring cloud微服务治理eureka、hystrix、zuul代码例子

    spring cloud微服务中台服务代码例子,包括eureka.hystrix.zuul https://github.com/birdstudiocn/spring-cloud-sample/tr ...

  2. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  3. Dubbo和Spring Cloud微服务架构对比

    一.为什么要使用微服务? 微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合. 今天我们来了解下业内主要的微服务框架:Dubbo 和 Spring Cloud 微服务主要的优势 降 ...

  4. Spring Cloud微服务版本灰度发布新神器

    项目地址:https://github.com/Nepxion/Discovery 强烈建议stra.fork该项目,该项目可以作为学习改造Spring Cloud组件的案例项目. Nepxion D ...

  5. 如何优化Spring Cloud微服务注册中心架构?

    作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...

  6. 从天气项目看Spring Cloud微服务治理

    网上搜集的资源,个人感觉还行,分享了 从天气项目看Spring Cloud微服务治理 网盘地址:https://pan.baidu.com/s/1ggn5uld 密码: n6bn 备用地址(腾讯微云) ...

  7. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介

    Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...

  8. Nacos发布 v0.2 版本,无缝支持 Spring Cloud 微服务生态及高可用集群模式

    2019独角兽企业重金招聘Python工程师标准>>> 近日,阿里巴巴新开源项目Nacos 发布了 v0.2 版本,该版本开始支持完整的Spring生态技术栈,这包括 Spring ...

  9. 使用Spring Security 资源服务器来保护Spring Cloud 微服务

    我在上一篇对资源服务器进行了简单的阐述,让大家对资源服务器的概念有了简单的认识,今天我将用实际例子来演示单体应用改造为Spring Cloud微服务时的资源服务器实现. 资源服务器改造 以Spring ...

  10. 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》

    <Spring Cloud微服务-全栈技术与案例解析> 在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据.传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服 ...

最新文章

  1. Git 修改用户名和邮箱
  2. 查找计算机 域服务不可用,win7系统打印文件提示Active Directory域服务不可用解决方法...
  3. 企业可视化报表工具选型经验分享
  4. Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)
  5. WinCE5.0中文模拟器SDK(VS2005,VS2008)的配置
  6. String中intern的方法
  7. Spark的Dataset操作
  8. 流浪宠物救助网站前端页面_全国爱心人士齐聚鞍山 救助流浪猫狗
  9. html里面怎么ul加高度,div里面嵌套了ul,为什么div的高度小于ul高度
  10. Win10 Qt5安装
  11. 提前泄露小米10至尊版,博主赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型;​快手宣布7月将取消大小周|极客头条
  12. 数据库学mysql python_mysql学习(4)python操作数据库
  13. 温度控制直流电动机的c语言,温度控制直流电动机转速系统设计报告
  14. 【读书笔记】商业自传-PayPal程序员-硅谷钢铁侠-埃隆·马斯克,SpaceX CEO、特斯拉公司CEO、太阳城公司董事会主席。
  15. 阿里云Maven仓库pom文件配置
  16. python 爬取 js渲染_scrapy 爬取 javascript 动态渲染页面
  17. OpenEuler上构建LFS8.4
  18. 计算机学科导论-2013级教学材料
  19. 彻底关闭Windows更新
  20. 什么是零代码开发平台,为什么企业IT应该重视?

热门文章

  1. 关于笔记本屏幕的一点个人意见——鄙人的第一篇CSDN博客
  2. 西门子S7-1500PLC大型程序,各种FB块PTO控制20多个轴
  3. JFormDesigner教程(02)demo演示 java swing插件
  4. Scrapy + Selenium 实现模拟登录,获取页面动态加载数据
  5. 5 个最值得注意的开源集中式日志管理工具
  6. 国内笔试面试风格及准备方法
  7. nn.BatchNorm2d() 手推计算步骤
  8. 欢迎使用CSDN-markdown编辑器2
  9. 大数据“偏见”会让我们变蠢吗
  10. 竞争性排斥原理(高斯假说)