本例子主要使用了eureka集群作为注册中心来保证高可用,客户端来做ribbon服务提供者的负载均衡。
负载均衡有两种,第一种是nginx,F5这种集中式的LB,对所有的访问按照某种策略分发。
第二种是客户端知道所有的服务的地址,在客户端做负载均衡,客户端自己去发送。
github地址:https://github.com/linjiaqin/scdemo
一. eureka注册中心的搭建
1.为了实现HA(高可用性),采用集群方式搭建,由mu01(192.168.0.100),cu01(192.168.0.1), cu02(192.168.0.2)三台机子组成
为了不写ip地址而使用主机名表示,首先修改/etc/hosts文件,将对应的hostname和ip写入该文件,然后source生效
2.idea新建一个module,spring assistant类型,选择springcloud,web和eureka server两个模板。
为其启动类加上@EnableEurekaServer
package com.ljq;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
3.编写配置文件
配置文件application-backone.properties
#服务名和服务暴露的接口
spring.application.name=backup_one
server.port=8762
eureka.instance.hostname=cu01
#本项目是注册中心所以不需要自己向自己注册和检索服务,如果是eureka集群就要
#eureka.client.register-with-eureka=false
#eureka.client.fetch-registry=false
#eureka.client.serviceUrl.defaultZone :设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
# 默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。
eureka.client.serviceUrl.defaultZone=http://mu01:8761/,http://cu02:87