首页 > 其他分享 >springcloud日常学习

springcloud日常学习

时间:2023-09-11 14:33:39浏览次数:32  
标签:负载 服务 8002 springcloud 学习 日常 均衡 Ribbon 客户端

一、 Ribbon客户端负载均衡

1. 负载均衡介绍

  ① LB,即负载均衡(Load Balance),负载均衡是微服务架构中经常使用的一种技术。负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,简单的说就是将用户的请求平摊的分配到多个服务上,从而实现系统的高可用性集群。

② 服务端的负载均衡

springcloud日常学习_负载均衡

     实现负债均衡的硬件:LVS(Linux Virtual Server)、F5、A10

  ③ 客户端的负载均衡

在客户端负载均衡中,每个客户端服务都有一份自己要访问的服务端清单,这些清单统统都是从Eureka服务注册中心获取的。(排队做核算检测)

而在服务端负载均衡中,只要负载均衡器维护一份服务端列表(去医院就诊-导诊台)

2. Ribbon负载均衡实现流程

springcloud日常学习_客户端_02

实现过程:在客户端中注册/配置Ribbon负载均衡器,Riboon就可以从EurekaServer中获取微服务列表,根据Ribbon的负载均衡算法(默认是轮循算法)去调用微服务。

3. Ribbon客户端负载均衡实现步骤

 需求:在consumer消费者微服务中实现Ribbon的负载均衡

① 修改pom.xml文件,引入Eureka和Ribbon的依赖

springcloud日常学习_服务端_03

springcloud日常学习_客户端_04

② 配置yml文件

   需要从Eureka中获取服务列表

springcloud日常学习_客户端_05

③ 优化RestTemplate的访问

    A、让RestTemplate具有负载均衡的功能/开启负载均衡

B、把原有的ip+port的访问方式修改为服务名称(提供者yml中的spring.application.name值)的访问方式

可以通过注解@LoadBalanced来实现以上的两个功能。

在获取RestTemplate对象的配置类中添加@LoadBalanced注解即可:

springcloud日常学习_springcloud_06

④ 消费者微服务中修改访问url路径为提供者的应用名称

springcloud日常学习_服务端_07

     提供者yml中配置的应用名称:

springcloud日常学习_负载均衡_08

⑤ 修改消费者启动类,加上Eureka客户端标识

springcloud日常学习_服务端_09

⑥ 启动服务

   启动顺序:

springcloud日常学习_服务端_10

⑦ 测试

springcloud日常学习_springcloud_11

注意:Ribbon的客户端实现负载均衡需要服务端提供者实现集群

4. 微服务提供者的集群测试客户端的负载均衡

实现微服务提供者的集群,Ribbon客户端的负载均衡就会看到效果

springcloud日常学习_负载均衡_12

需求:创建服务提供者的集群,之前有一个8001的提供者,还需要创建一个8002的提供者实现集群

① 创建一个8002的服务提供者,和8001一致

② 8002的业务和8001完全一致,除了yml的配置文件需要修改:

   A、修改端口号为8002

   B、为了区分负载均衡访问的是集群中的哪个服务,所以通过数据库来进行区分

      修改8002的数据库为springcloude-db2

   C、服务名称需要同一个集群中各服务的名称要一致,所以8001和8002的服务名称都为ms-product

③ 启动服务测试

   A、先启动6001、6002注册中心集群服务

   B、再启动8001、8002服务提供者集群,启动后会注册到6001、6002注册中心中

springcloud日常学习_负载均衡_13

   C、测试8001、8002是否能正常访问到数据

springcloud日常学习_负载均衡_14

   D、再启动80消费者负载均衡服务

springcloud日常学习_客户端_15

springcloud日常学习_客户端_16

标签:负载,服务,8002,springcloud,学习,日常,均衡,Ribbon,客户端
From: https://blog.51cto.com/u_16229215/7435836

相关文章

  • 行政人事的日常丨每个人心里都有一团火
    小思(化名),90后女生,在软件公司担任行政人事岗位。她的公司一直以“企业内容管理”为理念,通过管理和利用知识资产,提高工作效率、降低风险,增强企业竞争力。所以,她的日常工作除了招聘、员工管理、企业文化搭建,还需要每月对企业知识资产进行集中管理。小思是一个耐心且上进的人,她一直期......
  • 合集——对抗路兄妹的日常(不定期更新)
    1、《关于恋爱纪念日的界定》 2、《人人的相爱都有缘由》 3、《被哥哥抛弃的梦》 4、《米其林三星饭店招牌菜品之——番茄盐焗蛋》 5、《两者都是》 ......
  • 日常分享专栏系列之:Gossip protocol
    日常分享专栏系列之:Gossipprotocol一、认识Gossipprotocol二、Gossipprotocol特点三、Cassandra数据库对Gossip协议的应用四、Gossipprotocol官方文档一、认识GossipprotocolGossipprotocol是一种分布式系统中用于信息传播和一致性维护的通信协议。它是一种通过节点之间相......
  • Debezium日常分享系列之:Oracle数据库系列文章之安装和设置
    Debezium日常分享系列之:Oracle数据库系列文章之安装和设置一、什么是Oracle二、安装Oracle三、配置Oracle1.配置Oracle:归档日志2.配置Oracle:重做日志3.配置Oracle:补充日志记录4.配置Oracle:用户设置四、总结这篇文章是由3部分组成的系列文章的一部分,该系列文章探讨如何使用......
  • Debezium日常分享系列之:使用 Debezium 连接器实现密钥外部化
    Debezium日常分享系列之:使用Debezium连接器实现密钥外部化一、需求背景二、Debeziumconnector注册请求三、实现Debezium连接器密钥外部化一、需求背景隐藏数据库的账号和密码当Debezium连接器部署到KafkaConnect实例时,有时需要对ConnectAPI的其他用户隐藏数据库凭据。......
  • docker 学习笔记
    1、基本命令dockerversion#查看docker的版本信息dockerinfo#查看docker的系统信息,包括镜像和容器数量docker命令--help#查看命令帮助文档命令的帮助文档地址:https://docs.docker.com/engine/reference/commandline/docker/ 2、镜像命令docker......
  • Unity 游戏开发、01 基础篇 | 阿发入门篇全课程学习笔记
    UnityDocumentation、全课程视频、第15,24章视频afanihaoUnity入门,全课程内容个人学习笔记,简单部分一笔带过,重点内容带⭐2.3窗口布局Unity默认窗口布局Hierarchy层级窗口Scene场景窗口,3D视图窗口Game游戏播放窗口Inspector检查器窗口,属性窗口Project项目窗......
  • 我个人学习C语言的近期规划
    一.困难点最近我发现学习C语言已经变得越发的困难,接下来我说一下主要的困难点1.学习时很多前面用到的知识点已经遗忘,需要通过重复学习和看笔记才能勉强理解2.写代码时候逻辑经常出现混乱,会写出很多的bug3.困难点(对我来说)第一个就是从函数的递归开始代码很难进行构思,多次递归后就会......
  • 2023-最新嵌入式学习路线!
    2023-最新嵌入式学习路线!说明:以下学习路线基于我本人在22年秋招过程中的嵌入式学习、面试经验整理主要面向嵌入式软件、linux、驱动岗位,相比其他大而全的嵌入式学习路线,本文注重嵌入式面试重点、核心、精简内容。(没有废话、全是干货)嵌入式核心知识点----基本功------......
  • 高级系统架构师学习(三)软件架构设计-上篇
    一、软件架构的概念什么是架构?【暂无定论】定义:架构设计就是需求分配,即将满足需求的职责分配到组件上。本质:为软件系统提供了一个结构、行为和属性的高级抽象。【软件架构==软件体系结构】作用:是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开......