在Spring Cloud Alibaba框架中通过IDEA如何启动微服务的多个实例

下文摘自孙卫琴的经典书籍《Spring Cloud Alibaba微服务开发零基础入门到实操》,介绍了启动一个微服务的多个实例的方法。
在这里插入图片描述

阿云:“假如hello-provider-service微服务只有一个实例在运行,却要同时为几十万消费者提供服务,还是会力不从心啊。”

答主:“可以同时启动hello-provider-service微服务的多个实例,每个实例都运行在独立的进程中,构成了微服务集群。负载均衡器为这些实例分配负载,共同为消费者提供服务。”

阿云:“这让我想到了大闹天宫的孙悟空,单打独斗如果应接不暇,那就拔一撮毫毛,变成无数小孙悟空,一起和天兵天将作战。”

如图1所示,hello-provider-service提供者微服务有两个实例,它们运行在各自的Tomcat容器中,分别监听8081和8091端口。消费者只需按照hello-provider-service微服务的名字访问服务,至于到底访问微服务的哪个实例,对消费者是透明的,由负载均衡器LoadBalancer来调度。

在这里插入图片描述
图1 LoadBalancer决定调用hello-provider-service微服务的哪个实例

在IDEA中启动hello-provider-service微服务的两个实例的步骤如下。
(1)在IDEA中选择菜单Run->Edit Configurations,选择HelloProviderApplication类的启动配置,把启动配置的名字改为HelloProviderApplication1,参见图2。
在这里插入图片描述
图2 修改HelloProviderApplication类的启动配置

(2)在图2的窗口中选择复制图标,再创建一个HelloProviderApplication类的启动配置,把启动配置的名字设为HelloProviderApplication2, 并且增加启动参数“-Dserver.port=8091”,参见图3。
在这里插入图片描述
图3 为HelloProviderApplication类再创建一个启动配置

以上启动参数“-Dserver.port=8091”将会覆盖application.properties配置文件中的server.port属性,使得内置Tomcat监听8091端口。

(3)在图3中,选择图标“+”,在弹出的下来菜单中选择Compound菜单,创建一个批处理组合,用于按照两种启动配置分别运行HelloProviderApplication类。这个批处理组合的名字叫HelloProviderApplication,它包括HelloProviderApplication1和HelloProviderApplication2这两个启动配置,参见图4。
在这里插入图片描述
图4 创建HelloProviderApplication批处理组合

(4)在IDEA中选择菜单Run->Run HelloProviderApplication,就会运行HelloProviderApplication批处理组合,参见图5。IDEA会依据HelloProviderApplication1和HelloProviderApplication2这两个启动配置,启动hello-provider-service微服务的两个实例。
在这里插入图片描述
图5 运行HelloProviderApplication批处理组合

通过浏览器访问Nacos服务器的管理平台http://localhost:8848/nacos,会看到在Nacos服务器上注册的hello-provider-service微服务有两个实例,参见图6。
在这里插入图片描述
图6 在Nacos服务器的管理平台查看微服务实例

通过浏览器访问hello-consumer模块的HelloConsumerController控制器,URL为:http://localhost:8082/enter/Tom,能够得到正常的响应结果。HelloConsumerController远程访问hello-provider-service微服务时,无需考虑到底访问它的哪个实例,这是由LoadBalancer负载均衡器决定的。

提示:在本范例中,hello-provider-service微服务的两个实例都运行在同一个主机上,监听不同的端口。在实际应用中,会把两个实例部署到不同的主机上,让它们各自获得更加充足的软件和硬件资源。

启动hello-provider-service微服务的两个实例的另一种办法是复制hello-provider模块的所有代码,再创建一个hello-provider2模块,把该模块的application.properties文件中的server.port属性设为8091。分别运行hello-provider模块和hello-provider2模块的HelloProviderApplication类,就会启动微服务的两个实例。


想要循序渐进学习Spring Cloud微服务开发,强烈推荐看孙卫琴老师的经典著作《Spring Cloud Alibaba微服务开发零基础入门到实操》,还附赠121集配套视频课程,免费观看网址参见http://www.javathinker.net/alibaba

本书深入浅出地讲解了利用Spring Cloud Alibaba框架开发分布式微服务系统的技术,详细阐述了各种组件的用法,包括:注册和配置中心Nacos、负载均衡器LoadBalancer、远程调用组件OpenFeign、远程调用框架Dubbo、流量控制组件Sentinel、网关Gateway、链路追踪组件SkyWalking、消息中间件Stream和 RocketMQ、分布式事务管理框架Seata、分库分表中间件ShardingSphere、分布式缓存数据库Redis、分布式任务调度框架XXL-JOB。

本书以一位学习微服务开发的新手阿云向答主(本书作者)请教微服务开发技术为线索,激发读者主动探索知识的学习兴趣,把本来看似深奥复杂的分布式微服务系统如庖丁解牛般剖析得淋漓尽致,浅显易懂。本书不仅详细介绍各种技术的使用步骤,而且运用了许多生动形象的生活化的比喻,帮助读者理解这些技术的运作原理。

本书的范例很具有实用性,整合了Spring Boot、Spring Cloud Alibaba、Hibernate、Mybatis、DruidDataSource、HikariDataSource、lombox软件包、SLF4J等流行的框架或工具软件。

本书主要面向所有具有Java编程基础的开发人员和在校学生。对于不熟悉Java编程的读者,阅读本书,也能领略Spring Cloud Alibaba框架的基本用法和微服务开发的核心思想。本书还可作为高校和企业的微服务开发教材。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术集锦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值