發現服務進行RestTemplate呼叫
- 啟動Nacos訪問地址為:http://101.200.201.195:8848/nacos/
- 啟動buscien-service-01業務服務,進行消費
準備作業完成后進行服務消費,
第一步:創建一個Maven工程buscien-service-02
第二步:編輯pom.xml,加入必要的依賴配置
<!-- 匯入bom依賴管理工程 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.opensource</groupId>
<artifactId>bom</artifactId>
<version>${opensource.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 業務服務所需依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
在bom工程中已經全部定義好了對應的版本所以我們在業務工程中就不需要定義依賴版本了,統一在bom中進行維護,
第三步:創建一個SpringBoot啟動類,并且增加一個Http服務
/**
* SpringCloud Alibaba服務發現
*
* @author WuWenTao
* @version 1.0
* @date 2020/9/2 11:38
*/
@EnableDiscoveryClient
@SpringBootApplication
@Configuration
public class BuscienService02Appl {
public static void main(String[] args) {
SpringApplication.run(BuscienService02Appl.class, args);
}
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
@RestController
@RequestMapping("/buscien2/")
class ConsumerController {
private static final Logger log = LoggerFactory.getLogger(ConsumerController.class);
@Autowired
RestTemplate restTemplate;
@Autowired
LoadBalancerClient loadBalancerClient;
@GetMapping("consumer")
public String consumer(@RequestParam String name) {
// 通過的負載均衡介面獲取服務實體資訊
ServiceInstance serviceInstance = loadBalancerClient.choose("buscien-service-01-app");
String url = "http://" + serviceInstance.getServiceId() + ":" + serviceInstance.getPort() + "/buscien1/sayHello?name=" + name;
log.info(url);
String result = restTemplate.getForObject(url, String.class);
return result;
}
}
以上內容很清晰,在啟動類中注入一個RestTemplate并且提供負載均衡的模板,在ConsumerController類中使用
LoadBalancerClient通過應用名稱獲取對應的服務實體資訊,并且通過RestTemplate遠程呼叫服務進行消費,
第四步:撰寫application.properties
server.port=2000
spring.application.name=buscien-service-02-app
spring.cloud.nacos.discovery.server-addr=101.200.201.195:8848
第五步:啟動BuscienService02Appl,啟動完成,在Nacos界面中能夠看到注冊上去的服務,訪問BuscienService02Appl中的服務介面:
http://localhost:2000/buscien2/consumer?name=ServiceConsumer
請求成功后回傳:
hello ServiceConsumer
原始碼地址:https://github.com/450255266/spring-cloud-alibaba
Nacos地址對外開放:http://101.200.201.195:8848/nacos/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20910.html
標籤:Java
上一篇:JAVA 訪問權限
