[学习微服务-第6天] 负载均衡之ServiceComb + SpringCloud Ribbon

ServiceComb--负载均衡策略 ServiceComb--负载均衡策略 ServiceComb提供了基于Ribbon的负载均衡方案,用户可以通过配置文件配置负载均衡策略,当前支持随机、顺序、基于响应时间的权值等多种负载均衡路由策略。 作为ServiceComb内置策略,我们测试一下执行效果: 1、将服务提供者的启动类设置为共享(Share)模式。如下图所示: 2、修改服务提供者的service类,加入一行输出代码... 阅读详情

在微服务架构中,客户端负载均衡是指负载均衡器作为客户端软件的一部分,客户端得到可用的服务实例列表然后按照特定的负载均衡策略,分发请求到不同的服务。

 

ServiceComb内置了客户端负载均衡组件,开发者可以非常简单的使用。具体可参考:

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalance.html 

 

本文将介绍ServiceComb与SpringCloud的Ribbon负载均衡组件协同工作,以构建微服务应用。ServiceComb已适配对应的接口和配置,用户用极简单的方法配置后即可使微服务应用具备负载均衡的能力。

 

示例

以下通过一个服务提供者provider-service和消费者consumer-service作为demo演示。

provider-service会启动3个微服务实例,消费者端consumer-service使用Ribbon负载均衡调用proveder-service服务的接口。其中consumer-service在调用provider-service提供的接口时会打印出真实调用的URL ↓↓↓

完整示例地址:

https://github.com/lisenwork/servicecomb-demo/tree/master/servicecomb-ribbon 

 

预置条件:  示例应先安装启动服务与注册中心ServiceCenter,详细步骤请参考官网↓↓↓

http://servicecomb.apache.org/cn/users/setup-environment/#%E8%BF%90%E8%A1%8Cservice-center

 

一

开发服务消费者comsumer-service

只需三步即可开发拥有负载均衡能力的微服务

步骤如下:↓↓↓

01添加依赖

新建pom文件,引入如下依赖。

完整pom文件内容请参考↓↓↓

https://github.com/lisenwork/servicecomb-demo/blob/master/servicecomb-ribbon/consumer-service/pom.xml     

 

02配置 

在resources目录下新建ServiceComb配置文件microservice.yaml。配置微服务信息↓↓↓

 

03项目入口

新建启动类ConsumerApplication.java。如下图,启动类里同时实例化一个RestTemplate对象。该对象用于后面的服务间接口调用。

新建ConsumerController.java。在该类的consumer方法里使用Ribbon的API动态获取服务实例,并打印出被选中的实例的真实IP地址和端口。最后调用服务实例的接口,获取结果并返回。

 

04启动

项目根目录下执行命令 mvn spring-boot:run

 

二

开发服务提供者provider-service

 

01添加依赖

新建pom文件,引入如下依赖。

完整pom文件内容请参考↓↓↓

https://github.com/lisenwork/servicecomb-demo/blob/master/servicecomb-ribbon/provider-service/pom.xml 

 

02配置 

在src/main/resources目录下新建microservice.yaml

 

03项目入口

新建启动类ProviderApplication.java

新建ProviderController.java。只向外提供/provider接口

 

04启动 

服务提供者要启动3个微服务实例。

打开microservice.yaml文件,分别修改微服务监听端口为8888,8889,8890,在项目根目录下执行3次命令 mvn spring-boot:run

 

演示

浏览器访问http://localhost:7777/consumer,重复刷新一定次数,观察控制台,会发现服务消费者会轮询调用服务提供者的三个实例。

 

小结

本文向社区读者从读者角度阐述了ServiceComb是如何支持SpringCloud Ribbon的。

我们也非常欢迎爱好者们向社区提问和贡献代码。

下章我们将介绍ServiceComb+SpringCloud Ribbon源码篇。

如果在阅读代码时有任何疑问想交流,欢迎扫码加入进微信群。

期待志同道合的朋友们加入

ServiceComb的大门为你们敞开~

用心做开源,不忘初衷

 

 

前期阅读

[学习微服务-第5天]

ServiceComb+Zipkin源码解读

[学习微服务-第4天]

ServiceComb+Zipkin

[学习微服务-第3天] 

ServiceComb内置高性能网关服务

[每天学习微服务-源码解读] 

ServiceComb+SpringCloud Zuul

[每天学习微服务-网关]

ServiceComb+SpringCloud Zuul

 

了解更多信息请访问

官方网站http://servicecomb.apache.org/ 

Github代码仓库https://github.com/apache?q=ServiceComb

Apache ServiceComb架构升级:实现多数据中心微服务发现与负载均衡 随着微服务架构的广泛应用,越来越多的组织开始构建分布式系统,其中涉及多个数据中心的部署。为了有效管理和调度这些分布式微服务,Apache ServiceComb进行了架构升级,引入了多数据中心微服务发现和负载均衡的支持。本文将详细介绍ServiceComb架构的演进,并提供相应的源代码示例。 阅读详情

相关推荐

servicecomb总结.docx

此文章是自己整理,从serviceComb整体架构,整体设计概念,与SpringCloud做对比,以及基础的项目开发,包括负载均衡、服务熔断、服务降级、服务限流等笔记讲解。

ServiceComb Java Chassis 快速入门和复杂系统实践经验总结

快速搭建一个典型的微服务应用 项目介绍 示例微服务应用由 4 个微服务组成。 应用网关:负责接收前端的请求,并将请求转发给后端服务处理。应用网关还负责简单的认证功能。 文件服务: 提供一个上传文件接口,和删除文件接口。 用户管理: 提供登录认证逻辑实现。 静态页面托管 HTML/JS/CSS等。 本地微服务引擎本是CSE 微服务引擎的简化版本,用于本地开发调试。它包含3个服务。 服务中心:负责服务注册和发现。 配置中心:负责集中配置管理。 控制台:提供前端管理界面。 安装...

微服务技术与实践专栏 2581

SpringCloud微服务入门案例注册中心(SpringBoot2.X)

网上全是SpringCloud微服务全是1.X教程,此是SpringBoot2.2.5搭配最新SpringCloud Hoxton.SR4版本的入门案例的注册中心搭配..

华为云ServiceComb引擎实战-01.服务注册与配置

转载请注明出处。

GQ_YIN日常记录 1808

微服务servicecomb与阿里分布式事务fescar整合插件

将servicecomb和阿里的fescar分布式事务进行整合,使用方式 将jar文件添加到classpath目录,再配置jescar-consumer,jescar-provider,即可实现微服务间的事务控制

伺服电机入门01

编码器输出 旋转信号 , 接收端: 使用ADC 捕捉旋转信号 ,转成数字信号,驱动器得到数字处理, 因为信号量是模拟信号, mcu mpu 等芯片通常内部处理是数字,通过adc 得到数字cpu 才能识别 传输过来的pos 等信息。IPM 芯片示例, IRAM256A 这个芯片已经停产,有换新的,,下面示例来自stmbl 高功率方案,4 步进电机 有全步控制,半步控制 ,微步控制,FOC控制,步进电机也是可以做伺服系统的。以下面几种信号是可以细分,也就是通过细分增加编码器的分辨率,

qq_25160559的博客 972

微服务:常用注册中心对比

组件一致性模型健康检查通信协议动态配置适用场景NacosAP/CP 可选客户端心跳 + 服务端探测HTTP/gRPC支持微服务全链路(注册+配置)EurekaAP客户端心跳HTTP不支持Spring Cloud Netflix 生态ConsulCP主动探测 + TTLHTTP/DNS支持多数据中心、强一致性场景ZookeeperCP会话心跳TCP不支持Dubbo 生态、分布式协调CP心跳 + 自定义探活gRPC支持ServiceComb 生态、云原生架构。

hrfhrf32101的博客 1218

从理论到波形:NE555多谐振荡器设计与示波器实战验证

本文详细介绍了NE555多谐振荡器的设计原理与实战验证方法。从基础理论到电路参数计算,再到面包板搭建与示波器测量,全面解析如何利用NE555芯片实现稳定的方波输出。通过实际案例演示了频率调整、占空比优化等技巧,并提供了常见问题排查指南,帮助电子爱好者快速掌握这一经典电路设计。

weixin_29159613的博客 283

[学习微服务-第6天] 负载均衡之ServiceComb + SpringCloud Ribbon--带图

在微服务架构中,客户端负载均衡是指负载均衡器作为客户端软件的一部分,客户端得到可用的服务实例列表然后按照特定的负载均衡策略,分发请求到不同的服务。 ServiceComb内置了客户端负载均衡组件,开发者可以非常简单的使用。具体可参考: https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalanc...

宁静致远 357

告别示教器!用C#和ABB PC SDK 6.08打造你的第一个Windows机器人控制台(附完整连接代码)

本文详细介绍了如何使用C#和ABB PC SDK 6.08开发Windows机器人控制台应用,实现无示教器的机器人控制。从环境配置、SDK引用到机器人发现、连接及状态监控,提供了完整的代码示例和架构设计建议,帮助开发者快速掌握上位机控制技术。

weixin_29758911的博客 323

基于强化学习的多无人机路径规划

我们使用了Dueling Double Deep Q-Network(DDDQN)算法来训练智能体,这个算法在深度Q学习算法的基础上进行了升级,具有更快的收敛速度和更好的性能。本文提出了一种基于强化学习的算法,实现了多无人机路径规划,并提供相应的MATLAB代码。通过基于强化学习的多无人机路径规划算法,我们能够高效地解决复杂环境下的任务需求,并在实际应用中取得了良好的效果。首先,我们定义了状态空间和动作空间。实验结果表明,我们的方法能够有效地解决多无人机路径规划问题,提高了任务完成的效率和准确率。

DjjPython的博客 821

[学习微服务-第7天] ServiceComb+SpringCloud Ribbon源码解读

在上一篇 《ServiceComb + SpringCloud Ribbon使用篇》中介绍了负载均衡的概念和ServiceComb协同SpringCloud Ribbon的使用, 本篇将从源码角度介绍ServiceComb是如何实现与SpringCloud Ribbon协同工作的。 一. ServiceComb对接 Spring Cloud Ribbon思路 在Ri...

ServiceComb的博客 647

MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

山云的专栏 2071

[学习微服务-第2天] ServiceComb + SpringCloud Zuul源码解读

上一篇文章我们介绍了ServiceComb与SpringCloud的Zuul网关组件协同工作,以构建微服务应用。 为了给ServiceComb做贡献的伙伴提供指引,本篇将介绍ServiceComb与SpringCloud Zuul的集成源码。 ServiceComb 对接 Spring Cloud Zuul 思路 ServiceComb没有修改SpringClou...

ServiceComb的博客 553

树冠体积计算之体元累加法

因为是自己之前研究的一个方向,就复现了一下论文中的这个方法,在此正好记录一下。 文章目录一、简介二、代码实现(MATLAB)三、小结 一、简介 简而言之,其实就是一句话,即以固定大小的体元模拟不规则的树冠形状。按照论文中的思路主要就是将树冠沿树高方向以 k 为步长进行等距离分段,把每一段树冠的点投影到垂直于树高方向的平面上,再对该平面划分成大小为 k × k 的像元,根据投影到各个像元内点的数量,判断该像元的有效性,统计有效像元的数量 T,则树冠体积为 T 个 k × k × k 的体元之和。如下图所示:

dayuhaitang1的博客 2609

SCADA|KingSCADA通过组合框选择修改变量的值

《SCADA项目中组合框控件的使用方法》 本文详细介绍了SCADA系统中组合框(下拉框)控件的应用方法。通过具体示例演示如何实现:当选择"雷工笔记"时变量值为100,选择"雷工杂谈"时为200,选择"小李食代"时为300的功能。主要实现步骤包括:1)创建项目并添加组合框控件;2)设置Items选项及对应数值;3)创建内存变量;4)使用GetCurrentIndex()和GetItemData()方法;5)在选项变化事件中编写脚本。该控件在SCADA

做有价值的事,积累有价值的笔记! 867

[学习微服务-第2天] ServiceComb + SpringCloud Zuul源码解读--带图

上一篇文章我们介绍了ServiceComb与SpringCloud的Zuul网关组件协同工作,以构建微服务应用。 为了给ServiceComb做贡献的伙伴提供指引,本篇将介绍ServiceComb与SpringCloud Zuul的集成源码。 ServiceComb 对接 Spring Cloud Zuul 思路 ServiceComb没有修改SpringCloud Zuul的源代码,而是利...

宁静致远 326

【读代码】深入解析Ragas:RAG应用效果评估最好的工具

Ragas是由Exploding Gradients团队开发的专业LLM应用评估框架,通过自动化测试和量化指标帮助开发者构建可靠的AI系统。# 典型架构模块 ├── metrics # 50+评估指标实现 ├── testset # 测试集生成系统 ├── embeddings # 多模态嵌入支持 ├── integrations # 主流框架集成 ├── optimizers # 遗传算法优化器 └── experimental # 前沿功能实验区。

kakaZhui的博客 852

boot客户管理系统源码_[每天学习微服务(二)]ServiceComb + SpringCloud Zuul:源码解读篇...

上一篇文章我们介绍了ServiceComb与SpringCloud的Zuul网关组件协同工作,以构建微服务应用。为了给ServiceComb做贡献的伙伴提供指引,本篇将介绍ServiceComb与SpringCloud Zuul的集成源码。ServiceComb 对接 Spring Cloud Zuul 思路ServiceComb没有修改SpringCloud Zuul的源代码,而是利用了 Spr...

weixin_39814393的博客 116

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

springcloud注册中心Nacos、Discovery、Ribbon、Feign

先来思考一个问题通过上一章的操作,我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址一旦服务提供者地址变化,就需要手工修改代码一旦是多个服务提供者,无法实现负载均衡功能一旦服务变得越来越多,人工维护调用关系困难那么应该怎么解决呢, 这时候就需要通过注册中心动态的实现服务治理。什么是服务治理服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。**服务注册:**在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服。

m0_57406300的博客 353

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringCloud微服务

springcloud微服务 服务治理 服务调用 nacos搭建集群 gateway网关

BUG专业户 753

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SpringCloud_脚手架创建工程

文章目录1.微服务概述2.初识SpringCloud(Netflix)2.1.简介2.2.版本3.微服务场景模拟3.1.服务提供者3.1.1.Spring脚手架创建工程3.1.2.编写代码3.1.3.启动并测试:3.2.服务调用者3.2.1.创建工程3.2.2.编写代码3.2.3.启动测试:3.3 YAML语法3.4 RunDashBoard的设置3.5.有没有问题? 1.微服务概述 微服务的特点: 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责 微:微服务的服务拆分粒度很小,例如一个用户

qq_44509920的博客 1179

SpringCloud

SpringCloud 1. 微服务基础知识 1. 系统架构的演变 随着互联网的发展,网站应用的规模不断扩大,常规的应用架构已无法应对,分布式服务架构以及微服务架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 1. 单体应用架构 Web应用程序发展的早期,大部分web工程(包含前端页面,web层代码,service层代码,dao层代码)是将所有的功能模块,打包到一起并放在一个web容器中运行。 比如搭建一个电商系统:客户下订单,商品展示,用户管理。这种将所有功能都部署在一个web容器中运行的系统就叫

weixin_49619080的博客 435
上一篇: [学习微服务-第5天] ServiceComb+Zipkin源码解读
下一篇: [学习微服务-第7天] ServiceComb+SpringCloud Ribbon源码解读
微服务ServiceComb社区
博客等级 码龄9年 97粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值