生产者 /消费者
注册中心(Eureka)
1.服务消费者/服务生产者
简单理解,服务消费者就是发起服务调用的请求方,生产者就是提供服务的请求处理方。
2.注册中心
维护一个注册表,当一个服务启动以后,会向注册中心进行注册。消费者启动时,就会向注册中心拉取注册表。
3.代码演示
公共模块
image.png//pojo
public class Data1 {
private String name;
private String data1;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public Data1(String name, String data1) {
super();
this.name = name;
this.data1 = data1;
}
}
//data2同理
//service1
public interface Service1 {
public List<Data1> getData1();
}
//service2
public interface Service2 {
public List<Data2> getData2();
}
生产者1
添加
spring web启动依赖
common依赖
image.png
@RestController
public class Controller1 {
@Autowired
private Service1 service1;
@GetMapping("data1/getData1")
List<Data1> getData1() {
return service1.getData1();
}
}
@Service
public class Service1_Impl implements Service1 {
@Override
public List<Data1> getData1() {
List<Data1> data1 = new ArrayList<>();
data1.add(new Data1("服务1","数据1号"));
data1.add(new Data1("服务1","数据2号"));
return data1;
}
}
yml配置
server:
port: 8010
生产者2
同理
@RestController
public class Controller2 {
@Autowired
private Service2 service2;
@GetMapping("data2/getData2")
List<Data2> getData1() {
return service2.getData2();
}
}
@Service
public class Service2_Impl implements Service2 {
@Override
public List<Data2> getData2() {
List<Data2> data2 = new ArrayList<>();
data2.add(new Data2("服务2","数据1号"));
data2.add(new Data2("服务2","数据2号"));
return data2;
}
}
yml配置
server:
port: 8020
访问测试
localhost:8010/data1/getData1
localhost:8020/data2/getData2
image.png
服务2同理
3.1Eureka
Eureka1服务
创建eureka项目,添加eureka依赖,添加配置
@SpringBootApplication
@EnableEurekaServer
public class TestSpcEureka1Application {
public static void main(String[] args) {
SpringApplication.run(TestSpcEureka1Application.class, args);
}
}
yml配置
spring:
application:
name: eureka-server
server:
port: 2001
eureka:
server:
enable-self-preservation: false
instance:
hostname: eureka1
client:
register-with-eureka: false
fetch-registry: false
生产者1
添加Eureka Discovery Client依赖,增加配置
eureka:
client:
service-url:
defaultZone: http://localhost:2001/eureka
老版本要在主启动类上添加@EnableDiscoveryClient注解,新版本可以省略
生产者2
同上
访问测试
image.png总结
配置Eureka注册中心
1.创建springboot项目,添加Eureka Server依赖,
2.配置yml文件,
server.port: 2001
spring.application.name=eureka-server
##心跳失败的比例,在15分钟内是否低于85% ,低于则开启自我保护状态
eureka.server.enable-self-preservation: false
#命名
instance.hostname: eureka1
#不向自身注册
client.register-with-eureka: false
#不从自身拉取注册信息
fetch-registry: false
3.主启动类添加@EnableEurekaServer注解。
配置服务
1.创建springboot项目,添加spring web依赖、Eureka Discovery Client依赖
2.配置yml文件
server:
port: 8010
eureka:
client:
service-url:
defaultZone: http://localhost:2001/eureka
3.添加@EnableDiscoveryClient注解
Eureka集群
1.不同的Eureka配置(不同的名字,不同的端口),修改yml
spring.application.name=eureka-server
#心跳失败的比例,在15分钟内是否低于85% ,低于则开启自我保护状态
eureka.server.enable-self-preservation: false
#命名
instance.hostname: eureka2
#不向自身注册
client.register-with-eureka: true
#不从自身拉取注册信息
fetch-registry: true
#eureka2启动时向eureka1注册
service-url.defaultZone: http://eureka1:2001/eureka
2.服务项目的yml配置文件添加eureka链接
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
网友评论