springcloud之eureka服務註冊
阿新 • • 發佈:2018-12-29
1.準備
為方便測試,建了多專案工程,方便開發,目錄結構如下
springcloud-demo
api # 公共模組
eureka-7001 # eureka註冊中心
provider-8001 # 服務提供者provider
consumer-9001 # 服務消費者consumer
2.springcloud-demo引入依賴
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 注:主要就是Springboot(1.5.9.RELEASE)和Springcloud(Dalston.SR1) 如果版本不相容可能會出現錯誤
3.api
沒什麼可說的 就是一些公共的類 後面會對他改造 所以取名是api 不是common
4.eureka-7001
# 依賴引入 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> # EurekaApplication新增@EnableEurekaServer,開啟服務中心 # application.yml配置 server: port: 7001 eureka: instance: # eureka服務端的例項名稱 hostname: localhost client: # false表示不向註冊中心註冊自己 register-with-eureka: false # false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務 fetch-registry: false service-url: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 注:啟動後可以直接訪問註冊中心
5.provider-8001
# 依賴引入 <!-- actuator監控資訊完善 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- 將微服務provider側註冊進eureka --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> # ProviderApplication新增@EnableEurekaClient,服務提供者也就是要到註冊中心 註冊自己的服務 # application.yml配置 server: port: 8001 eureka: client: service-url: defaultZone: http://localhost:7001/eureka instance: instance-id: provider-8001 # 訪問路徑可以顯示IP地址 prefer-ip-address: true info: app.name: provider-8001 company.name: www.boomsecret.com build.artifactId: $project.artifactId$ build.version: $project.version$ 注:$xx$ 是自定義符號 <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> <configuration> <delimiters> <delimiter>$</delimiter> </delimiters> </configuration> </plugin> </plugins>
6.consumer-9001
# 依賴引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
# RestTemplate配置 可以呼叫provider服務
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);
factory.setConnectTimeout(15000);
return factory;
}
}
7.總結
其實這個例子就是簡單的eureka註冊中心搭建 和服務提供者的簡單實現 接下來會更深入的講解
原始碼:https://gitee.com/jsjack_wang/springcloud-demo master分支