0、為什么需要eureka
當我們從當體系統拆分為多個獨立服務專案之后,如果aaa.com/uer、aaa.com/order;;相互之間呼叫,如果只是一個服務一個實體,那還可以直接通過固定地址(如http://111.111.11.1:7119/user/getuser/1)直接訪問;
但是,我們一個服務有很多個實體,這樣你就不能寫死地址了吧,多個之間你得挑出一個來呼叫吧(負載均衡),還有多個實體有的停止了,有的新加入了,這你得心跳檢測健康監測吧等等;這些,都是從單體系統拆分后面臨的實際問題,你可以自己一個一個去克服和實作;當遇到了spring cloud,哈哈,你有福了,spring cloud eureka正是為你解決以上問題而來;
eureka服務發現組件包含eureka server(服務注冊中心)和eureka client(服務注冊與發現);本身通過心跳檢測(默認30S)進行服務的注冊與發現與健康檢查
一、eureka集成
1、eureka server
1.1、添加依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
1.2、組態檔增加配置
eureka: instance: hostname: localhost prefer-ip-address: true client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ server: enable-self-preservation: falsespring: application: name: eurka-server
1.3、啟動類增加 @EnableEurekaServer 注解
@SpringBootApplication@EnableEurekaServerpublic class application{ public static void main(String[] args) { SpringApplication.run(application.class); }}
一個eureka server就完成了,啟動運行

還沒有服務實體,因為我們還沒添加,好,下面我們來添加eureka client
2、eureka client
2.1、添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2.2、修改組態檔
server: port: 8763spring: application: name: usereureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true
2.3、啟動類中增加 @EnableEurekaClient 注解
@SpringBootApplication@EnableEurekaClient@EnableHystrixDashboardpublic class application{ public static void main(String[] args) { SpringApplication.run(application.class); }}
完成
我們在controller里面添加一個方法進行測驗
@RestController@RequestMapping("/user")public class UserController{ @Autowired private ServiceUtil serviceUtil; @RequestMapping("/hello") public String Hello() { return ("hello world" +serviceUtil.getPort()); }}
3、測驗
先啟動eureka server 專案,再啟動client專案,我們可以看到,client的服務實體已經注冊進來了

再切換埠增加一個實體,可以看到,也注冊進來了,這樣就可以通過eureka管理多個服務的多個實體以及相互之間呼叫的問題了

GIT原始碼后面再放出
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/26044.html
標籤:架構設計
