概述
本項目使用的IDE爲idea
SpringCloud的服務註冊由服務註冊中心和服務提供方組成。
開發流程
- 創建主項目
- 創建服務註冊中心模塊
- 創建服務提供方模塊
創建主項目
創建一個maven項目
主項目目錄結構
兩個模塊創建前
項目完成後
備註
主項目中代碼不需要修改
創建服務註冊中心
項目目錄結構
項目創建流程
- 使用Spring Initializr來創建項目
- SDK版本使用SDK1.8
- 項目名稱自定義
- 使用Cloud Discovery-Eureka Server來生成項目模板
修改運行文件
將向原有的EurekaserverApplication.java文件中添加@EnableEurekaServer註解
package com.example.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}
}
修改配置文件
配置文件可選擇以下任意一種,本項目中使用application.yml
application.properties
//申明服務註冊中心接口
server.port: 8761
// 主機名
eureka.instance.hostname: localhost
// 這兩個配置沒有的話,會報接口被佔用的錯誤
// 是否將本身註冊到註冊中心
eureka.client.registerWithEureka: false
// 此客戶端是否獲取註冊中心的註冊信息
eureka.client.fetchRegistry: false
application.yml
# 申明服務註冊中心接口
server:
port: 8761
eureka:
instance:
hostname: localhost
# 這兩個配置沒有的話,會報接口被佔用的錯誤
client:
# 是否將本身註冊到註冊中心
registerWithEureka: false
# 此客戶端是否獲取註冊中心的註冊信息
fetchRegistry: false
運行測試
運行
運行EurekaserverApplication.java文件
測試
訪問地址 http://localhost:8761/
若頁面爲以下圖,則表示運行成功
創建服務提供方
項目目錄結構
項目創建流程
項目創建流程與服務註冊中心一致
EurekaclientApplication.java
package com.example.eurekaclient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaclientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaclientApplication.class, args);
}
@Value("${server.port}")
String port;
@RequestMapping("/hi")
public String home(@RequestParam String name) {
return "hi " + name + ",i am from port:" + port;
}
}
修改配置文件
配置文件可選擇以下任意一種,本項目中使用application.yml
application.properties
<!--配置服務註冊中心地址-->
eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/
<!--配置服務端接口-->
server.port: 8762
<!--配置服務名稱-->
spring.application.name: service-hi
application.yml
eureka:
client:
serviceUrl:
<!--配置服務註冊中心地址-->
defaultZone: http://localhost:8761/eureka/
server:
<!--配置服務端接口-->
port: 8762
spring:
application:
<!--配置服務名稱-->
name: service-hi
運行並測試
運行
運行EurekaclientApplication.java文件
測試
訪問地址 http://localhost:8761/
若頁面爲以下圖,則表示運行成功
註冊服務調用測試
向服務註冊中心端口訪問服務端的服務
訪問鏈接http://localhost:8762/hi?name=zyt
訪問結果如下
源碼鏈接
服務註冊中心:https://gitee.com/895873144/spring-cloud-demo/tree/master/eurekaserver
服務提供方:https://gitee.com/895873144/spring-cloud-demo/tree/master/eurekaclient