服务注册
1创建项目、完成服务功能开发
创建SpringBoot项目,按照之前的开发模式进行服务的开发
2导入eureka-server依赖
如果是基于微服务架构开发,在创建项目的时候可以直接勾选“Spring Cloud Discovery—Eureka server”
若是单体项目,需手动导入。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3配置application.yml
server:
port: 8001
# 每个服务必须指定name,此name就是当前系统中服务的唯一标识
spring:
application:
name: goods-provider
# 指定当前服务注册的 “服务注册与发现中心”的地址
eureka:
client:
service-url:
defaultzone: http://localhost:8761/eureka
4在启动类添加@EnableEurekaClient
服务发现
服务发现即服务调用,Spring Cloud Netflix提供两种实现用于完成服务调用
- Ribbon
- Feign
1 Ribbon依赖及配置
创建项目时添加Ribbon的依赖和eureka Service
2配置application.yml
server:
port: 9001
spring:
application:
name: goods-ui
eureka:
client:
service-url:
defaultzone: http://localhost:8761/eureka
3在启动类添加@EnableDiscoveryClient注解
4使用Ribbon进行服务的调用
配置RestTemplate
@Configuration
public class AppConfig {
@LoadBalanced //负载均衡设置(启用Ribbon)
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
在Service中使用RestTemplate完成服务调用
@Service
public class GoodsUIService {
//通过服务的调用获取商品信息
@Resource
private RestTemplate restTemplate;
public void visitGoodsList(){
restTemplate.`一般用get和post
String data = restTemplate.getForObject("http://goods-provider/goods/list", String.class);
System.out.println("----"+data);
}
}