SpringCloud的功能与Dubbo的功能类似,都是作用于各个服务之间,方便各个服务之间的接口调用。随之微服务架构的盛行,Cloud的应用也大于Dubbo。本文简单的搭建一个SpringCloud的入门Demo。主要分为服务(注册中心),生产者,消费者。
一、搭建服务端(eureka注册中心)
1. 搭建服务基本架构
选择Boot项目
配置项目信息
选择Web及Eureka Server (注意:除服务选择Server其余全部选择Client)
项目架构搭建完成
二、配置yml及application
eureka的默认端口为8761 所以我使用的为默认端口
server:
port: 8761
eureka:
instance:
hostname: eureka-server # eureka实例的主机名
client:
register-with-eureka: false #不把自己注册到eureka上
fetch-registry: false #不从eureka上来获取服务的注册信息
service-url:
defaultZone: http://localhost:8761/eureka/
application启动类配置(添加注解,标识server)
三、启动项目
看启动标识
访问eureka默认界面(http://localhost:8761)
二、provider
一、搭建项目架构
配置与服务端步骤类似,只是最后一步选择client而不是server。创建即可
二、配置yml
server:
port: 8001
spring:
application:
name: provider-ticket
eureka:
instance:
prefer-ip-address: true # 注册服务的时候使用服务的ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/
三、编写测试方法,启动项目将服务发布到注册中心
Service
@Service
public class TestService {
public String TestMethod(){
return "你好,SpringCloud";
}
}
Controller
@RestController
public class TestController {
@Autowired
private TestService testService;
@RequestMapping(value = "/test/get",method = RequestMethod.GET)
public String TestMethod(){
return testService.TestMethod();
}
}
启动项目,访问eureka界面,查看是否发布成功。
三、搭建consumer
消费者的项目结构搭建与生产者一致,均选择client即可
一、配置yml及application
server:
port: 8002
spring:
application:
name: consumer-ticket
eureka:
instance:
prefer-ip-address: true # 注册服务的时候使用服务的ip地址
client:
service-url:
defaultZone: http://localhost:8761/eureka/
二、编写测试类、访问生产服务编写的测试接口
@RestController
public class TestController {
@Autowired
RestTemplate restTemplate;
@RequestMapping(value = "/test/get",method = RequestMethod.GET)
public String TestMethod(){
//此参数为注册在Eureka中的服务
String ticketName = restTemplate.getForObject("http://PROVIDER-TICKET//test/get", String.class);
return ticketName;
}
}
三、启动项目,测试是否配置成功
接口调用成功,入门Demo搭建完成。