sprincloudEurekaservice框架搭建一(服務的註冊與發現)

springcloud是在springboot基礎上實現企業級分佈式應用系統,它集服務發現、服務配置、客服端負載均衡、斷路器、服務網關、分佈式配置於一身,是當今很是火的一個web分佈式架構,網上有不少例子,我以爲這篇博客講的不錯:http://blog.csdn.net/forezp/article/details/70148833html

如今我大體講一下個人搭建前端

1、搭建springcloud服務發現java

第一步,正如上面說的,springcloud是在springboot基礎上實現,所以須要先搭建springboot的web架構,但由於springcloud的parent依賴已經可以尋找springboot相關依賴的版本號,所以在pom.xml中的依賴以下:web

<!-- springcloud 父依賴 -->
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Camden.SR7</version>
<relativePath />
</parent>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>spring

<dependencies>
<!-- springboot -->
<!-- 啓動核心依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- web核心依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 測試依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- springboot tomcat依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
</dependencies>
<build>
<finalName>springcloud</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>數據庫

啓動類配置以下apache

由於springcloud是分佈的,所以須要分別啓動,所以你須要創建多個項目,我這裏只搭建了三個:springcloudservice、springcloudproducer、springcloudconsumerapi

第二步:搭建springcloudservice(springcloud服務中心)tomcat

1)須要在pom.xml中添加如下依賴springboot

<dependencies>
<!-- springcloud -->
<!-- 啓動核心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<!-- 服務發現 server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!-- 負載均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<!-- 默認的配置服務依賴,快速自動引入服務的方式,端口8888 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>

2)該工程的啓動類上添加@EnableEurekaServer,以下:

3)在src/main/resources下添加application.properties文件,並寫入如下代碼

#配置啓動端口

server.port=1111

#服務配置,設定當前工程爲服務註冊中心,無需註冊

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

啓動打開能夠看到以下頁面

 

 第二步:搭建springcloudproducer(服務提供方,主要和數據庫打交道,目前還沒集成數據庫)

1)須要在pom.xml中添加如下依賴

<dependencies>
<!-- springcloud -->
<!-- 服務發現 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>

2)該工程的啓動類上添加@EnableDiscoveryClient,以下:

 

3)在src/main/resources下添加application.properties文件,並寫入如下代碼

#配置啓動端口

server.port=3333

#設置服務註冊名

spring.application.name=compute-producer

#注意這裏必須與註冊中心(springcloudserver)的地址同樣,不然沒法註冊
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

啓動打開能夠看到以下頁面

 

可見producer已經註冊上去了,要註冊其餘項目能夠重複以上步驟

2、集成swagger2

細心的朋友會發現當我點擊服務右側的UP (1) - T-PC:compute-producer:3333時會顯示

 

 在此咱們能夠集成swagger進行顯示文檔,建議將swagger放在與前端交互的工程中

搭建swagger步驟

1)在pom.xml中添加如下依賴

 

<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>

2)創建swaggerconfig.class(該類名能夠隨便起),編寫如下代碼

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
// 掃描該包下的全部須要在Swagger中展現的API,@ApiIgnore註解標註的除外
.apis(RequestHandlerSelectors.basePackage("com.springcloud.controller")).paths(PathSelectors.any()).build();
}

// 構建api文檔的詳細信息函數
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 標題
.title("spring boot 測試實驗swagger2 構建RESTFUL API")
// 建立人
.contact(new Contact("lj", "http://www.bytebeats.com", "ricky"))
// 版本號
.version("1.0")
// 描述
.description("API描述").build();
}
}

3)創建controller

將你的傳入類加上api

啓動工程,你能夠看到以下界面

這說明你已經配置成功

4)在你的application.properties中加入如下代碼

eureka.instance.status-page-url=http://localhost:${server.port}/swagger-ui.html 

這樣你就配置好了

從新啓動,進入註冊中心,並點擊就能夠跳轉了

相關文章
相關標籤/搜索