SpringCloud Ribbon负载均衡配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gcxzflgl/article/details/82916173

本章基于SpringCloud Ribbon初步配置,内存小于8G可能启动不起来服务,建议最低8G内存跑集群

SpringCloud 深入理解Ribbon之源码解析

集群的图说明:消费者向eureka 上获取可用的任务,根据默认的轮训方式随机选一个提供服务。

步骤一:创建端口8002,8003 maven module提供服务工程,将8001端口的配置分别复制到8002,8003下

<dependencies>
		<!-- 引入自己定义的api通用包,可以使用Dept部门Entity -->
		<dependency>
			<groupId>com.gcxzflgl.spring</groupId>
			<artifactId>springCloud-api</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>

		<!-- actuator监控信息完善 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- 修改后立即生效,热部署 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>

步骤二:在8002,8003中,将8001的application.yml复制到对应的工程下。注意服务名称不能修改要保持同一个服务名称

server:
  port: 8003
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml        # mybatis配置文件所在路径
  type-aliases-package: com.gcxzflgl.springCloud.entity    # 所有Entity别名类所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                       # mapper映射文件
    
spring:
   application:
    name: microservicecloud-dept 
   datasource:
    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url: jdbc:mysql://localhost:3306/db_springCloud03             # 数据库名称
    username: root
    password: root
    dbcp2:
      min-idle: 5                                           # 数据库连接池的最小维持连接数
      initial-size: 5                                       # 初始化连接数
      max-total: 5                                          # 最大连接数
      max-wait-millis: 200                                  # 等待连接获取的最大超时时间
      
eureka:
  client: #客户端注册进eureka服务列表内
    service-url: 
      #defaultZone: http://localhost:7001/eureka
      defaultZone:  http://eureka7001:7001/eureka/,http://eureka7002:7002/eureka/,http://eureka7003:7003/eureka/
  instance:
    instance-id: gcxzflgl-dept8003
    prefer-ip-address: true     #访问路径可以显示IP地址     

    
    
info: 
  app.name: springCloud
  company.name: www.gcxzflgl.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$
    


步骤三:创建数据库db_springCloud02,db_springCloud03,分别执行如下sql

DROP DATABASE IF EXITS db_springcloud;
create database db_springcloud02 CHARACTER set UTF8;
use db_springcloud;
create table dept(
	deptno BIGINT not null PRIMARY key auto_increment,
	dname varchar(60),
	db_source varchar(60)
);
 
insert into dept(dname,db_source) values('开发部',DATABASE());
insert into dept(dname,db_source) values('人事部',DATABASE());
insert into dept(dname,db_source) values('财务部',DATABASE());
insert into dept(dname,db_source) values('市场部',DATABASE());
insert into dept(dname,db_source) values('运维部',DATABASE());

步骤四:启动7001,7002,7003端口eureka集群,在启动8001,8002,8003端口提供的服务,在启动80端口消费者,

启动7个服务后,访问http://localhost/consumer/dept/get/1,第一次访问可能是db_springCloud提供服务,在次访问可能就是下一个服务提供,默认用的轮训方式提供服务。下一章讲解Ribbon的负载均衡策略选择。

猜你喜欢

转载自blog.csdn.net/gcxzflgl/article/details/82916173