在《服務註冊&服務提供者》這一篇可能學習了這麼開發一個服務提供者,在生成上服務提供者一般是部署在內網上,便是服務提供者所在的服務器是與互聯網徹底隔離的。這篇說下服務發現(服務消費者),一般服務消費者是部署在與互聯網聯通的服務器上,提供restful接口給H5和App調用。java
服務消費者 :Service Consumer本質上也是一個Eureka Client。它啓動後會從Eureka Server上獲取全部實例的註冊信息,包括IP地址、端口等,並緩存到本地。這些信息默認每30秒更新一次。若是與Eureka Server通訊中斷或者Eureka Server宕機,Service Consumer仍然能夠經過本地緩存與Service Provider通訊。
一、 新建項目sc-eureka-client-consumer-ribbon,對用的pom.xml文件git
<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> <groupId>spring-cloud</groupId> <artifactId>sc-eureka-client-consumer-ribbon</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>sc-eureka-client-consumer-ribbon</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> </dependency> </dependencies> </dependencyManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.0.1.RELEASE</version> </dependency> <!-- <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>1.4.5.RELEASE</version> </dependency> --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> <version>2.0.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.4.RELEASE</version> </dependency> </dependencies> </project>
備註:spring cloud 2.x推薦使用spring-cloud-starter-netflix-ribbon,並且spring-cloud-starter-ribbon已經被標誌爲過時web
二、 新建類ConsumerApplication.java,spring boot啓動類spring
package sc.consumer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
三、 建立類RestTemplateConfig.java,該類是一個配置類,主要返回org.springframework.web.client.RestTemplate對象apache
package sc.consumer; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate getRestTemplate(){ return new RestTemplate(); } }
四、 建立配置文件bootstrap.yml和application.yml;具體內容參考源碼bootstrap
五、 其餘類接口以下緩存
六、 啓動註冊中心sc-eureka-server和服務提供者sc-eureka-client-provider,具體請參考《eureka註冊中心單機》和《服務註冊&服務提供者》
七、 啓動服務消費者sc-eureka-client-consumer-ribbon,並驗證是否啓動成功服務器
也能夠查看日誌是否有沒有報錯restful
八、 訪問相關接口
查詢:
http://127.0.0.1:5600/cli/user/getUser/4app
列表:
http://127.0.0.1:5600/cli/user/listUser
添加:
http://127.0.0.1:5600/cli/user/addUser
更新:
http://127.0.0.1:5600/cli/user/updateUser
刪除:
http://127.0.0.1:5600/cli/user/deleteUser/6
https://gitee.com/hjj520/spring-cloud-2.x/tree/master/sc-eureka-client-consumer-ribbon