SpringCloud Eureka Provider及Consumer的實現(xiàn)
Eureka-Provider 服務(wù)的提供者
新建一個服務(wù)提供者項目
1、導入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、在啟動類上加注解
@SpringBootApplication @EnableDiscoveryClient // 這個注解加不加都可以,因為Eureka public class EurekaProviderApplication { public static void main(String[] args) { SpringApplication.run(EurekaProviderApplication.class, args); } }
上邊那個@EnableDiscoverClient 注解加不加都行的原因會在后邊表名
3、在Eureka-Provider項目中添加一個簡單的接口
@RestController public class EurekaProviderController { @GetMapping("/provider") public String provider(@RequestParam String aaa){ return "eureka-provider-return" + aaa; } }
4、以上配置完成之后啟動Eureka-Provider
啟動后會在控制臺輸出
DiscoveryClient_EUREKA-PROVIDER/192.168.1.4:eureka-provider:8000: registering service...
同時看localhost:8761 頁面的Instance currently registered 會多出一條信息
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、啟動類修改
@SpringBootApplication // 另一個發(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、編寫一個調(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、啟動服務(wù)調(diào)用者
啟動后,調(diào)用調(diào)用者的觸發(fā)地址localhost:8100/consumer?aaa=consumerSemdParamter
瀏覽器顯示內(nèi)容:
eureka-provider-returnconsumerSemdParamter
上邊遺留的一個問題,eureka-client
不加@EnableDiscoveryClient
以將自己注冊到注冊中心
先看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,因為該值默認為true,所以不需要關(guān)注,因此重要的就是EurekaDiscoveryClientConfiguration.Maker.class
這個,而這個類在Dalston
之前的舊版本是不會自動加載的,而在Edgware
之后,該類就配置到spring.factories
文件中了,改文件中所配置的bean在springboot啟動的時候就會被加載(所以不需要手動配上注冊服務(wù)的注解了,springboot會自動配置)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- springcloud微服務(wù)之Eureka配置詳解
- springCloud服務(wù)注冊Eureka實現(xiàn)過程圖解
- SpringCloud添加客戶端Eureka Client過程解析
- SpringCloud Eureka自我保護機制原理解析
- SpringCloud Eureka搭建的方法步驟
- Spring Cloud搭建eureka過程圖解
- SpringCloud Eureka 服務(wù)注冊實現(xiàn)過程
- springboot2.0和springcloud Finchley版項目搭建(包含eureka,gateWay,F(xiàn)reign,Hystrix)
- 細說Springcloud eureka的幾種主動下線服務(wù)的方式
- Springcloud Eureka配置及集群代碼實例
相關(guān)文章
Java日志相關(guān)技術(shù)_動力節(jié)點Java學院整理
這篇文章主要介紹了Java日志相關(guān)技術(shù)_動力節(jié)點Java學院整理的相關(guān)資料,需要的朋友可以參考下2017-07-07Java Socket編程筆記_動力節(jié)點Java學院整理
Socket對于我們來說就非常實用了。下面是本次學習的筆記。主要分異常類型、交互原理、Socket、ServerSocket、多線程這幾個方面闡述2017-05-05SpringBoot如何使用Undertow做服務(wù)器
這篇文章主要介紹了SpringBoot如何使用Undertow做服務(wù)器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07