【微服务~原始真解】Spring Cloud —— 实现负载均衡_通过yml修改负责均衡
7 |ZoneAvoidanceRule |默认的负载均衡策略,综合判断服务所在区域(zone)的性能和服务(server)的可用性,来选择服务实例。|5 |BestAvailableRule |继承自 ClientConfigEnabledRoundRobinRule。先过滤点故障或失效的服务实例,然后再选择并发量最小的服务实例。|6 |AvailabilityFilteringRule |先过
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
| 5 | BestAvailableRule | 继承自 ClientConfigEnabledRoundRobinRule。先过滤点故障或失效的服务实例,然后再选择并发量最小的服务实例。 |
| 6 | AvailabilityFilteringRule | 先过滤掉故障或失效的服务实例,然后再选择并发量较小的服务实例。 |
| 7 | ZoneAvoidanceRule | 默认的负载均衡策略,综合判断服务所在区域(zone)的性能和服务(server)的可用性,来选择服务实例。在没有区域的环境下,该策略与轮询(RandomRule)策略类似。 |
下面我们就来通过一个实例来验证下,Ribbon 默认是使用什么策略选取服务实例的。
一、 在 MySQL 数据库中执行以下 SQL 语句,准备测试数据。
DROP DATABASE IF EXISTS spring_cloud_db2;
CREATE DATABASE spring_cloud_db2 CHARACTER SET UTF8;
USE spring_cloud_db2;
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
`dept\_no` int NOT NULL AUTO\_INCREMENT,
`dept\_name` varchar(255) DEFAULT NULL,
`db\_source` varchar(255) DEFAULT NULL,
PRIMARY KEY (`dept\_no`)
) ENGINE=InnoDB AUTO\_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `dept` VALUES ('1', '开发部', DATABASE());
INSERT INTO `dept` VALUES ('2', '人事部', DATABASE());
INSERT INTO `dept` VALUES ('3', '财务部', DATABASE());
INSERT INTO `dept` VALUES ('4', '市场部', DATABASE());
INSERT INTO `dept` VALUES ('5', '运维部', DATABASE());
#############################################################################################
DROP DATABASE IF EXISTS spring_cloud_db3;
CREATE DATABASE spring_cloud_db3 CHARACTER SET UTF8;
USE spring_cloud_db3;
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
`dept\_no` int NOT NULL AUTO\_INCREMENT,
`dept\_name` varchar(255) DEFAULT NULL,
`db\_source` varchar(255) DEFAULT NULL,
PRIMARY KEY (`dept\_no`)
) ENGINE=InnoDB AUTO\_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `dept` VALUES ('1', '开发部', DATABASE());
INSERT INTO `dept` VALUES ('2', '人事部', DATABASE());
INSERT INTO `dept` VALUES ('3', '财务部', DATABASE());
INSERT INTO `dept` VALUES ('4', '市场部', DATABASE());
INSERT INTO `dept` VALUES ('5', '运维部', DATABASE());
二、参考 micro-service-cloud-provider-dept-8001,再创建两个微服务 Moudle :micro-service-cloud-provider-dept-8002 和 micro-service-cloud-provider-dept-8003。
三、在 micro-service-cloud-provider-dept-8002 中 application.yml 中,修改端口号以及数据库连接信息,修改的配置如下。
server:
port: 8002 #端口号修改为 8002
spring:
application:
name: microServiceCloudProviderDept #微服务名称,不做修改,与 micro-service-cloud-provider-dept-8001 的配置保持一致
datasource:
username: root #数据库登陆用户名
password: root #数据库登陆密码
url: jdbc:mysql://127.0.0.1:3306/spring_cloud_db2 #数据库url
driver-class-name: com.mysql.jdbc.Driver #数据库驱动
四、在 micro-service-cloud-provider-dept-8003 中 application.yml 中,修改端口号以及数据库连接信息,修改的配置如下。
server:
port: 8003 #端口号修改为 8003
spring:
application:
name: microServiceCloudProviderDept #微服务名称,不做修改,与 micro-service-cloud-provider-dept-8001 的配置保持一致
datasource:
username: root #数据库登陆用户名
password: root #数据库登陆密码
url: jdbc:mysql://127.0.0.1:3306/spring_cloud_db3 #数据库url
driver-class-name: com.mysql.jdbc.Driver #数据库驱动
五、依次启动 micro-service-cloud-eureka-7001/7002/7003(服务注册中心集群)、micro-service-cloud-provider-dept-8001/8002/8003(服务提供者集群)以及 micro-service-cloud-consumer-dept-80(服务消费者)。
六、使用浏览器连续访问“http://eureka7001.com/consumer/dept/get/1”,结果如下图。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
qwI9E4L-1713358813639)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)