SpringCloud Ribbon負載均衡配置
阿新 • • 發佈:2018-12-12
本章基於SpringCloud Ribbon初步配置,記憶體小於8G可能啟動不起來服務,建議最低8G記憶體跑叢集
叢集的圖說明:消費者向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的負載均衡策略選擇。