1. 程式人生 > >SpringCloud服務註冊與發現Eureka

SpringCloud服務註冊與發現Eureka

一、建立Eureka Server作為服務註冊中心

二、新增pom.xml檔案依賴

        <!--eureka server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>

三、啟動一個服務註冊中心

只需要一個註解@EnableEurekaServer,這個註解需要在springboot工程的啟動application類上加:

@EnableEurekaServer
@SpringBootApplication
public class EurekaserverApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaserverApplication.class, args);
	}
}

四、配置檔案appication.yml

每一個例項註冊之後需要向註冊中心傳送心跳(因此可以在記憶體中完成),在預設情況下erureka server也是一個eureka client ,必須要指定一個 server。eureka server的配置檔案appication.yml:

server:
  port: 8090

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka server。

五、啟動工程,開啟瀏覽器訪問: http://localhost:8090

六、建立一個服務提供者 (eureka client)

當client向server註冊時,它會提供一些元資料,例如主機和埠,URL,主頁等。Eureka server 從每個client例項接收心跳訊息。 如果心跳超時,則通常將該例項從註冊server中刪除。

建立過程同server類似,建立完pom.xml如下:

        <dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>

通過註解@EnableEurekaClient 表明自己是一個eurekaclient.

@SpringBootApplication
@EnableEurekaClient
@RestController
public class ServiceHiApplication {

	public static void main(String[] args) {
		SpringApplication.run(ServiceHiApplication.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配置檔案如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8090/eureka/
server:
  port: 8091
spring:
  application:
    name: service-hi

七、開啟 http://localhost:8091/hi?name=lyh ,你會在瀏覽器上看到 :

hi lyh,i am from port:8091