1. 程式人生 > >spring clould(一)服務註冊與發現(Eureka)

spring clould(一)服務註冊與發現(Eureka)

前言

Spring Cloud是一個基於Spring Boot實現的雲應用開發工具。Spring cloud包含了很多子專案,用於解決我們服務開發中需要對面的問題,比如服務叢集、服務發現、斷路器、智慧路由。 本次開發專案中是用Spring Cloud Eureka實現在服務治理。

1、服務治理

Spring cloud提供了多個服力治理框架,比如:Netflix Eureka、Consul、Zookeeper。

2、Spring Cloud Eureka實現服務治理

Spring Cloud Eureka是Spring Cloud Netflix專案下的服務治理模組
(1)建立服務註冊中心
建立一個spring boot 專案eureka-service,在Pom.xml中加入如下依賴

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.0.2.RELEASE</version>
     <relativePath/>
</parent>
 <dependencies>
     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka-server</artifactId>
     </dependency>
 </dependencies>
 <dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-dependencies</artifactId>
             <version>Finchley.RELEASE</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
     </dependencies>
 </dependencyManagement>

(2)啟動方法

@SpringBootApplication
@EnableEurekaServer
public class MainApplication {
	public static void main(String[] args) {
		SpringApplication.run(MainApplication .class, args);
	}
}

(3)application.propertis配置

spring.application.name=eureka-server
server.port=80791
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

啟動工程後,訪問:http://localhost:80791/,可以看到註冊服務頁面。
(4)建立服務提供方
建立一個spring boot 專案eureka-client,在Pom.xml中加入如下依賴

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

(5)啟動方法

@EnableDiscoveryClient
@SpringBootApplication
public class Application {
		public static void main(String[] args) {
		    SpringApplication.run(Application .class, args);
	}
}

(6)application.properties配置

spring.application.name=eureka-client
server.port=80792
##eureka註冊中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:80791/eureka/