ribbon+eureka实现负载均衡

[享学Ribbon] 二十七、手把手教你原生Ribbon整合Eureka实现负载均衡 本文是个纯代码示例的手工活,是对前两篇文章一个很好的总结。了解A哥的风格是清楚的:理论先行,代码示例跟上加固。我们从小学就知道学习需要**多看、多想、多做(多实现)**,代码更是如此。在现在信息大爆炸时代,大多数人对“多看”做的都挺好,但是殊不知:**看和做往往是有一道银河的距离的**。所以A哥在此顺道呼吁一句:敲代码一定要多动手多动手多动手,否则你很容易只会纸上谈兵,也就容易离它渐行渐远。 既然你看到了本系列文章,那么A哥就管生管养喽,本文将手把手的教你,如何纯手工控制的把Ribbon和Eureka整合 阅读详情

去年的时候学习了使用nginx实现负载均衡,但是在微服务中一般使用ribbon或者openfeign实现负载均衡。今天学习一下ribbon

首先启动eureka的客户端(单机版和集群都行)

创建两个项目代码完全一致,只是端口号不一样

eureka的配置信息:

eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #单机版
      defaultZone: http://localhost:7001/eureka
      # 集群版
      #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: payment8001
    #访问路径可以显示IP地址
    prefer-ip-address: true
    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
    lease-renewal-interval-in-seconds: 1
    #Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
    lease-expiration-duration-in-seconds: 2

然后再主启动类加上@EnableEurekaClient  @EnableDiscoveryClient两个注解

controller创建一个方法只返回端口即可。

消费端代码:

eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #单机版
      defaultZone: http://localhost:7001/eureka
      # 集群版
      #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: order8002
    #访问路径可以显示IP地址
    prefer-ip-address: true
    #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
    #lease-renewal-interval-in-seconds: 1
    #Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务
    #lease-expiration-duration-in-seconds: 2

spring:
  application:
    name: cloud-order-serive

同理在主启动类加上上面的两个注解

创建ApplicationContextConfig类配置RestTemplate

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

controller类:

使用@Resource注解注入RestTemplate,然后直接调用即可。其中的url就是客户端application.yml中配置的spring.application.name的值。两个项目中的这个值保持一致。

@GetMapping(value = "/consumer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
        log.info("====================");
        return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id, CommonResult.class);
    }

 

【微服务】SpringCloud中Ribbon集成Eureka实现负载均衡 在前面的文章中已经分析了Ribbon实现负载均衡的原理,我们这篇文章接着讲解ribbon如何集成eureka的,入口是什么?如何获取eureka服务列表,服务发现,缓存到本地?如何动态获取更新服务列表,周期性任务?如何选取一个可以用的服务Ping机制,周期性任务?CAS加锁、释放锁? 阅读详情

相关推荐

Eureka 整合Ribbon 实现客户端侧负载均衡

前言: 一般来说,在生成环境中,各个微服务都会部署多个实例,那么服务消费者要如何将请求分摊到多个服务提供者实例上呢? 1.Ribbon 简介 Ribbon 是Netflix 发布的负载均衡器,它有助于HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认提供了很多的负载均衡算法,例如: 轮询丶随机等。当然也可以为Ribbon实现自定义的负载均衡算法。 在Spring C...

街角有人祝福,巷口有人哭~ 453

springCloud之Eureka之负载均衡Ribbon

说完了注册中心Eureka,虽然Eureka可以实现服务的发现和调用,但在微服务体系中,服务的发现和调用往往是需要伴随着负载均衡这个概念一体的。而在SpringCloud中自然也存在着与Eureka配套的负载均衡组件,也就是Ribbon组件。Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端 负载均衡 工具简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系

newsun87的博客 2404

Cadence SKILL 语言实战指南:从函数列表到高效自动化脚本

本文是Cadence SKILL语言实战指南,旨在帮助芯片设计工程师从掌握核心函数列表出发,高效构建自动化脚本。文章详细解析了数据处理、数据库访问、流程控制及错误处理四类关键函数,并通过版图层批量修改与参数化单元生成两大实战场景,演示如何将函数组合成解决实际问题的自动化方案,从而显著提升Virtuoso环境下的工作效率。

beta5的博客 704

怎么用Ribbon+Eureka实现负载均衡?

一、Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端行为。为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡算法,自动地帮助服务消费者去提供请求。 在springcloud中,当Ribbon配合Eureka使用时,Ribbon可自动从Eureka Server获取服务提供者的地址列表,...

Dream_it_possible!的博客 1984

AD元件库构建及维护之——DbLib公共元件库的使用教程

AD元件库构建及维护之——DbLib元件库的使用教程

qq_43105486的博客 2万+

利用树莓派制作智能音箱

利用树莓派制作智能音箱

qq_61803022的博客 1776

Eureka注册中心-Ribbon负载均衡

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:基本流程如下:拦截我们的RestTemplate请求RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表eureka返回列表,localhost:8081、localhost:8082。

qq_47387991的博客 1005

AI 代码赋能短视频带货:服装及多赛道批量内容生产全流程实操

本文聚焦 AI 技术在短视频带货领域的落地应用,以服装赛道为核心,延伸至花卉绿植、图书、茶具等热门领域,系统拆解 AI 工具在选品、素材处理、视频制作(含动态效果、场景搭建)、运营优化等环节的实操方法。针对从业者普遍面临的 “内容生产低效”“无专业技术难出优质视频”“流量运营踩坑” 等痛点,提供从基础工具使用到高阶视频制作的全流程技术方案,助力相关从业者借助 AI 实现批量、高效的短视频内容产出。

m0_67958922的博客 3082

【微服务系列】eureka结合Ribbon进行负载均衡搭建

【微服务系列】eruka结合Ribbon进行负载均衡EurekaRibbonSpringBoot集成eureka与Ribbon示例代码:创建eureka注册中心:创建ribbon创建服务提供者Hello Eureka Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Eureka是一个基于REST(Representational State Transfer)的服务,主要...

C_hao 1999

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 681

Python爬虫实战:微信小程序内容采集的全面指南

在移动互联网时代,微信小程序已成为企业和个人提供服务的重要渠道。小程序中包含了大量有价值的信息,但微信官方并未提供便捷的数据获取接口。本文将详细介绍如何使用Python爬虫技术采集微信小程序内容,包括最新技术方案、完整代码实现以及应对各种反爬机制的策略。小程序运行在微信封闭环境中,无法直接访问数据通信主要通过HTTPS加密传输内容动态加载,依赖JavaScript渲染微信有严格的反爬机制。

2201_76125261的博客 3114

Eureka与Ribbon笔记

Eureka与Ribbon 注册中心 注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时, 就到这里找到服务的地址进行调用 常见的注册中心 Netflix Eureka Alibaba Nacos HashiCorp Consul Apache Zookeeper CoreOS Etcd CNCF CoreDNS 特性 Eureka Nacos Consul Zookeeper CAP AP CP+A

qq_37604054的博客 1152

进阶06:C#连接TwinCAT 3使用ADS通讯

本文介绍了使用C#通过ADS协议与倍福TwinCAT3 PLC通讯的实现方法。主要内容包括:1)在两台电脑上安装TwinCAT3开发环境并建立网络连接;2)在TwinCAT中定义变量和结构体;3)使用C# Winform开发界面,通过TwinCAT.Ads.dll实现读写功能;4)实现主动读取和通知两种数据获取方式。详细说明了连接建立、变量定义、读写操作及事件通知的实现代码。该方案实现了对PLC寄存器数据的实时监控和操作,为工业控制系统的开发提供了参考。

weixin_38637405的博客 3688

Eureka & Ribbon实现服务调用和负载均衡

Ribbon是什么 Spring cloud Ribbon是基于Netflix Ribbon实现的一套客户端服务调用以及负载均衡的工具。 Ribbon + Eureka + RestTemplate Eureka已经集成了Ribbon Ribbon在工作时分成三步: 优先选择在同一个区域内负载较少的Eureka Server(当Eureka Server是集群的时候) 从选择的Eureka Server中获取服务注册列表(服务发现),并将信息缓存起来 根据用户配置的负载均衡策略,从第二步获取到的服务注册

qq_17690301的博客 1027

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Ribbon+Eureka实现负载均衡

记录一下Ribbon+Eureka实现负载均衡初次练习 首先是service 主配置文件 server.port=9100 #设置该服务注册中心的hostname,也是域名,可以自己去设置 eureka.instance.hostname=localhost #由于我们目前创建的应用是一个服务注册中心,而不是普通的应用,默认情况下,这个应用会向注册中心(也是它自己)注册它自己,设置为false表示禁止这种自己向自己注册的默认行为 eureka.client.register-with-eureka=fals

qq_45271568的博客 433

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Eureka与Ribbon的协作:实现客户端负载均衡的详细指南

Eureka是Netflix开源的服务发现组件,在Spring Cloud中占据着重要地位。:服务注册中心,所有微服务实例在启动时都会向Eureka Server注册,并定期发送心跳保持注册信息的有效性。Eureka Server还负责提供服务实例的查询功能,供其他微服务发现和调用。:每个微服务都作为一个Eureka Client,负责向Eureka Server注册自己,并定期从Eureka Server获取服务实例的列表,从而实现服务发现和调用。

2401_85639015的博客 1911

使用Ribbon实现Eureka的负载均衡

本篇接于《SpringBoot:Eureka搭建注册中心》和《SpringBoot:Eureka创建服务消费者》。 pom文件 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifact

简单随风的博客 512

Ribbon、Feign和Eureka实现负载均衡

现有两个SpringBoot应用,应用 A和应用B:应用A通过Feign远程调用应用B,但如果应用B单个应用无法支撑应用A的大量请求,则可如下实现应用B的多实例。1.应用B多个实例都注册到同一个Eureka,且所有实例的配置文件中的:spring.application.name都相同:spring.application.name: appb2. 所有的应用B启动类都增加EnableDiscov...

大头哥的哥 2771

SpringCloud:Ribbon负载均衡(基本使用、 负载均衡、自定义配置、禁用 Eureka 实现 Ribbon 调用)

现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归 属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之中,而客户端的调用也 应该通过 Eureka 完成。而这种调用就可以利用 Ribbon 技术来实现。 Ribbon 是一个服务调用的组件,并且是一个客户端实现负载均衡处理的组件。服务器端实现...

Leon_Jinhai_Sun的博客 585

Ribbon实现Eureka负载均衡

配置Eureka见Eureka Server配置_JiuXu九旭的博客-优快云博客 配置Ribbon 提供者配置 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

weixin_43783537的博客 814

Eureka+Ribbon+RestTemplate实现客户端软负载均衡的两种方式

前言 最近在学习 SpringCloud 的东西,在使用 RestTemplate 结合 Ribbon 时,自己写的demo死活不过去。 在 Server 的 demo 里,我提供了一个对外的 Controller 。而里面调用的,则是用了这次说的实现软负载均衡的调用方法。 但,其中遇到一个问题,就是下面的: No instances available for XXX 主要是刚学习,稀里糊涂的...

melody_sy博客 1559

Eureka + Ribbon + restTemplate 实现负载均衡

Eureka + Ribbon + restTemplate 实现负载均衡 提示:本篇文章只适合新手参考(因为我也是才学) 一、搭建Eureka-Server 注:父工程自行搭建 1、创建Eureka-Server模块 右击项目—>new—>Model—>spring initalizr 在选择依赖的时候在spring cloud Discovery中选择Eureka Server 2、配置application.yml 因为eureka server是通过主机名来分别实例的,在C:\Wi

qq_49810363的博客 377

spring cloud ribbon脱离eureka实现负载均衡

如果服务自定义了一个@RibbonClient并且项目可能没有用到Eureka(甚至eureka都不在编译文件当中)。Ribbon Client可以支持ribbon脱离eureka,实现对本地配置的服务使用负载均衡。 在上一节的ms-ribbon-yml-consumer的模块下,修改yml的配置文件:表示不使用eureka,当有多个节点时,只访问listofservers配置的端口节点7900。 可以起到过滤作用:指定那个能访问,那个不能访问。 #ribbon 脱离eureka实现负载均衡 rib

健康平安的活着的专栏 662

基于Spring cloud Ribbon和Eureka实现客户端负载均衡

前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现; 传统的服务端负载均衡 常见的服务端负载均衡有基于nginx实现的,Nginx收到请求后,通过轮询,IP哈希等算法来决定转发该请求到哪个服务来处理,这种方式缺点还是比较多的; 客户端负载均衡 在微服务架构中,会有很多服务,每个服务...

疯一样的码农 131

springCloud的eureka注册发现和ribbon客户端实现负载均衡

eureka是一个服务注册和发现的组件,eureka分为服务的提供者和服务的发现者和注册中心,接下来我们就来搭建一下。

qq_18841277的博客 653
上一篇: springboot+zookeeper实现服务注册
下一篇: openfeign+eureka实现负载均衡
若往夕之
博客等级 码龄9年 20粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值