簡單微服務建立和微服務間的呼叫
阿新 • • 發佈:2018-11-19
建立簡單的微服務並實現微服務相互呼叫
- 建立專案
a、建立專案
b、 配置檔案簡單配置
server.port=8771
spring.cloud.client.ipAddress =client1
//註冊中心ip
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
//註冊名
spring.application.name=product-server
//使用真實ip
eureka.instance.prefer-ip-address=true
//註冊中心顯示名字
eureka.instance.instance-id= {server.port} - 微服務的呼叫方式
a、RestTemplate類
1)啟動類新增方法返回一個RestTemplate
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
2)呼叫:
注入:@Autowired
private RestTemplate restTemplate;
呼叫:Map map= restTemplate.getForObject(“http://orderservice/getById?id=”+123(拼接訪問的URL),Map.class(指定返回型別));
b、LoadBalancerClient類
1)注入
@Autowired
private LoadBalancerClient loadBalancerClient;
2)呼叫:
//通過被呼叫服務註冊的名字獲取被呼叫方的資訊
ServiceInstance serviceInstance =loadBalancerClient.choose(“product-server”(呼叫服務註冊的名字));
//拼接url
String url =“http://”+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/findById?id="+Id;
注:有時候用注入的RestTemplate類呼叫會報錯No instances available for 192.168.1.123 ,自己建立一個 RestTemplate 在呼叫就好了