Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈文顺
discovery
Commits
6d9c3d41
Commit
6d9c3d41
authored
Jul 09, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整合Actuator和Swagger
parent
7c195f92
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
65 additions
and
192 deletions
+65
-192
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java
+13
-0
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint.java
+44
-10
discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/constant/PluginConstant.java
+0
-1
discovery-plugin-router-center/pom.xml
+0
-34
discovery-plugin-router-center/src/main/java/com/nepxion/discovery/plugin/routercenter/configuration/RouterAutoConfiguration.java
+0
-27
discovery-plugin-router-center/src/main/java/com/nepxion/discovery/plugin/routercenter/configuration/SwaggerConfiguration.java
+0
-87
discovery-plugin-starter-consul/pom.xml
+0
-5
discovery-plugin-starter-consul/src/main/resources/META-INF/spring.factories
+2
-3
discovery-plugin-starter-eureka/pom.xml
+0
-5
discovery-plugin-starter-eureka/src/main/resources/META-INF/spring.factories
+2
-3
discovery-plugin-starter-zookeeper/pom.xml
+0
-5
discovery-plugin-starter-zookeeper/src/main/resources/META-INF/spring.factories
+2
-3
discovery-springcloud-example/src/main/resources/bootstrap.properties
+2
-2
pom.xml
+0
-7
No files found.
discovery-plugin-admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/configuration/AdminAutoConfiguration.java
View file @
6d9c3d41
...
...
@@ -14,8 +14,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.web.client.RestTemplate
;
import
com.nepxion.discovery.plugin.admincenter.endpoint.ConfigEndpoint
;
import
com.nepxion.discovery.plugin.admincenter.endpoint.RouterEndpoint
;
import
com.nepxion.discovery.plugin.admincenter.endpoint.VersionEndpoint
;
@Configuration
...
...
@@ -32,5 +34,15 @@ public class AdminAutoConfiguration {
public
VersionEndpoint
versionEndpoint
()
{
return
new
VersionEndpoint
();
}
@Bean
public
RouterEndpoint
routerEndpoint
()
{
return
new
RouterEndpoint
();
}
@Bean
public
RestTemplate
routerRestTemplate
()
{
return
new
RestTemplate
();
}
}
}
\ No newline at end of file
discovery-plugin-
router-center/src/main/java/com/nepxion/discovery/plugin/routercenter/controller/RouterController
.java
→
discovery-plugin-
admin-center/src/main/java/com/nepxion/discovery/plugin/admincenter/endpoint/RouterEndpoint
.java
View file @
6d9c3d41
package
com
.
nepxion
.
discovery
.
plugin
.
routercenter
.
controller
;
package
com
.
nepxion
.
discovery
.
plugin
.
admincenter
.
endpoint
;
/**
* <p>Title: Nepxion Discovery</p>
...
...
@@ -21,13 +21,18 @@ import java.util.Map;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.actuate.endpoint.Endpoint
;
import
org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint
;
import
org.springframework.cloud.client.ServiceInstance
;
import
org.springframework.cloud.client.discovery.DiscoveryClient
;
import
org.springframework.cloud.client.serviceregistry.Registration
;
import
org.springframework.jmx.export.annotation.ManagedOperation
;
import
org.springframework.jmx.export.annotation.ManagedResource
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.client.RestClientException
;
import
org.springframework.web.client.RestTemplate
;
...
...
@@ -41,7 +46,8 @@ import com.nepxion.discovery.plugin.framework.exception.PluginException;
@RestController
@Api
(
tags
=
{
"路由接口"
})
public
class
RouterController
{
@ManagedResource
(
description
=
"Router Endpoint"
)
public
class
RouterEndpoint
implements
MvcEndpoint
{
@Autowired
private
PluginContainerInitializedHandler
pluginContainerInitializedHandler
;
...
...
@@ -60,38 +66,50 @@ public class RouterController {
@Autowired
private
Registration
registration
;
@RequestMapping
(
path
=
"/services"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取服务注册中心所有服务列表"
,
notes
=
""
,
response
=
List
.
class
,
httpMethod
=
"GET"
)
@RequestMapping
(
path
=
"/router/services"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取服务注册中心服务列表"
,
notes
=
""
,
response
=
List
.
class
,
httpMethod
=
"GET"
)
@ResponseBody
@ManagedOperation
public
List
<
String
>
services
()
{
return
getServices
();
}
@RequestMapping
(
path
=
"/instances/{serviceId}"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
path
=
"/
router/
instances/{serviceId}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取本地节点可访问其他节点(根据服务名)的实例列表"
,
notes
=
""
,
response
=
List
.
class
,
httpMethod
=
"GET"
)
@ResponseBody
@ManagedOperation
public
List
<
ServiceInstance
>
instances
(
@PathVariable
(
value
=
"serviceId"
)
@ApiParam
(
value
=
"目标服务名"
,
required
=
true
)
String
serviceId
)
{
return
getInstanceList
(
serviceId
);
}
@RequestMapping
(
path
=
"/info"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
path
=
"/
router/
info"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取本地节点信息"
,
notes
=
"获取当前节点的简单信息"
,
response
=
RouterEntity
.
class
,
httpMethod
=
"GET"
)
@ResponseBody
@ManagedOperation
public
RouterEntity
info
()
{
return
getRouterEntity
();
}
@RequestMapping
(
path
=
"/route/{routeServiceId}"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
path
=
"/route
r/route
/{routeServiceId}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取本地节点可访问其他节点(根据服务名)的路由信息列表"
,
notes
=
""
,
response
=
List
.
class
,
httpMethod
=
"GET"
)
@ResponseBody
@ManagedOperation
public
List
<
RouterEntity
>
route
(
@PathVariable
(
value
=
"routeServiceId"
)
@ApiParam
(
value
=
"目标服务名"
,
required
=
true
)
String
routeServiceId
)
{
return
getRouterEntityList
(
routeServiceId
);
}
@RequestMapping
(
path
=
"/route/{routeServiceId}/{routeHost}/{routePort}"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
path
=
"/route
r/route
/{routeServiceId}/{routeHost}/{routePort}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
value
=
"获取指定节点(根据IP和端口)可访问其他节点(根据服务名)的路由信息列表"
,
notes
=
""
,
response
=
List
.
class
,
httpMethod
=
"GET"
)
@ResponseBody
@ManagedOperation
public
List
<
RouterEntity
>
route
(
@PathVariable
(
value
=
"routeServiceId"
)
@ApiParam
(
value
=
"目标服务名"
,
required
=
true
)
String
routeServiceId
,
@PathVariable
(
value
=
"routeHost"
)
@ApiParam
(
value
=
"目标服务所在机器的IP地址"
,
required
=
true
)
String
routeHost
,
@PathVariable
(
value
=
"routePort"
)
@ApiParam
(
value
=
"目标服务所在机器的端口号"
,
required
=
true
)
int
routePort
)
{
return
getRouterEntityList
(
routeServiceId
,
routeHost
,
routePort
);
}
@RequestMapping
(
path
=
"/routes"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/route
r/route
s"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
value
=
"获取全路径的路由信息树"
,
notes
=
"参数按调用服务名的前后次序排列,起始节点的服务名不能加上去。如果多个用“;”分隔,不允许出现空格"
,
response
=
RouterEntity
.
class
,
httpMethod
=
"POST"
)
@ResponseBody
@ManagedOperation
public
RouterEntity
routes
(
@RequestBody
@ApiParam
(
value
=
"例如:service-a;service-b"
,
required
=
true
)
String
routeServiceIds
)
{
return
routeTree
(
routeServiceIds
);
}
...
...
@@ -155,7 +173,7 @@ public class RouterController {
@SuppressWarnings
(
"unchecked"
)
public
List
<
RouterEntity
>
getRouterEntityList
(
String
routeServiceId
,
String
routeHost
,
int
routePort
)
{
String
url
=
"http://"
+
routeHost
+
":"
+
routePort
+
"/
"
+
PluginConstant
.
INSTANCES
+
"
/"
+
routeServiceId
;
String
url
=
"http://"
+
routeHost
+
":"
+
routePort
+
"/
router/instances
/"
+
routeServiceId
;
List
<
Map
<
String
,
?>>
instanceList
=
null
;
try
{
...
...
@@ -251,4 +269,19 @@ public class RouterController {
return
routerEntityList
;
}
@Override
public
String
getPath
()
{
return
"/"
;
}
@Override
public
boolean
isSensitive
()
{
return
true
;
}
@Override
public
Class
<?
extends
Endpoint
<?>>
getEndpointType
()
{
return
null
;
}
}
\ No newline at end of file
discovery-plugin-framework/src/main/java/com/nepxion/discovery/plugin/framework/constant/PluginConstant.java
View file @
6d9c3d41
...
...
@@ -21,7 +21,6 @@ public class PluginConstant {
public
static
final
String
METADATA
=
"metadata"
;
public
static
final
String
HOST
=
"host"
;
public
static
final
String
PORT
=
"port"
;
public
static
final
String
INSTANCES
=
"instances"
;
public
static
final
String
RULE
=
"rule"
;
public
static
final
String
REACH_MAX_LIMITED_COUNT
=
"reach max limited count"
;
...
...
discovery-plugin-router-center/pom.xml
deleted
100644 → 0
View file @
7c195f92
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<artifactId>
discovery-plugin-router-center
</artifactId>
<name>
Nepxion Discovery Plugin Router Center
</name>
<packaging>
jar
</packaging>
<modelVersion>
4.0.0
</modelVersion>
<description>
Nepxion Discovery is an enhancement for Spring Cloud Discovery
</description>
<url>
http://www.nepxion.com
</url>
<parent>
<groupId>
com.nepxion
</groupId>
<artifactId>
discovery
</artifactId>
<version>
3.3.11
</version>
</parent>
<dependencies>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-framework
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
discovery-plugin-router-center/src/main/java/com/nepxion/discovery/plugin/routercenter/configuration/RouterAutoConfiguration.java
deleted
100644 → 0
View file @
7c195f92
package
com
.
nepxion
.
discovery
.
plugin
.
routercenter
.
configuration
;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.web.client.RestTemplate
;
@Configuration
@ComponentScan
(
basePackages
=
{
"com.nepxion.discovery.plugin.routercenter.controller"
})
@Import
(
SwaggerConfiguration
.
class
)
public
class
RouterAutoConfiguration
{
@Bean
public
RestTemplate
routerRestTemplate
()
{
return
new
RestTemplate
();
}
}
\ No newline at end of file
discovery-plugin-router-center/src/main/java/com/nepxion/discovery/plugin/routercenter/configuration/SwaggerConfiguration.java
deleted
100644 → 0
View file @
7c195f92
package
com
.
nepxion
.
discovery
.
plugin
.
routercenter
.
configuration
;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.service.Contact
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
@Configuration
@EnableSwagger2
public
class
SwaggerConfiguration
extends
WebMvcConfigurerAdapter
{
@Value
(
"${spring.application.name}"
)
private
String
serviceName
;
@Value
(
"${swagger.service.base.package}"
)
private
String
basePackage
;
@Value
(
"${swagger.service.description}"
)
private
String
description
;
@Value
(
"${swagger.service.version}"
)
private
String
version
;
@Value
(
"${swagger.service.license}"
)
private
String
license
;
@Value
(
"${swagger.service.license.url}"
)
private
String
licenseUrl
;
@Value
(
"${swagger.service.contact.name}"
)
private
String
contactName
;
@Value
(
"${swagger.service.contact.url}"
)
private
String
contactUrl
;
@Value
(
"${swagger.service.contact.email}"
)
private
String
contactEmail
;
@Bean
public
Docket
createRestApi
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
basePackage
))
// 扫描该包下的所有需要在Swagger中展示的API,@ApiIgnore注解标注的除外
.
paths
(
PathSelectors
.
any
())
.
build
();
}
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
serviceName
)
.
description
(
description
)
.
version
(
version
)
.
license
(
license
)
.
licenseUrl
(
licenseUrl
)
.
contact
(
new
Contact
(
contactName
,
contactUrl
,
contactEmail
))
.
build
();
}
// 解决跨域问题
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
"/**"
)
.
allowedHeaders
(
"*"
)
.
allowedMethods
(
"*"
)
.
allowedOrigins
(
"*"
);
}
}
\ No newline at end of file
discovery-plugin-starter-consul/pom.xml
View file @
6d9c3d41
...
...
@@ -27,11 +27,6 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-router-center
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-framework-consul
</artifactId>
</dependency>
</dependencies>
...
...
discovery-plugin-starter-consul/src/main/resources/META-INF/spring.factories
View file @
6d9c3d41
...
...
@@ -5,5 +5,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.nepxion.discovery.plugin.framework.configuration.PluginAutoConfiguration,\
com.nepxion.discovery.plugin.framework.configuration.ConsulAutoConfiguration,\
com.nepxion.discovery.plugin.configcenter.configuration.ConfigAutoConfiguration,\
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration,\
com.nepxion.discovery.plugin.routercenter.configuration.RouterAutoConfiguration
\ No newline at end of file
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration
\ No newline at end of file
discovery-plugin-starter-eureka/pom.xml
View file @
6d9c3d41
...
...
@@ -27,11 +27,6 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-router-center
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-framework-eureka
</artifactId>
</dependency>
</dependencies>
...
...
discovery-plugin-starter-eureka/src/main/resources/META-INF/spring.factories
View file @
6d9c3d41
...
...
@@ -5,5 +5,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.nepxion.discovery.plugin.framework.configuration.PluginAutoConfiguration,\
com.nepxion.discovery.plugin.framework.configuration.EurekaAutoConfiguration,\
com.nepxion.discovery.plugin.configcenter.configuration.ConfigAutoConfiguration,\
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration,\
com.nepxion.discovery.plugin.routercenter.configuration.RouterAutoConfiguration
\ No newline at end of file
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration
\ No newline at end of file
discovery-plugin-starter-zookeeper/pom.xml
View file @
6d9c3d41
...
...
@@ -27,11 +27,6 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-router-center
</artifactId>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-framework-zookeeper
</artifactId>
</dependency>
</dependencies>
...
...
discovery-plugin-starter-zookeeper/src/main/resources/META-INF/spring.factories
View file @
6d9c3d41
...
...
@@ -5,5 +5,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.nepxion.discovery.plugin.framework.configuration.PluginAutoConfiguration,\
com.nepxion.discovery.plugin.framework.configuration.ZookeeperAutoConfiguration,\
com.nepxion.discovery.plugin.configcenter.configuration.ConfigAutoConfiguration,\
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration,\
com.nepxion.discovery.plugin.routercenter.configuration.RouterAutoConfiguration
\ No newline at end of file
com.nepxion.discovery.plugin.admincenter.configuration.AdminAutoConfiguration
\ No newline at end of file
discovery-springcloud-example/src/main/resources/bootstrap.properties
View file @
6d9c3d41
...
...
@@ -34,8 +34,8 @@ spring.application.discovery.control.enabled=true
spring.application.discovery.remote.config.enabled
=
true
# Swagger config
swagger.service.base.package
=
com.nepxion.discovery.plugin.
routercenter.controller
swagger.service.description
=
Rou
ter Restful APIs
swagger.service.base.package
=
com.nepxion.discovery.plugin.
admincenter.endpoint
swagger.service.description
=
Admin Cen
ter Restful APIs
swagger.service.version
=
1.0.0
swagger.service.license
=
Apache License 2.0
swagger.service.license.url
=
http://www.apache.org/licenses/LICENSE-2.0
...
...
pom.xml
View file @
6d9c3d41
...
...
@@ -17,7 +17,6 @@
<module>
discovery-plugin-framework-zookeeper
</module>
<module>
discovery-plugin-config-center
</module>
<module>
discovery-plugin-admin-center
</module>
<module>
discovery-plugin-router-center
</module>
<module>
discovery-console
</module>
<module>
discovery-plugin-starter-eureka
</module>
<module>
discovery-plugin-starter-consul
</module>
...
...
@@ -87,12 +86,6 @@
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-plugin-router-center
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
${project.groupId}
</groupId>
<artifactId>
discovery-console
</artifactId>
<version>
${project.version}
</version>
</dependency>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment