gateway cloud

This commit is contained in:
fangzhipeng 2018-11-20 19:26:11 +08:00
parent 0b0d6f4b49
commit 863339f4fd
4 changed files with 27 additions and 27 deletions

View File

@ -15,11 +15,11 @@ import java.util.List;
* @author fangzhipeng * @author fangzhipeng
* create 2018-11-16 * create 2018-11-16
**/ **/
public class ElapsedGatewayFilterFactory extends AbstractGatewayFilterFactory<ElapsedGatewayFilterFactory.Config> { public class RequestTimeGatewayFilterFactory extends AbstractGatewayFilterFactory<RequestTimeGatewayFilterFactory.Config> {
private static final Log log = LogFactory.getLog(GatewayFilter.class); private static final Log log = LogFactory.getLog(GatewayFilter.class);
private static final String ELAPSED_TIME_BEGIN = "elapsedTimeBegin"; private static final String REQUEST_TIME_BEGIN = "requestTimeBegin";
private static final String KEY = "withParams"; private static final String KEY = "withParams";
@Override @Override
@ -27,17 +27,17 @@ public class ElapsedGatewayFilterFactory extends AbstractGatewayFilterFactory<El
return Arrays.asList(KEY); return Arrays.asList(KEY);
} }
public ElapsedGatewayFilterFactory() { public RequestTimeGatewayFilterFactory() {
super(Config.class); super(Config.class);
} }
@Override @Override
public GatewayFilter apply(Config config) { public GatewayFilter apply(Config config) {
return (exchange, chain) -> { return (exchange, chain) -> {
exchange.getAttributes().put(ELAPSED_TIME_BEGIN, System.currentTimeMillis()); exchange.getAttributes().put(REQUEST_TIME_BEGIN, System.currentTimeMillis());
return chain.filter(exchange).then( return chain.filter(exchange).then(
Mono.fromRunnable(() -> { Mono.fromRunnable(() -> {
Long startTime = exchange.getAttribute(ELAPSED_TIME_BEGIN); Long startTime = exchange.getAttribute(REQUEST_TIME_BEGIN);
if (startTime != null) { if (startTime != null) {
StringBuilder sb = new StringBuilder(exchange.getRequest().getURI().getRawPath()) StringBuilder sb = new StringBuilder(exchange.getRequest().getURI().getRawPath())
.append(": ") .append(": ")

View File

@ -14,7 +14,7 @@ public class ServiceGatewayApplication {
} }
@Bean @Bean
public ElapsedGatewayFilterFactory elapsedGatewayFilterFactory() { public RequestTimeGatewayFilterFactory requestTimeGatewayFilterFactory() {
return new ElapsedGatewayFilterFactory(); return new RequestTimeGatewayFilterFactory();
} }
} }

View File

@ -8,7 +8,7 @@ spring:
gateway: gateway:
discovery: discovery:
locator: locator:
enabled: true enabled: false
lowerCaseServiceId: true lowerCaseServiceId: true
routes: routes:
- id: service-hi - id: service-hi
@ -17,7 +17,7 @@ spring:
- Path=/demo/** - Path=/demo/**
filters: filters:
- StripPrefix=1 - StripPrefix=1
- Elapsed=false - RequestTime=true
eureka: eureka:
client: client:

View File

@ -24,7 +24,7 @@
<file leaf-file-name="application.yml" pinned="false" current-in-tab="false"> <file leaf-file-name="application.yml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/application.yml"> <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1160"> <state relative-caret-position="1425">
<caret line="57" column="30" selection-start-line="57" selection-start-column="30" selection-end-line="57" selection-end-column="30" /> <caret line="57" column="30" selection-start-line="57" selection-start-column="30" selection-end-line="57" selection-end-column="30" />
</state> </state>
</provider> </provider>
@ -33,7 +33,7 @@
<file leaf-file-name="RequestTimeFilter.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RequestTimeFilter.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeFilter.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeFilter.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="236"> <state relative-caret-position="250">
<caret line="16" selection-start-line="16" selection-end-line="42" /> <caret line="16" selection-start-line="16" selection-end-line="42" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
@ -46,7 +46,7 @@
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/Application.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/Application.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="535"> <state relative-caret-position="535">
<caret line="33" column="39" lean-forward="true" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" /> <caret line="33" column="39" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -57,8 +57,8 @@
<file leaf-file-name="RequestTimeGatewayFilterFactory.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RequestTimeGatewayFilterFactory.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeGatewayFilterFactory.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeGatewayFilterFactory.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="910"> <state relative-caret-position="1475">
<caret line="74" lean-forward="true" selection-start-line="17" selection-end-line="74" /> <caret line="74" selection-start-line="17" selection-end-line="74" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -69,8 +69,8 @@
<file leaf-file-name="TokenFilter.java" pinned="false" current-in-tab="false"> <file leaf-file-name="TokenFilter.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/TokenFilter.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/TokenFilter.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="836"> <state relative-caret-position="750">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" /> <caret line="39" selection-start-line="39" selection-end-line="39" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -338,15 +338,15 @@
<workItem from="1542336268089" duration="14707000" /> <workItem from="1542336268089" duration="14707000" />
<workItem from="1542590814451" duration="1435000" /> <workItem from="1542590814451" duration="1435000" />
<workItem from="1542614548057" duration="1106000" /> <workItem from="1542614548057" duration="1106000" />
<workItem from="1542703235158" duration="178000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="48478000" /> <option name="totallyTimeSpent" value="48656000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" /> <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
<editor active="true" />
<layout> <layout>
<window_info anchor="right" id="Palette" order="3" /> <window_info anchor="right" id="Palette" order="3" />
<window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="TODO" order="6" />
@ -356,8 +356,8 @@
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="right" id="Maven Projects" order="3" weight="0.3299356" /> <window_info anchor="right" id="Maven Projects" order="3" weight="0.3299356" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" /> <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Run" order="2" weight="0.50986195" /> <window_info anchor="bottom" id="Run" order="2" weight="0.50986195" />
<window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Spring" order="7" /> <window_info anchor="bottom" id="Spring" order="7" />
<window_info anchor="bottom" id="Terminal" order="7" /> <window_info anchor="bottom" id="Terminal" order="7" />
<window_info id="Capture Tool" order="2" /> <window_info id="Capture Tool" order="2" />
@ -370,8 +370,8 @@
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" /> <window_info id="UI Designer" order="2" />
<window_info anchor="right" id="Theme Preview" order="3" /> <window_info anchor="right" id="Theme Preview" order="3" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39940828" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.39940828" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="8" weight="0.32938856" /> <window_info anchor="bottom" id="Messages" order="8" weight="0.32938856" />
<window_info anchor="right" id="Gradle" order="3" /> <window_info anchor="right" id="Gradle" order="3" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@ -723,15 +723,15 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/application.yml"> <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1160"> <state relative-caret-position="1425">
<caret line="57" column="30" selection-start-line="57" selection-start-column="30" selection-end-line="57" selection-end-column="30" /> <caret line="57" column="30" selection-start-line="57" selection-start-column="30" selection-end-line="57" selection-end-column="30" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/TokenFilter.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/TokenFilter.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="836"> <state relative-caret-position="750">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" /> <caret line="39" selection-start-line="39" selection-end-line="39" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -740,7 +740,7 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeFilter.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeFilter.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="236"> <state relative-caret-position="250">
<caret line="16" selection-start-line="16" selection-end-line="42" /> <caret line="16" selection-start-line="16" selection-end-line="42" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
@ -750,8 +750,8 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeGatewayFilterFactory.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/RequestTimeGatewayFilterFactory.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="910"> <state relative-caret-position="1475">
<caret line="74" lean-forward="true" selection-start-line="17" selection-end-line="74" /> <caret line="74" selection-start-line="17" selection-end-line="74" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -761,7 +761,7 @@
<entry file="file://$PROJECT_DIR$/src/main/java/gateway/Application.java"> <entry file="file://$PROJECT_DIR$/src/main/java/gateway/Application.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="535"> <state relative-caret-position="535">
<caret line="33" column="39" lean-forward="true" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" /> <caret line="33" column="39" selection-start-line="33" selection-start-column="39" selection-end-line="33" selection-end-column="39" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>