1. 程式人生 > >spring cloud入門demo

spring cloud入門demo

1.建立一個maven(空)工程,例如:springCloudLearning01

2.在maven工程中建立一個module工程,這是建立eureka-server,類似生產者

按圖中選擇建立

直接下一步,直到完成

3.在啟動類增加註解 @EnableEurekaServer,表明這是一個server

package com.tencent.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
/**
 * 開啟這個註解表明這是一個EurekaServer
 */
@EnableEurekaServer
public class EurekaServerApplication {

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

在application.yml中配置

server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    #通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka serve
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      #指明client需要設定defaultZone為這個地址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

此時可以直接訪問:http://localhost:8761/

可以看到如下的介面,此時是沒有服務消費者的

 

4.再次建立一個module,這次是建立一個消費者,eureka-hi

建立的方法和建立server一樣,也是選擇 cloud-Discovery和Eureka Server

建立好了之後,在啟動類增加註解 @EnableEurekaClient,表明這是一個服務消費者

package com.tencent.servicehi;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
/**
 * 表明這是一個eurekaClient
 */
@EnableEurekaClient
public class ServiceHiApplication {

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

}

在application.yml中配置,需要注意點,已經在註釋上面提示了

eureka:
  client:
    serviceUrl:
      #連線server指明的defaultZone,兩者必須一致,否則連線不上
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8762
spring:
  application:
    #表示client的一個標識名稱,不重複
    name: service-hi

建立一個controller用來測試

package com.tencent.servicehi.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @RequestMapping("/hi")
    public String home(@RequestParam String name) {
        return "歡迎訪問spring cloud eurekaClient";
    }

}

啟動專案,可以看到,此時多了一個服務消費者,名稱為service-hi,埠號為8762

這個時候,就可以訪問controller了,可以看到訪問成功了,訪問的地址:http://localhost:8762/hi?name=yu

此時一個簡單的spring cloud入門demo就搭建好了

 

系統學習spring cloud: 引用github上的原始碼:

原始碼下載:https://github.com/forezp/SpringCloudLearning/tree/master/chapter1