Nube Primavera Eureka es parte del conjunto de la nube de primavera Netflix micro de los servicios, que se basa Netflix Eureka hizo un segundo paquete, es responsable de la finalización de la arquitectura de micro-servicio de la función de gestión de servicios. Nube Primavera aumentó como Eureka arranque de estilo de primavera aprovisionamiento automatizado, sólo tenemos que confiar en una configuración simple introducción y anotación puede hacer que las aplicaciones de servicio de micro-primavera de arranque construido para integrarse fácilmente con el sistema de gobierno del servicio Eureka.
Eureka sola
- confiar
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
- applicaiton.properties
server.port=8088
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
Debe configurar el
eureka.instance.hostname
otro modo de auto-registro tratará de Eureka
- EurekaSpringBootApplication
@SpringBootApplication
@EnableEurekaServer
public class EurekaSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaSpringBootApplication.class,args);
}
}
- Después de iniciar el proyecto, visite http: // localhost: 8088 /
- Las instrucciones de configuración
configuración | explicación | defecto |
---|---|---|
eureka.server.enable-autoconservación | mecanismo de autoprotección Eureka | cierto |
eureka.server.eviction intervalo del temporizador-en-ms Eureka | La exclusión de un intervalo de nodo fallido | 60 segundos |
eureka.server.renewal-ciento-umbral | Cálculo del umbral de Eureka arrendamiento | 0.85 |
eureka.client.register-con-eureka | Está registrada a Eureka | cierto |
eureka.client.fetch-registro | Ya sea para actualizar la lista de información de Eureka | cierto |
eureka.instance.hostname | ejemplo de nombre de host micro servicio Eureka | no |
registro de servicio
- confiar
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- application.properties
spring.application.name=USER-SERVICE
eureka.instance.instance-id=001
eureka.instance.prefer-ip-address=true
eureka.instance.lease-expiration-duration-in-seconds=20
eureka.instance.lease-renewal-interval-in-seconds=10
eureka.client.register-with-eureka=true
eureka.client.healthcheck.enabled=true
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:8088/eureka/
Ejecutar el proyecto para lograr los servicios de registro
- Después de registrar dos servicios
La introducción de la dependencia
Cinta Eureka por defecto plug-in, simplemente importación integrado
spring-cloud-starter-netflix-eureka-client
puede ser.
- pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
- application.properties
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://localhost:8088/eureka/
- EurekaSpringBootConsumer
@SpringBootApplication
public class EurekaSpringBootConsumer {
public static void main(String[] args) {
SpringApplication.run(EurekaSpringBootConsumer.class,args);
}
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
- Las pruebas de plantilla resto
@SpringBootTest(classes = EurekaSpringBootConsumer.class)
@RunWith(SpringRunner.class)
public class RestTemplateTests {
@Autowired
private RestTemplate restTemplate;
@Test
public void testQueryUserById(){
String url="http://USER-SERVICE/manager/user/8";
User user = restTemplate.getForObject(url, User.class);
System.out.println(user);
}
}
Eureka Server Security
- nueva dependencia
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- nueva configuración
spring.security.user.name=mask
spring.security.user.password=111111
- Nueva clase de configuración WebSecurityConfig
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable(); // 关闭csrf,否则其他主机无法登陆认证
http.authorizeRequests().anyRequest().authenticated().and().httpBasic();//设置成httpBasic,不可以设置为表单
}
}
- Registro de Servicio / Nueva configuración de consumo
eureka.client.service-url.defaultZone=http://mask:111111@localhost:8088/eureka/
configuración del servidor de alta disponibilidad Eureka
- application-eureka-1.properties
server.port=6666
## 指定当前注册中心的服务名称
spring.application.name=eurekaregistry
## 启用注册中心主动失效,并且每次主动失效检测间隔为5s 默认值60s
eureka.server.eviction-interval-timer-in-ms= 5000
## 设置eureka注册中心的响应更新时间
eureka.server.responseCacheUpdateIntervalMs=3000
eureka.server.responseCacheAutoExpirationInSeconds=60
## 配置注册中心的主机名
eureka.instance.instance-id = eureka-1
eureka.instance.hostname = CentOSA
## 服务刷新时间配置,每隔这个时间会主动心跳一次
eureka.instance.lease-renewal-interval-in-seconds= 5
## 服务提供者被认定为丢失心跳超时,失效多久后被删除
eureka.instance.lease-expiration-duration-in-seconds=15
## 配置定时获取|抓取注册中心的数据时间
eureka.client.registry-fetch-interval-seconds= 5
eureka.client.instance-info-replication-interval-seconds= 5
## 配置集群中其他eureka实例,用于本eureka实例的注册方。
eureka.client.region=beijing
eureka.client.availability-zones.beijing=zone-2,zone-3
eureka.client.service-url.zone-2=http://mask:111111@CentOSB:1111/eureka/
eureka.client.service-url.zone-3=http://mask:111111@CentOSC:1111/eureka/
spring.security.user.name=mask
spring.security.user.password=111111
- application-eureka-2.properties
server.port=6666
## 指定当前注册中心的服务名称
spring.application.name=eurekaregistry
## 启用注册中心主动失效,并且每次主动失效检测间隔为5s 默认值60s
eureka.server.eviction-interval-timer-in-ms= 5000
## 设置eureka注册中心的响应更新时间
eureka.server.responseCacheUpdateIntervalMs=3000
eureka.server.responseCacheAutoExpirationInSeconds=60
## 配置注册中心的主机名
eureka.instance.instance-id = eureka-2
eureka.instance.hostname = CentOSB
## 服务刷新时间配置,每隔这个时间会主动心跳一次
eureka.instance.lease-renewal-interval-in-seconds= 5
## 服务提供者被认定为丢失心跳超时,失效多久后被删除
eureka.instance.lease-expiration-duration-in-seconds=15
## 配置定时获取|抓取注册中心的数据时间
eureka.client.registry-fetch-interval-seconds= 5
eureka.client.instance-info-replication-interval-seconds= 5
## 配置集群中其他eureka实例,用于本eureka实例的注册方。
eureka.client.region=beijing
eureka.client.availability-zones.beijing=zone-1,zone-3
eureka.client.service-url.zone-1=http://mask:111111@CentOSA:1111/eureka/
eureka.client.service-url.zone-3=http://mask:111111@CentOSC:1111/eureka/
spring.security.user.name=mask
spring.security.user.password=111111
- application-eureka-3.properties
server.port=6666
## 指定当前注册中心的服务名称
spring.application.name=eurekaregistry
## 启用注册中心主动失效,并且每次主动失效检测间隔为5s 默认值60s
eureka.server.eviction-interval-timer-in-ms= 5000
## 设置eureka注册中心的响应更新时间
eureka.server.responseCacheUpdateIntervalMs=3000
eureka.server.responseCacheAutoExpirationInSeconds=60
## 配置注册中心的主机名
eureka.instance.instance-id = eureka-3
eureka.instance.hostname = CentOSC
## 服务刷新时间配置,每隔这个时间会主动心跳一次
eureka.instance.lease-renewal-interval-in-seconds= 5
## 服务提供者被认定为丢失心跳超时,失效多久后被删除
eureka.instance.lease-expiration-duration-in-seconds=15
## 配置定时获取|抓取注册中心的数据时间
eureka.client.registry-fetch-interval-seconds= 5
eureka.client.instance-info-replication-interval-seconds= 5
## 配置集群中其他eureka实例,用于本eureka实例的注册方。
eureka.client.region=beijing
eureka.client.availability-zones.beijing=zone-1,zone-2
eureka.client.service-url.zone-1=http://mask:111111@CentOSA:1111/eureka/
eureka.client.service-url.zone-2=http://mask:111111@CentOSB:1111/eureka/
spring.security.user.name=mask
spring.security.user.password=111111
- Los tres proyectos están empaquetados subidos a CentOSA, CentOSB, carrera CentOSC
Nota: Las tres máquinas necesitan para desactivar el firewall y hacer que los demás nombres de host y asignación de IP
- El acceso HTTP: // CentOSA: 6666 / -CentOSA se puede cambiar por IP