SpringCloud教程(Finchley版本)-02:服務消費者
阿新 • • 發佈:2018-11-27
本文,講述如何將一個服務註冊到eureka註冊中心,主要分為以下幾個步驟:
- 1.新建專案
- 2.引入eureka依賴
- 3.添加註解
- 4.修改配置檔案
- 5.新建一個controller,提供一個服務介面
- 6.啟動專案
由於後續需要演示負載均衡,這裡會建立兩個專案company_server1,company_server2,這兩個專案提供完全相同的服務,註冊到註冊中心時,使用相同的服務名稱company-server,由於是兩個服務,所以專案的埠是不同的,其他相同。具體步驟如下:
1.新建專案
新建一個SpringBoot專案company_server1。
2.引入eureka依賴
eureka-client依賴:
<!--eureka client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
springcloud依賴,在 標籤外面:
<!--springcloud依賴管理--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
3.添加註解
在啟動類添加註解@EnableEurekaClient,將專案啟動為一個以eureka做註冊中心的服務。
@EnableEurekaClient @SpringBootApplication public class CompanyServer1Application { public static void main(String[] args) { SpringApplication.run(CompanyServer1Application.class, args); } }
4.修改配置檔案
server:
port: 8011
spring:
application:
name: company-server
eureka:
client:
service-url:
default: http://localhost:8761/eureka
name: company-server,就是把此專案註冊到註冊中心時,服務名為company-server,後面其他專案,通過這個服務名稱,就能找到這個服務,而不需要通過ip:port。
5.新建一個controller,提供一個服務介面
我們新建一個controller包,下面建一個CompanyController,裡面寫一個服務介面,對外提供服務,程式碼如下:
@RestController
@RequestMapping("company")
public class CompanyController {
@Value("${server.port}")
String port;
@GetMapping("get")
public String getCompany(Integer id){
return "port:"+port+",企業資訊為:阿里巴巴"+id;
}
}
6.啟動專案
啟動專案,會發現專案註冊到了註冊中心上:
訪問介面http://localhost:8011/company/get?id=2,發現介面也可以提供服務。
然後我們再寫一個相同的服務,步驟和上面一樣,埠改為8014,註冊時,服務名和上面一樣,也是company-server,提供相同的服務,方便後面演示負載均衡。