Zuul的高性能和Swagger自动生成API文档
- 搭建高性能Nginx+Zuul实现高性能
- 先修改hosts文件改变域名,并且修改一下Nginx的配置文件,实现轮询负载均衡(这个我会在之后发几篇关于Nginx的文档出来的)
- 这样请求一下路径就可以了,如果在Nginx的配置文件中没有设置比重的话那么请使用火狐浏览器,设置的话是用什么都可以。(因为怕有缓存,影响结果)
- 基于Nginx实现Zuul的集群环境
集群可以实现高可用,可以在Nginx中配置主备机来实现,用到技术包括lvs和Nginx等。这个在后面会写Nginx的文档写出来的。 - 使用Swagger自动生成Api文档
- 先将依赖导入到pom文件中如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<!-- 管理依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot整合eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
<!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
- 在写yml文件如下:
spring:
application:
####注册中心应用名称
name: config-Swagger
server:
port: 8882
也可以不用注册到注册中心
- 在之后就将写代码了凡是如下:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
// api扫包
.apis(RequestHandlerSelectors.basePackage("com.qxd.api")).paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("com.qxd|com.qxd 微服务电商系统").description("com.qxd|com.qxd Java分布式&微服务培训")
.termsOfServiceUrl("http://www.qxd.com")
// .contact(contact)
.version("1.0").build();
}
}
这样启动就可以了
- 如何将整个服务中的Swagger进行合成,同一台服务器上,使用Zuul+Swagger实现,管理整个微服务的API文档。(就是来一个跳到对应的服务的Swagger的服务中就可以了)