在微服務架構中,業務都會被拆分紅一個獨立的服務,服務與服務的通信是基於 http restful 的。Spring cloud 有兩種服務調用方式,一種是 ribbon + restTemplate,另外一種是 feign。在這一篇文章首先講解下基於 ribbon + rest。 html
Ribbon 是一個負載均衡客戶端,能夠很好的控制
http
和tcp
的一些行爲。 java
啓動服務提供者web
啓動Eureka註冊中心spring
<!--spring cloud starter ribbon-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<!--spring cloud starter eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
server
建立測試的Controllerapi
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
點擊 Run -> Edit Configurations...
restful
選擇須要啓動多實例的項目並去掉 Single instance only
前面的勾架構
經過修改 application.yml
配置文件的 server.port
的端口,啓動多個實例,須要多個端口,分別進行啓動便可。app