Springcloud-服务的注册与发现(Eureka)
一、spring cloud简介 Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。 Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和Spring Boot开发框架的集成。 Spring Cloud为微服务架构...
一、spring cloud简介
Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。
Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和Spring Boot开发框架的集成。
Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
1创建Eureka-server
1 创建一个maven model
2 pom文件中加入如下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
3 application.yml文件加入如下配置
server:
port: 8761
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka
4 启动类上加注解
@EnableEurekaServer
2创建Eureka-client
1在pom文件中加入如下依赖
<!--暴露各种指标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
2启动类上加注解
@EnableEurekaClient或者 @EnableDiscoveryClient
3application.yml文件中加配置
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
//显示项目名称
application:
name: microservice-provider-user
//显示ip以及各式
instance:
prefer-ip-address: true
instance-
id: ${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.appl
ication.instance_id:${server.port}}
3Eureka-server认证
1修改Eureka项目的defaultZone为:
http://user:password666@localhost:8761/eureka
2yml配置文件中添加配置:
security:
basic:
enabled: true
user:
name: user
password: password666
3添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
4Eureka-client识别认证
1直接修改client项目的defaultZone与server的地址一样即可
5Eureka-server健康检查
1添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2yml添加配置
eureka:
client:
healthcheck:
enabled: true
6获取当前项目的基本信息
方法一:
@Autowired
private EurekaClient discoveryClient;
@GetMapping("/info")
public String serviceUrl() {
InstanceInfo instance = discoveryClient.getNextServerFromEureka("user", false);
return instance.getHomePageUrl();
}
方法二:
导入的包:import org.springframework.cloud.client.discovery.DiscoveryClient;
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping("/instance-info")
public ServiceInstance showInfo() {
ServiceInstance localServiceInstance = this.discoveryClient.getLocalServiceInstance( );
return localServiceInstance;
}
更多推荐
所有评论(0)