应该先有eureka server服务来启动
一:依赖
二:编写配置文件
server.port=8001
#Eureka服务器的实例名称
eureka.instance.hostname=localhost
#表示是否向eureka注册中心注册自己
eureka.client.register-with-eureka=false
#fetch-registry为false,则表示自己为注册中心
eureka.client.fetch-registry=false
#监控页面(设置Eureka的地址)
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
(eureka.client.register-with-eureka=false
#表示是否将自己注册在EurekaServer上,默认为true。由于当前应用就是EurekaServer,所以置为false
)
(eureka.client.fetch-registry=false
#表示表示是否从EurekaServer获取注册信息,默认为true。单节点不需要同步其他的EurekaServer节点的数据)
三:开启服务
启动类加上注解@EnableEurekaServer//服务器的启动类,可以接收别人注册进来
监控
服务启动后,打开网页http://${eureka.instance.hostname}:${server.port}/eureka/可以查看监控
Eureka的提供者
一:依赖
二:注册服务到eureka
server.port=8087
server.port=8087
spring.application.name=eureka-provider
#eureka.instance.hostname=provider
#上面的eurekaserver的地址
#eureka server的地址
eureka.client.service-url.defaultZone=http://localhost:8001/eureka/
#修改描述
eureka.instance.instance-id=xxxxx
#隐藏ip(设置为true),默认是false
eureka.instance.prefer-ip-address=false
注意:设置eureka.instance.prefer-ip-address=true 可显示ip地址(即鼠标在eureka.instance.instance-id设置的描述上时左下角显示的ip)
三:开启服务
在启动类上添加注解@EnableEurekaClient
四:注册进来的微服务可以通过org.springframework.cloud.client.discovery.DiscoveryClient获取一些微服务信息,需要在启动类上加注解@EnableDiscoveryClient
五:添加监控可以在eureka中查看链接中的监控信息
添加依赖
设置配置信息info可以查看我们提供的信息
info.app.name=provider
info.company.name=wxy
---------------------------------------------------------------------------
eureka有自我保护机制。
#禁用自我保护机制(不推荐)eurekaserver中设置
eureka.server.enable-self-preservation=false
-----------------------------------------------------------------------------
eureka消费者
添加依赖:
在配置文件中配置eureka
#不向Eureka服务中心注册自己
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://localhost:8001/eureka
第四步:开启服务
在启动类上添加注解@EnableEurekaClient
eureka还是通过RestTemplate来请求
第一步配置RestTemplate
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
第二步调用provider提供的接口
@RestController
public class EurekaController {
@Autowired
private RestTemplaterestTemplate;
private static final String providerUrl = "http://localhost:8087";
@RequestMapping("/test")
public List testOne() {
return restTemplate.getForObject(providerUrl+"/getUserList", List.class);
}
}
-------------------------------------------------------------------------------
eureka集群
本地域名映射:C:\Windows\System32\drivers\etc中打开hosts文件中为127.0.0.1配置自己定义的的名字
eureka服务器1的配置为2,3 同理2的配置为1,3
eureka provoder注册到三个服务器, 配置文件中配置三个地址: