1.eureka注册中心
注意:springboot和springcloud的对应关系
Greenwich.SR2 对应 springboot2.1.1.X
配置全局参数
<properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR2</spring-cloud.version> </properties>
服务端依赖,版本不指定,统一管理
<!--eureka服务端依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
管理版本,这个必须有。要不然找不到依赖
<!--依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
书写配置文件
server.port=8761 eureka.client.service-url.defaultZone=http://localhost:8761/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.server.enable-self-preservation=false
启动类加注解
@SpringBootApplication @EnableEurekaServer public class EurekaApplication { ... }
2.服务注册
导入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
设置配置文件
#指定服务命 spring.application.name=provider1 #注册中心地址 eureka.client.service-url.defaultZone=http://localhost:8761/eureka/ #是否注册 eureka.client.register-with-eureka=true
加注解
@SpringBootApplication @EnableDiscoveryClient public class EurekaServerProvider1Application { ... }
3.服务发现(使用ribbon做负载均衡)
配置与服务注册一致,这里只写不同点
a:启动类
@SpringBootApplication @EnableDiscoveryClient public class EruekaServerConsumerApplication { @LoadBalanced @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(EruekaServerConsumerApplication.class, args); } }
b:调用过程
@RestController public class MyController { @Autowired RestTemplate restTemplate; @RequestMapping public String test(){ return restTemplate.getForObject("http://provider1/test",String.class); } }