這篇文章主要介紹SpringCloud Eureka Provider及Consumer的實(shí)現(xiàn)示例分享,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),集賢網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:集賢等地區(qū)。集賢做網(wǎng)站價(jià)格咨詢:18982081108
Eureka-Provider 服務(wù)的提供者
新建一個(gè)服務(wù)提供者項(xiàng)目
1、導(dǎo)入pom文件
<properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2、在啟動(dòng)類上加注解
@SpringBootApplication @EnableDiscoveryClient // 這個(gè)注解加不加都可以,因?yàn)镋ureka public class EurekaProviderApplication { public static void main(String[] args) { SpringApplication.run(EurekaProviderApplication.class, args); } }
上邊那個(gè)@EnableDiscoverClient 注解加不加都行的原因會(huì)在后邊表名
3、在Eureka-Provider項(xiàng)目中添加一個(gè)簡(jiǎn)單的接口
@RestController public class EurekaProviderController { @GetMapping("/provider") public String provider(@RequestParam String aaa){ return "eureka-provider-return" + aaa; } }
4、以上配置完成之后啟動(dòng)Eureka-Provider
啟動(dòng)后會(huì)在控制臺(tái)輸出
DiscoveryClient_EUREKA-PROVIDER/192.168.1.4:eureka-provider:8000: registering service...
同時(shí)看localhost:8761 頁(yè)面的Instance currently registered 會(huì)多出一條信息
Application AMIs Availability Zones Status
EUREKA-PROVIDER n/a (1) (1) UP (1) - 192.168.1.4:eureka-provider:8000
Eureka-Consumer 服務(wù)的調(diào)用者
調(diào)用者的配置和上邊提供者類似,applicatioin.yml配置修改server.port=8100
1、啟動(dòng)類修改
@SpringBootApplication // 另一個(gè)發(fā)現(xiàn)服務(wù)的注解可以不用謝(SpringCloud版本要在Edgware之后) public class EurekaConsumerApplication { @Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(EurekaConsumerApplication.class, args); } }
2、編寫(xiě)一個(gè)調(diào)用接口的類
@RestController public class EurekaConsumerController { @Autowired private RestTemplate restTemplate; @GetMapping("/consumer") @GetMapping("/consumer") public String consumer(@RequestParam String aaa){ return restTemplate.getForObject("http://EUREKA-PROVIDER/provider?aaa=" + aaa,String.class ); } }
3、啟動(dòng)服務(wù)調(diào)用者
啟動(dòng)后,調(diào)用調(diào)用者的觸發(fā)地址localhost:8100/consumer?aaa=consumerSemdParamter
瀏覽器顯示內(nèi)容:
eureka-provider-returnconsumerSemdParamter
上邊遺留的一個(gè)問(wèn)題,eureka-client
不加@EnableDiscoveryClient
以將自己注冊(cè)到注冊(cè)中心
先看EurekaClientAutoConfiguration
類中
@Configuration @EnableConfigurationProperties @ConditionalOnClass(EurekaClientConfig.class) @Import(DiscoveryClientOptionalArgsConfiguration.class) @ConditionalOnBean(EurekaDiscoveryClientConfiguration.Marker.class) @ConditionalOnProperty(value = "eureka.client.enabled", matchIfMissing = true) @ConditionalOnDiscoveryEnabled @AutoConfigureBefore({ NoopDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class, ServiceRegistryAutoConfiguration.class }) @AutoConfigureAfter(name = { "org.springframework.cloud.autoconfigure.RefreshAutoConfiguration", "org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration", "org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration" }) public class EurekaClientAutoConfiguration { }
可以看到該類加載的條件是需要有EurekaDiscoveryClientConfiguration.Maker.class
的Bean存在,并且eureka.client.enabled
為true,因?yàn)樵撝的J(rèn)為true,所以不需要關(guān)注,因此重要的就是EurekaDiscoveryClientConfiguration.Maker.class
這個(gè),而這個(gè)類在Dalston
之前的舊版本是不會(huì)自動(dòng)加載的,而在Edgware
之后,該類就配置到spring.factories
文件中了,改文件中所配置的bean在springboot啟動(dòng)的時(shí)候就會(huì)被加載(所以不需要手動(dòng)配上注冊(cè)服務(wù)的注解了,springboot會(huì)自動(dòng)配置)
以上是“SpringCloud Eureka Provider及Consumer的實(shí)現(xiàn)示例分享”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:SpringCloudEurekaProvider及Consumer的實(shí)現(xiàn)示例分享
當(dāng)前URL:http://www.rwnh.cn/article34/jdcipe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站制作、云服務(wù)器、外貿(mào)建站、網(wǎng)站營(yíng)銷、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)