sprincloudEurekaservice框架搭建一(服务的注册与发现)

springcloud是在springboot基础上实现企业级分布式应用系统,它集服务发现、服务配置、客服端负载均衡、断路器、服务网关、分布式配置于一身,是当今非常火的一个web分布式架构,网上有很多例子,我觉得这篇博客讲的不错:http://blog.csdn.net/forezp/article/details/70148833

现在我大致讲一下我的搭建

一、搭建springcloud服务发现

第一步,正如上面说的,springcloud是在springboot基础上实现,因此需要先搭建springboot的web架构,但因为springcloud的parent依赖已经能够寻找springboot相关依赖的版本号,因此在pom.xml中的依赖如下:

<!-- 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>

<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>

启动类配置如下

因为springcloud是分布的,因此需要分别启动,因此你需要建立多个项目,我这里只搭建了三个:springcloudservice、springcloudproducer、springcloudconsumer

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

1)需要在pom.xml中添加以下依赖

<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已经注册上去了,要注册其他项目可以重复以上步骤

二、集成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 

这样你就配置好了

重新启动,进入注册中心,并点击就可以跳转了

 

posted @ 2017-10-20 19:51  黑色de四叶草  阅读(697)  评论(0编辑  收藏  举报