SpringCloud架构开发实战:实现服务负载均衡及高可用

SpringCloud实战【九】: SpringCloud服务间调用 1 服务间调用 微服务的特点是服务数量特别多,服务和服务之间也需要有交互,这就涉及到服务间的调用,即服务与服务之间如何通信。提到服务与服务之间的通信,最通用的莫过于HttpClient,在其它的通信架构中基本都使用HttpClient来作为底层的通讯模型。在SpringCloud中依然可以使用HttpClient进行服务与服务调用,只不过如果采用HttpClient调用的话,会有一些弊端,例如: 如果同一个服务有多个负载的话,采用HttpClient调用时,没有办法处理负载均衡的问题。还有... 阅读详情

实现服务的负载均衡及高可用

在前面我们重新实现了微服务,其中天气数据采集微服务、天气预报微服务都重新采用了Feign技术,以便通过应用的名称来访问外部RESTful服务。结合Eureka部署实例,就能实现微服务的负载均衡及高可用。

SpringCloud架构开发实战:实现服务负载均衡及高可用

 

天气预报系统的微服务

截至目前,天气预报系统的最新版本微服务共有以下4个。

msa-weather-collection-cureka-feign:基于msa-weather-collection-cureka和Feign实现的天气数据采集微服务。

msa-weather-data-eureka:天气数据API微服务。

.msa-weather-city-eureka:城市数据微服务。

msa-weather-report-cureka-feign:基于msa-weather-report-cureka和Feign实现的天气预报采集微服务。

运行微服务实例

我们先运行Eureka Server实例micro-weather-cureka-server,它启动在8761端口。

其次要运行Redis服务器。

而后我们分别在8081和8082上启动了msa-weather-collection-cureka-feign'实例两个,在8083和8084上启动了msa-weather-data-eureka实例两个,在8085和8086上启动了msa-weather-city-eu-reka实例两个,在8087和8088上启动了msa-weather-report-eureka-feign实例两个。启动脚本如下。

java -jar micro-weather-eureka-server-1.0.0.jar --server.port=8761
java -jar msa-weather-collection-eureka-feign-1.0.0.jar--server.port=8081
java-jar msa-weather-collection-eureka-feign-1.0.0.jar --server.port=8082
java -jar msa-weather-data-eureka-1.0.0.jar--server.port=8083
java -jarmsa-weather-data-eureka-1.0.0.jar --server.port=8084
java -jar msa-weather-city-eureka-1.0.0.jar --server.port=8085
java-jar msa-weather-city-eureka-1.0.0.jar --server.port=8086
java-jar msa-weather-report-eureka-feign-1.0.0.jar --server.port=8087
java -jar msa-weather-report-eureka-feign-1.0.0.jar --server.port=8088

这样,就可以在Eureka Server上看到这8个实例的信息。访问http://localhost:8761,可以看到如图9-3所示的Eureka Server自带的UI管理界面。

SpringCloud架构开发实战:实现服务负载均衡及高可用

 

测试天气预报服务

访问天气预报微服务的任意一个实例,都能够正常使用天气预报服务。例如,我们通过浏览器访问其中一个实例http:/localhost:8088/reportlcityld/101280601,能看到如图9-4所示的天气预报服务界面。

SpringCloud架构开发实战:实现服务负载均衡及高可用

 

我们可以关闭其他微服务的任意一个实例来模拟故障。例如,关闭城市数据微服务中的一个实例,只要还有另一个实例在正常运行,那么,天气预报系统就仍然能够正常使用。这说明天气预报系统已经具备了负载均衡的功能,以及能够在服务异常的情况下保证整个系统的可用性的能力。

源码

本节示例所涉及的源码,见micro-weather-eureka-server、msa-weather-data-cureka和 msa-weather-city-eureka,以及msa-weather-collection-cureka-feign和 msa-weather-report-eureka-feign。

本篇文章内容给大家讲解的是实现服务的负载均衡及高可用

  1. 下篇文章给大家讲解API网关的意义和常见API网关的实现方式;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持
图解 SpringCloud 微服务架构 而SpringCloud关注全局微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、事件总线、分布式系统、等等集成服务。随着访问量的增大,单体结构只能通过添加节点来应对,但发现不是所有的模块都有很大的访问量,还是以上面的电商为例子, 用户访问量的增加可能影响的只是用户和订单模块, 但是对消息模块的影响就比较小. 那么此时我们希望只多增加几个订单模块, 而不增加消息模块. 此时单体应用就做不到了, 垂直应用就应运而生了. 阅读详情

相关推荐

SpringCloud微服务架构解决方案

SpringCloud微服务架构解决方案,主要讲解以下部分内容: 1、微服务架构特点 2、微服务技术栈的构成。 3、Spring Cloud Eureka服务治理的流程。 4、Spring Cloud Ribbon负载均衡的应用方法。 5、Spring Cloud Hystrix 断路保护的应用方法。 6、Spring Cloud Zuul 网关的作用及方法。

棉花糖老丫 1491

高可用概念介绍以及实现方式

一、名字释义:高可用性,英文叫做High Availability,检查HA,我们一般称为高可用或者ha。 二、高可用的出现是为了解决什么问题? 为了解决单点故障的问题,才出现了高可用。高可用的目的就在于解决单点故障,减少停工时间,从而保持了服务的高度可用性。 三、跟高可用相关的概念或者说术语有哪些? 自动切换:既然是高度可用性,自然不需要人工去干扰,高可用...

xiaozhuangyumaotao的博客 4616

SpringCloud Alibaba实战——服务治理:实现服务调用的负载均衡

这里,我们通过修改订单微服务的代码来实现自定义负载均衡,由于在整个项目中,订单微服务作为客户端存在,由订单微服务调用用户微服务和商品微服务,所以,这里采用的是客户端负载均衡的模式。

m0_73311735的博客 1687

实现高可用的 11 个关键技巧

一、系统拆分 有句古话 "牵一发而动全身"。 面对一个庞然大物,如果没有一个合理的分工分层。任何一个小小失误都会被无限放大,酿成巨大灾难。 万物相通,回到我们的软件架构。 早前的系统都是单体系统,比如电商业务,会员、商品、订单、物流、营销等模块都堆积在一个系统。每到节假日搞个大促活动,系统扩容时,一扩全扩,一挂全挂。只要一个接口出了问题,整个系统都不可用。 “鸡蛋不能放在一个篮子里”,这种连带风险换谁都承受不起。 因此,系统拆分 成了更多人的选择。 慢慢的就有了我们现在看到的微服务架构,将一个

a1405的专栏 3584

SpringCloud微服务核心架构实战——服务注册发现与负载均衡

微服务架构是一种将单体应用拆分为多个小型、独立服务的设计模式,每个服务均可独立开发、部署与扩展。SpringCloud作为构建微服务系统的主流框架,提供了包括服务注册与发现、配置管理、服务调用、负载均衡、熔断限流等一系列开箱即用的组件。其核心理念在于通过服务治理降低系统复杂度,提高可维护性与可伸缩性。SpringCloud整合了Netflix OSS组件(如Eureka、Ribbon、Feign、Zuul等),并结合Spring Boot的自动配置机制,简化了微服务的开发流程。

weixin_42430341的博客 826

Unreal 5 MetaHuman插件全流程:从安装到角色动画生成

本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。

weixin_29009081的博客 832

高并发场景以及应对技巧&&SpringCloud高可用架构图

高并发(High Concurrency)一般是指,通过设计保证系统能够同时并行处理很多请求。评价高并发处理能力的一些指标有响应时间(Response Time)、吞吐量(Throughput)、每秒查询率QPS(Query Per Second)、并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分不太明显。并发用户数。

qq_43842093的博客 1276

Win10如何使用BC3.1精简版

Win10如何使用BC3.1精简版 使用Borland C++3.1 学习μC/OS—Ⅱ几乎是现在的普遍做法,但是由于Win10系统不能直接使用BC3.1,所以需要用到DOSBox。 1、解压bc3.1精简版压缩包,本文将BC3.1文件夹复制在D盘下,DOSBOX按照默认路径安装。下图为两者安装目录图示: 2、修改DOSBOX的配置文件,找到DOSBox文件安装路径,记事本方式打开DOSBox 0.74-3 Options.bat文件,在此文件末尾添加: MOUNT C D:\BC//意为把D:\BC目录

qq_45547236的博客 2378

什么是高可用,如何实现高可用

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。

谢小鱼的博客 3135

TMC2209串口配置实战:从寄存器解析到电机精准控制

本文详细解析TMC2209步进电机驱动芯片的串口配置方法,从硬件连接到UART通信协议,再到核心寄存器功能详解。通过实战案例展示电流控制、微步细分和速度调节等关键配置,帮助工程师实现电机精准控制,并提供了常见故障诊断和优化技巧。

f6g7h8i9j的博客 1176

ESXI 8.0虚拟机安装OpenWRT软路由详细教程

OpenWrt 是嵌入式的 Linux 路由器固件,OpenWrt在稳定运行的同时提供了强大的扩展能力,用户可以完全的定制属于自己的路由系统,满足不一样的个性化需求,本文讲解如何使用ESXI安装OpenWRT,打造属于自己的软路由。本次安装使用的是版本。默认登录信息:用户:root密码:password下载固件:https://github.com/haiibo/OpenWrt/releases/tag/X86_64【CPU配置】:4核心。

qq_27121281的博客 3917

Redis高可用的三种实现方式

Redis主从模式,哨兵模式,集群模式,高可用

weixin_44183721的博客 1万+

【Origin+Python】使用External Python批量出图代码参考2

不使用part2 的代码,自己打开一个origin2022的界面。这里主要介绍一些进阶代码以及使用盗版origin要如何。3 批量绘制相同设置的曲线图。然后就是没有水印的图片了。

zeng001201的博客 1908

天气预报 源码 实战_SpringCloud架构开发实战:实现服务负载均衡及高可用

实现服务的负载均衡及高可用在前面我们重新实现了微服务,其中天气数据采集微服务、天气预报微服务都重新采用了Feign技术,以便通过应用的名称来访问外部RESTful服务。结合Eureka部署实例,就能实现微服务的负载均衡及高可用。天气预报系统的微服务截至目前,天气预报系统的最新版本微服务共有以下4个。msa-weather-collection-cureka-feign:基于msa-wea...

weixin_39570530的博客 154

数字IC面试核心:从MUX基础到Glitch-Free时钟切换电路深度剖析

本文深入剖析数字IC设计中的MUX基础原理及其在Glitch-Free时钟切换电路中的应用。从二选一MUX的门级实现到时钟切换中的毛刺问题,详细讲解了同步切换机制和工程优化技巧,帮助工程师掌握高速时钟电路设计的核心要点。

weixin_42629815的博客 328

第 2 章:PassThrough 直通滤波

通过设置某个维度(如 x、y、z 或 rgb)的取值范围,仅保留该范围内的点,从而达到**点云裁剪(裁边)**或过滤异常值的目的。所有在该范围之外的点会被移除(可选是否保留);点云中包含背景、地面或传感器噪声,需要过滤;通过 z 轴过滤,只保留桌面上方的物体;多轴组合过滤(如同时过滤 x、y、z);可用于地面剔除、车载点云预处理等场景。不支持一次过滤多个字段,可多次调用;仅处理某一层或某一区域的点云数据。原始点云中包含地面、墙面、背景等;在区域裁剪、前景提取中广泛使用;设定一个轴(如z轴);

yumeiguo的博客 340

SpringCloud-Netflix 核心组件与微服务架构实践

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

weixin_58213151的博客 811

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8288

SpringCloud服务注册与发现:Eureka架构与实现原理

SpringCloud Eureka作为微服务架构中的核心组件,通过服务注册与发现机制解决了服务通信的难题。本文从Eureka的基础架构入手,详细介绍了其注册机制、高可用设计、自我保护机制和服务发现功能,并通过源码分析深入理解了Eureka的实现原理。与其他注册中心相比,Eureka在可用性方面表现出色,特别适合对服务可用性要求较高的分布式系统。在实际应用中,开发者需要根据业务需求和系统特性选择合适的注册中心。随着微服务架构的普及,熟练掌握Eureka等服务注册与发现组件已成为Java开发者的必备技能。

程序媛学姐的博客 1992

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringCloud-Ribbon实现负载均衡

本文从负载均衡的基本概念入手,探讨其在微服务体系中的重要性。详细介绍了在 SpringCloud 中使用 Ribbon 的步骤,包括引入依赖、添加注解和使用 RestTemplate 进行远程调用。通过本文的学习,读者将更好地理解和运用Ribbon,提升微服务架构的性能和可维护性。

踏雨歌青春,诗酒趁年华 2554

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SpringCloud微服务总结

目录 一.微服务架构衍变 二.SpringCloud 概述 三.SpringCloud 实战 一.微服务架构衍变 1.1 单体架构 在应用初期,单体应用从成本、开发时间和运维等方面都有明显的优势,但是随着业务量和用户量的增加,导致代码的可读性和可维护性很差。同时面对海量的用户,数据库也会成为瓶颈。单体架构己经不能满足复杂的业务和海量的用户系统,改变单体架构势在必行。 1.2 SOA 架构 Service O

xinyi_java的博客 2152

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringCloud集成Eureka并实现负载均衡

笔者认为:流行的不一定是最好的,如果只学习最流行的技术,这对以后的发展是很受限的。作为后端我们还是需要追求一定的广度。在以后的职业生涯中遇到一些特殊业务场景,才能够有更多的方案去灵活应对!

懒羊羊的博客 5118

SpringCloud-Feign:负载均衡(基于服务端)

Feign是一个开源的声明式HTTP客户端,它可以简化HTTP API的调用过程。Feign的设计目标是使得使用者可以像调用本地方法一样调用远程服务,使得编写和维护HTTP客户端变得更加简单。类似controller调用service。SpringCloud集成了Ribbon和Eureka,可以使用Feigin提供负载均衡的http客户端只需要创建一个接口,然后添加注解即可~使用Feign时,需要先定义一个接口,该接口中定义了需要远程调用的方法、URL、请求方法、请求头等信息。

小孔靠得住的博客 3920

SpringBoot微服务架构实战:结合SpringCloud构建高可用系统

在当今数字化时代,企业对于系统的可扩展性、灵活性和高可用性的要求越来越高。微服务架构应运而生,它将一个大型的单体应用拆分成多个小型、自治的服务,每个服务专注于单一的业务功能,通过轻量级的通信机制进行协作。Spring Boot 和 Spring Cloud 作为 Java 生态中构建微服务的优秀框架组合,为开发者提供了便捷的工具和丰富的功能。本文将详细介绍如何使用 Spring Boot 和 Spring Cloud 构建一个高可用的微服务系统。

梵心白莲的博客 1114

【微服务架构】SpringCloud Alibaba(三):负载均衡 Ribbon

这个拦截器里面就是上面弄的LoadBalancerInterceptor。request.getURI(), 这个不用我多解释了吧,restTemplate就是发送http请求,这里获取他的请求链接,然后获取他的host,他的host是什么就是nx-stock,就是serviceName,然后将这serviceName传递到我们的execute里面,我们推想这里很可能对我们serviceName进行解析,从我们的nacos注册中心获取注册列表,然后通过负均衡选择一个合适的地址,进行调用。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+
上一篇: SpringBoot外化配置源码解析:Profile处理实现
下一篇: 微服务架构开发实战:API网关意义和常见API网关的实现方式
爱玛士
博客等级 码龄7年 720粉丝 253原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值