1.什么是服务治理
服务治理是微服务框架中最核心最基本的模块,用于实现各个微服务之间的自动注册和发现
自动注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息 ,并在注册中心形成一张注册清单,服务注册中心需要以心跳的方式去检测清单中的服务是否可用,如果不可用,需要在清单中剔除。
**服务发现:**服务调用方向注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实例的访问。
2.常见的注册中心
2.1 Erueka
2.2 Zookeeoer
2.3 Consul
2.4 Nacos

Nacos
nacos概述:nacos致力于帮助你发现,配置和管理微服务,nacos提供了一组简单易用的特性集,帮助你快速实现动态服务发现,服务配置,服务元数据及流量管理。由此可以看出nacos的作用就是一个注册中心,用来管理注册上来的各个微服务。
使用nacos
1.安装nacos服务器。

2.解压

3.启动

4.访问nacos服务器

用户名和密码都是nacos。

把微服务注册到注册中心
1.引入相关的jar文件,放到微服务的pom.xml

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>

2.再配置文件中配置nacos服务器的地址

spring:
cloud:nacos:discovery:server-addr: localhost:8848

3.在主启动类上添加nacos的开启注解

4.重新启动该微服务
5.查看nacos服务器是否存在该服

6.修改shop-Order的控制层代码

实现服务调用的负载均衡
什么是负载均衡
通俗的讲,负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。
根据负载均衡发生位置的不同,一般分为服务端的负载均衡和客户端的负载均衡。
服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡 ,而客户端的负载均衡指的是发生在服务请求的一方也就是发送请求之前已经选好了有哪个实例处理请求

自定义负载均衡—>随机的:

为了有集群的效果我们需要启动两台shop-product微服务


基于Ribbon实现负载均衡
1.什么是ribbon:
是 Netflix 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中, nacos一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从nacos中读 取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的 列表信息,并基于内置的负载均衡算法,请求服务。
2.Ribbon的主要作用
(1)服务调用
基于ribbon 实现服务调用,是通过拉取所有的服务列表组成(服务名-请求路径的)映射关系,借助restTemplate最终进行调用
(2)负载均衡
当有多个服务调用者时,ribbon可以根据负载均衡的算法自动选择需要调用的服务地址,ribbon是soringclound的一个组件它可以让我们使用一个注解就能轻松搞定负载均衡
3.ribbon实现负载均衡的步骤
3.1 再得到restTemplate上加一个注解@LoadBalanced

2.修改OrderController代码

3.修改负载均衡的策略。

shop-product:  # 这里使用服务的名称ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #使用的的负载均衡策略

缺点:
1.代码可读性较差
2.编码风格不一样

基于OpenFeign实现服务调用
1.什么是Feign
Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。

2.如何使用feign
2.1.Order引入相关的jar文件

<!--feign的jar文件 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.2.再主启动类上加入一个注解 开启feign

2.3.创建一个接口并加入feign的注解

2.4.修改OrderController代码

微服务架构—服务治理相关推荐

  1. 下一代微服务架构——服务网格Service Mesh

    下一代微服务架构--服务网格Service Mesh 下一代微服务架构--服务网格Service Mesh 服务治理 什么是服务治理 系统架构形态演进 现阶段存在的问题 Service Mesh是什么 ...

  2. 微服务架构-服务注册中心和服务网关(6.8) (转载)

    原文链接:微服务架构-服务注册中心和服务网关(6.8) 这篇文章还是基于SpringCloud开源框架体系来谈下对Eureka服务注册中心和Zuul服务网关在使用上的一些理解和说明.在使用微服务架构进 ...

  3. 微服务架构 — 服务治理 — 服务调用链可视化

    微服务架构所面临的问题 微服务架构中,服务之间会有错综复杂的依赖关系,例如:一个前端请求一般会依赖于多个后端服务,称为 "1=>N 扇出".在实际生产环境中,服务往往不是百分 ...

  4. 微服务架构 — 服务治理 — 服务限流、服务降级、服务熔断

    目录 文章目录 目录 服务限流 服务降级 服务熔断 服务限流 C ⇄ S 的异常问题:C 的请求太多,超出 S 的服务能力,导致 S 不可用.例如:DoS 攻击,企图耗尽被攻击对象的资源,让目标系统无 ...

  5. 微服务架构---服务降级

    1 简介 什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作. 如果还是不理解,那 ...

  6. 微服务架构—服务降级

    1 简介 什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作. 如果还是不理解,那 ...

  7. 微服务架构服务建模方法+服务拆分和集成2:服务拆分的维度和拆分策略

    目录 一.架构的轮回理论 二.服务拆分的维度:业务与数据的AKF扩展立方体分析 X轴扩展讲解: Y轴扩展讲解: Z轴扩展讲解: 总结: 三.服务拆分的两大策略:绞杀者模式+修缮者模式 1.绞杀者模式策 ...

  8. Spring Cloud构建微服务架构-服务网关

    通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: 愿意了解源码的朋友直接求求交流分享技术 一零三八七七四六二六 我们使用Sp ...

  9. 微服务架构 —— 服务雪崩与容错方案

    导航 一.什么是服务雪崩 二.雪崩效应的三个核心原因 三.容错 四.业界常见容错思路 五.常见容错组件 一.什么是服务雪崩 服务雪崩 指的是微服务架构中,微服务各节点之间由于网络通信异常或微服务自身故 ...

  10. 微服务架构-服务网关(Gateway)-服务网关在微服务中的应用

    服务网关在微服务中的应用 我们将目光转向Spring Cloud应用的外围,讨论微服务架构下的各个模块如何对外提供服务. 1.对外服务的难题 微服务架构下的应用系统体系很庞大,光是需要独立部零的基础组 ...

最新文章

  1. Three20对图片进行缓存之后,利用缓存的图片来进行显示的方式
  2. python3 使用psutil 查看内存占用
  3. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 缓存策略 | LruCache 内存缓存 | LruCache 常用操作 | 工具类代码 )
  4. 动态给a标签赋值_怎样利用Excel制作抖音上的心形动态函数图像?
  5. 图论 —— 图的连通性 —— 传递闭包
  6. 笨办法学 Python · 续 练习 10:`sort`
  7. playSwift第五章(函数和闭包)
  8. 现代ups电源及电路图集_不间断电源维修,服务靠谱
  9. EasyUI权限系列(一星权限)
  10. qq象棋辅助 android,QQ象棋自动下棋
  11. 西门子plc语句表是c语言吗,分享精心整理的西门子PLC指令表
  12. swfupload 无法加载_解决 KindEditor SWFUpload 批量上传检测用户登录状态的问题
  13. 富文本编辑器抓取秀米图片转存到七牛云
  14. java 滚动字幕_Java程序 实现图形面板上的字幕滚动效果
  15. shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
  16. Sublime Text 3 简体中文汉化包使用方法
  17. opencv,sobel求梯度,C++实现
  18. Mandiant对APT1组织的***行动的情报分析报告
  19. pandas datetime与时间戳互相转换,字符串转换datetime
  20. 为什么设置了smtp并已开启,qq邮箱发邮件还是不好使

热门文章

  1. Java中为什么要引入包装类?
  2. zynq amp Linux+bare裸跑代码中不能响应irq61中断
  3. Springdata_自己的小小总结02
  4. Nginx系列五: handler 模块
  5. 人工智能的深度学习,我将如何面对将来?
  6. 小程序写手机号码查吉凶,有检验手机号码正确性
  7. RIKIBOT智能小车关于环境变量的配置
  8. VMware虚拟机linux操作系统的ens33下没有IP地址的解决办法
  9. ps命令 – 显示进程状态
  10. 电子协会 C语言 3级 50 、猴子吃桃