1. 程式人生 > >SpringCloud入門相關知識點二

SpringCloud入門相關知識點二

一:SpringCloud聚合子模組之microservicecloud-consumer-dept-80,部門服務消費者

  1. 新建microservicecloud-consumer-dept-80
            
        
     
  2. 修改pom.xml檔案
     
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.topcheer</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>microservicecloud-consumer-dept-80</artifactId>
      <description>部門微服務消費者</description>
      
      <dependencies>
            <!--這裡我們引入自己自定義的api通用包,就可以使用Dept部門實體  --> 
    	    <dependency>
    	       <groupId>com.topcheer</groupId>
    	       <artifactId>microservicecloud-api</artifactId>
    	       <version>${project.version}</version> 
    	    </dependency>
    	     <dependency>
    	       <groupId>org.springframework.boot</groupId>
    	       <artifactId>spring-boot-starter-web</artifactId>
    	    </dependency>
    	    <!--修改後立即熱部署  -->
    		<dependency>
    		       <groupId>org.springframework</groupId>
    		       <artifactId>springloaded</artifactId>
    		</dependency>
    		<dependency>
    		       <groupId>org.springframework.boot</groupId>
    		       <artifactId>spring-boot-devtools</artifactId>
    		</dependency>
      </dependencies>
    </project>

     

  3. 修改application.yml檔案
     
  4. 建立配置類資訊ConfigBean

    RestTemplate簡介
     
     
  5. 建立消費者controller類
     
     
    package com.topcheer.springcloud.controller;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    import com.topcheer.springcloud.entities.Dept;
    
    @RestController
    public class DeptController_Consumer {
    
    	//定義呼叫服務端的基本路徑地址
    	private static final String REST_URL_PREFIX = "http://localhost:8001";
    	
    	@Autowired
    	private RestTemplate restTemplate;//使用restTemplate遠端呼叫服務端介面
    	
    	@RequestMapping(value="/consumer/dept/add")
    	public boolean add(Dept dept) {
    		//restTemplate需要的三個引數:路徑,引數,返回型別
    		return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add", dept, boolean.class);
    	}
    	@RequestMapping(value="/consumer/dept/get/{id}")
    	public Dept get(@PathVariable("id") Long id) {
    		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id, Dept.class);
    	}
    	
    	@SuppressWarnings("unchecked")
    	@RequestMapping(value="/consumer/dept/list")
    	public List<Dept> list() {
    		return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
    	}
    }
    

     

  6. 建立啟動類DeptConsumer80_App

     

    package com.topcheer.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class DeptConsumer80_App {
    	
    	public static void main(String[] args) {
    		SpringApplication.run(DeptConsumer80_App.class, args);
    	}
    
    }
    

     

  7. 將微服務的服務端和消費端都啟動起來並且測試剛剛建立的消費端,看看是否可以呼叫服務端介面
     ⑴測試路徑:http://localhost/consumer/dept/list
         效果:
              
    ⑵ 測試路徑:http://localhost/consumer/dept/get/2
          
    ⑶測試路徑:http://localhost/consumer/dept/add?dname=gogogo
         
        

二:Eureka服務註冊與發現

  1. 什麼是Eureka?
            
  2. Eureka基本架構和原理
         
         
        
  3. Eureka的三大角色
     ①Eureka Server提供服務註冊和發現
     ②Service Provider服務提供方將自身服務註冊到Eureka,從而使服務消費方能夠找到
     ③Service Consumer服務消費方從Eureka獲取註冊服務列表,從而能夠消費服務
  4. 建立EurekaServer服務註冊中心
      ⑴建立子模組microservicecloud-eureka-7001
            
            
            
      ⑵修改pom.xml檔案
            
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.topcheer</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>microservicecloud-eureka-7001</artifactId>
      
      <dependencies>
        <!--新增eureka-server服務端依賴  -->
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency> 
        <!--修改後立即熱部署  -->
    	<dependency>
    	       <groupId>org.springframework</groupId>
    	       <artifactId>springloaded</artifactId>
    	</dependency>
    	<dependency>
    	       <groupId>org.springframework.boot</groupId>
    	       <artifactId>spring-boot-devtools</artifactId>
    	</dependency>
      </dependencies>
    </project>

      ⑶建立application.yml檔案
             
            
    server:
      port: 7001
      
    eureka:
      instance:
        hostname: localhost #這個是eureka服務端的例項名稱
      client:
        register-with-eureka: false #false表示我們這個7001服務不向註冊中心註冊自己
        fetch-registry: false #false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
        service-url:  #下面的這個defaultZone,設定與Eureka Server互動的地址查詢服務和註冊服務都需要依賴這個地址
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #其實就是上面定義的http://localhost:7001/eureka/    

      ⑷建立7001的啟動類
          
          
      ⑸測試7001服務,老方法啟動這個7001微服務
           
  5. 將部門微服務提供者8001註冊進Eureka服務中心
     ⑴修改microservicecloud-provider-dept-8001微服務的pom.xml檔案,新增依賴
           
      ⑵ 修改microservicecloud-provider-dept-8001微服務的application.yml檔案
          
      ⑶修改DeptProvider8001_App這個啟動類
           
       ⑷啟動7001註冊中心和8001微服務提供者服務端
             訪問7001效果:
                    
                    
          ⑸但是現在出現一個問題,幾分鐘後,頁面出現下面效果,出現紅色字型
               (這個是eureka自我保護,後面說)
                   
         ⑹springcloud微服務完善,主機對映名稱修改,修改8001的application.yml檔案
              
             效果:
                
          ⑺修改主機IP資訊提示,修改8001的application.yml檔案
                現在的效果:
                          
                修改的內容:
                          
                效果:
                     

文章目錄