SpringCloud入門相關知識點二
阿新 • • 發佈:2018-12-16
一:SpringCloud聚合子模組之microservicecloud-consumer-dept-80,部門服務消費者
- 新建microservicecloud-consumer-dept-80
- 修改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>
- 修改application.yml檔案
- 建立配置類資訊ConfigBean
RestTemplate簡介
- 建立消費者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); } }
-
建立啟動類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); } }
-
將微服務的服務端和消費端都啟動起來並且測試剛剛建立的消費端,看看是否可以呼叫服務端介面
⑴測試路徑:http://localhost/consumer/dept/list
效果:
⑵ 測試路徑:http://localhost/consumer/dept/get/2
⑶測試路徑:http://localhost/consumer/dept/add?dname=gogogo
二:Eureka服務註冊與發現
- 什麼是Eureka?
- Eureka基本架構和原理
- Eureka的三大角色
①Eureka Server提供服務註冊和發現
②Service Provider服務提供方將自身服務註冊到Eureka,從而使服務消費方能夠找到
③Service Consumer服務消費方從Eureka獲取註冊服務列表,從而能夠消費服務 - 建立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微服務
- 將部門微服務提供者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檔案
現在的效果:
修改的內容:
效果: