创建consumer服务
生活随笔
收集整理的這篇文章主要介紹了
创建consumer服务
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們已經(jīng)編寫一個(gè)服務(wù)提供者,在我們的高可用Eureka當(dāng)中注冊(cè),將這個(gè)服務(wù)注冊(cè)成功,我們來(lái)看一下,如何在高可用的Eureka,去構(gòu)建我們的Consumer,那么我們要編寫的Consumer是什么意思呢,先跟大家說(shuō)一下,我們之前寫的Provider,它是一個(gè)服務(wù)提供者,也就是未來(lái)他要為誰(shuí)提供服務(wù)呢,我們現(xiàn)在要編寫的Consumer,也就是未來(lái)在我的Consumer當(dāng)中,會(huì)有調(diào)用Provider服務(wù)當(dāng)中接口的一個(gè)現(xiàn)象,那我們先把Consumer的代碼構(gòu)建出來(lái),我們就直接拷貝Provider就可以了,springcloud-eureka-consumer10.40.8.152:9090/user然后我們還是去改他的pom文件,然后pom其他的內(nèi)容不用動(dòng),Consumer也是Eureka的客戶端,spring-cloud-starter-eureka,這里表示的是eureka的artifactId就可以了,創(chuàng)建項(xiàng)目,然后我們項(xiàng)目創(chuàng)建好以后,去調(diào)用provider的代碼,我要在這個(gè)服務(wù)里去調(diào)用這個(gè)服務(wù)里的接口,就是去調(diào)用UserController接口,那么我們?cè)谀膬赫{(diào)用,做過分布式開發(fā)的,做過SOA的項(xiàng)目,比如電商項(xiàng)目,大家都知道,我在我的項(xiàng)目當(dāng)中,去調(diào)用服務(wù)的時(shí)候,肯定是在我的項(xiàng)目業(yè)務(wù)層去調(diào)用的,所以我現(xiàn)在的Consumer里,含有業(yè)務(wù)層的代碼,所以我這里還是要去創(chuàng)建一個(gè)業(yè)務(wù)層,把它放到.service包下,然后我們起個(gè)名,比如我們叫userService,然后在userService里干嘛呢,@Service肯定要加一個(gè)注解,因?yàn)槲覀円尤氲絊pring IOC容器當(dāng)中的,然后這里我們有一個(gè)方法,比如他也返回一個(gè)List,也叫g(shù)etUsers吧,然后在getUsers當(dāng)中呢,我們先返回一個(gè)空,先把這個(gè)結(jié)構(gòu)搭建出來(lái),這樣我們的Consumer就編寫好了,我們先把啟動(dòng)類啟動(dòng)一下,注意在Consumer當(dāng)中,你的啟動(dòng)類也要加@EnableEurekaClient,因?yàn)镃onusmer也是Eureka的一個(gè)客戶端,所以無(wú)論是Provider還是Consumer,都是客戶端,那么這里我們說(shuō)一下,現(xiàn)在Consumer要向Provider去消費(fèi),那么在這里呢,他也需要在注冊(cè)中心當(dāng)中,去注冊(cè),在我們的Eureka注冊(cè)中心當(dāng)中去注冊(cè),這樣他才能消費(fèi)注冊(cè)中心當(dāng)中的服務(wù),那么在我們加了@EnableEurekaClient以后呢,其實(shí)我們?cè)龠\(yùn)行的時(shí)候,對(duì)于配置文件當(dāng)中,就會(huì)根據(jù)你當(dāng)前注冊(cè)中心的地址,注冊(cè)到相應(yīng)的節(jié)點(diǎn)當(dāng)中,這一點(diǎn)和Provider的配置是一樣的,所以這塊需要注意這樣一個(gè)點(diǎn),就是服務(wù)的消費(fèi)者與提供者,都需要在Eureka注冊(cè)中心注冊(cè),這樣我們才能做服務(wù)與服務(wù)之間的通信,所以我們還是在Consumer的配置文件當(dāng)中,要保留這句話的,Consumer的配置文件,那我們先解決第一個(gè)問題,我們現(xiàn)在啟動(dòng)一下,我們的Consumer服務(wù)能不能在我們的注冊(cè)中心完成注冊(cè),運(yùn)行,還有的地方需要改,端口,現(xiàn)在如果我們的provider在啟動(dòng)的話,端口搶占了,所以我們得改一下,9091,然后我們啟動(dòng),啟動(dòng)Consumer,啟動(dòng)成功,9091,然后我們刷新http://10.40.8.152:8761/SPRINGCLOUD-EUREKA-CONSUMER n/a (1) (1) UP (1) - springcloud-eureka-consumer:10.40.8.144:9091這里是是不是監(jiān)聽了9091的服務(wù),我的服務(wù)Provider監(jiān)聽9090也在這里,所以如果我們服務(wù)和服務(wù)之間要想通信,比如我的Consumer要去消費(fèi)我的提供者,調(diào)他的服務(wù),那么首先大家一定要記住就是,你的服務(wù)提供者和服務(wù)消費(fèi)者,比如都要在eureka的注冊(cè)中心,完成服務(wù)的注冊(cè),否則是無(wú)法通信的,然后我們將業(yè)務(wù)層的代碼粘到筆記當(dāng)中,@Service
public class UserService {public List<User> getUsers(){return null;}
}這一塊我們先空著,先不粘,因?yàn)槲覀兪紫仁窍劝循h(huán)境搭建好,把Consumer的項(xiàng)目構(gòu)建好,然后把業(yè)務(wù)層構(gòu)建好,那么我們把環(huán)境搭建好了,未來(lái)我們要關(guān)注的就是,在業(yè)務(wù)層當(dāng)中,怎么去調(diào)用Provider的接口了,我們已經(jīng)把環(huán)境搭建好了
<?xml version="1.0" encoding="UTF-8"?>
<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>com.learn.cloud</groupId><artifactId>springcloud-eureka-consumer</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties> <dependencyManagement><dependencies><dependency> <groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency></dependencies><!-- 這個(gè)插件,可以將應(yīng)用打包成一個(gè)可執(zhí)行的jar包 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
server.port=9091
eureka.client.serviceUrl.defaultZone=http://10.40.8.152:8761/eureka
spring.application.name=springcloud-eureka-consumer
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ipAddress}:${spring.application.instance_id:${server.port}}
package com.learn.pojo;public class User {private int userid;private String username;private int userage;public int getUserid() {return userid;}public void setUserid(int userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getUserage() {return userage;}public void setUserage(int userage) {this.userage = userage;}public User(int userid, String username, int userage) {super();this.userid = userid;this.username = username;this.userage = userage;}public User() {super();// TODO Auto-generated constructor stub}}
package com.learn.service;import java.util.List;import org.springframework.stereotype.Service;import com.learn.pojo.User;@Service
public class UserService {public List<User> getUsers(){return null;}
}
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@EnableEurekaClient
@SpringBootApplication
public class EurekaConsumerApplication {public static void main(String[] args) {SpringApplication.run(EurekaConsumerApplication.class, args);}
}
?
總結(jié)
以上是生活随笔為你收集整理的创建consumer服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 注册服务并测试接口
- 下一篇: 在consumer中调用provider