Skip to content

Commit 69fc5e0

Browse files
committed
优化代码
1 parent 4b3879a commit 69fc5e0

File tree

8 files changed

+58
-39
lines changed

8 files changed

+58
-39
lines changed

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,19 @@
55
import cn.springcloud.gray.client.netflix.connectionpoint.RibbonConnectionPoint;
66
import cn.springcloud.gray.client.netflix.hystrix.HystrixRequestLocalStorage;
77
import cn.springcloud.gray.request.RequestLocalStorage;
8-
import cn.springcloud.gray.request.track.GrayTrackHolder;
9-
import cn.springcloud.gray.web.GrayTrackFilter;
108
import com.netflix.hystrix.HystrixCommand;
11-
import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;
129
import feign.hystrix.HystrixFeign;
1310
import org.springframework.beans.factory.annotation.Autowired;
1411
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1512
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1613
import org.springframework.context.annotation.Bean;
1714
import org.springframework.context.annotation.Configuration;
18-
19-
import javax.servlet.FilterChain;
20-
import javax.servlet.ServletException;
21-
import javax.servlet.ServletRequest;
22-
import javax.servlet.ServletResponse;
23-
import java.io.IOException;
15+
import org.springframework.context.annotation.Import;
2416

2517
@Configuration
2618
@ConditionalOnBean(GrayManager.class)
2719
@ConditionalOnClass({HystrixCommand.class, HystrixFeign.class})
20+
@Import(HystrixGrayTrackWebConfiguration.class)
2821
public class HystrixGrayAutoConfiguration {
2922

3023

@@ -40,28 +33,6 @@ public RequestLocalStorage requestLocalStorage() {
4033
}
4134

4235

43-
@Bean
44-
public GrayTrackFilter grayTrackFilter(
45-
GrayTrackHolder grayTrackHolder,
46-
RequestLocalStorage requestLocalStorage) {
47-
return new GrayTrackFilter(grayTrackHolder, requestLocalStorage) {
48-
@Override
49-
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
50-
if (!HystrixRequestContext.isCurrentThreadInitialized()) {
51-
HystrixRequestContext.initializeContext();
52-
}
53-
try {
54-
super.doFilter(request, response, chain);
55-
} finally {
56-
if (HystrixRequestContext.isCurrentThreadInitialized()) {
57-
HystrixRequestContext.getContextForCurrentThread().shutdown();
58-
}
59-
}
60-
}
61-
};
62-
}
63-
64-
6536
/**
6637
* 支持hystrix使用线程隔离时依然能够进行跑线程传递GrayRequest
6738
*
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package cn.springcloud.gray.client.netflix.configuration;
2+
3+
import cn.springcloud.gray.request.RequestLocalStorage;
4+
import cn.springcloud.gray.request.track.GrayTrackHolder;
5+
import cn.springcloud.gray.web.GrayTrackFilter;
6+
import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;
7+
import org.springframework.context.annotation.Bean;
8+
import org.springframework.context.annotation.Configuration;
9+
10+
import javax.servlet.FilterChain;
11+
import javax.servlet.ServletException;
12+
import javax.servlet.ServletRequest;
13+
import javax.servlet.ServletResponse;
14+
import java.io.IOException;
15+
16+
@Configuration
17+
public class HystrixGrayTrackWebConfiguration {
18+
19+
@Bean
20+
public GrayTrackFilter grayTrackFilter(
21+
GrayTrackHolder grayTrackHolder,
22+
RequestLocalStorage requestLocalStorage) {
23+
return new GrayTrackFilter(grayTrackHolder, requestLocalStorage) {
24+
@Override
25+
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
26+
if (!HystrixRequestContext.isCurrentThreadInitialized()) {
27+
HystrixRequestContext.initializeContext();
28+
}
29+
try {
30+
super.doFilter(request, response, chain);
31+
} finally {
32+
if (HystrixRequestContext.isCurrentThreadInitialized()) {
33+
HystrixRequestContext.getContextForCurrentThread().shutdown();
34+
}
35+
}
36+
}
37+
};
38+
}
39+
}

spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ spring:
3535
# max-attempts: 1
3636
GrayEventOutput:
3737
destination: gray_event
38-
# rabbit:
38+
# rabbit:
3939
# bindings:
4040
# GrayEventInput:
4141
# consumer:
@@ -54,4 +54,4 @@ eureka:
5454

5555
gray:
5656
server:
57-
evictionIntervalTimerInMs: 60000
57+
evictionIntervalTimerInMs: 30000

spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ eureka:
3636
defaultZone: http://localhost:20001/eureka/
3737
instance:
3838
instanceId: ${spring.application.name}:${server.port}
39-
lease-renewal-interval-in-seconds: 10
40-
lease-expiration-duration-in-seconds: 30
39+
lease-renewal-interval-in-seconds: 5
40+
lease-expiration-duration-in-seconds: 15
4141
# initial-status: starting
4242
feign:
4343
hystrix:

spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ eureka:
3232
serviceUrl:
3333
defaultZone: http://localhost:20001/eureka/
3434
instance:
35-
lease-renewal-interval-in-seconds: 10
36-
lease-expiration-duration-in-seconds: 30
35+
lease-renewal-interval-in-seconds: 5
36+
lease-expiration-duration-in-seconds: 15
3737
# initial-status: starting
3838

3939
ribbon:

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/module/GrayServerModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ default void openGray(String instanceId) {
4444

4545
void updateInstanceStatus(String instanceId, InstanceStatus instanceStatus);
4646

47+
void updateInstanceStatus(GrayInstance instance, InstanceStatus instanceStatus);
48+
4749
void deleteGrayInstance(String intanceId);
4850

4951
void saveGrayPolicy(GrayPolicy grayPolicy);

spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/module/SimpleGrayServerModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ public void saveGrayInstance(GrayInstance instance) {
9494
@Override
9595
public void updateInstanceStatus(String instanceId, InstanceStatus instanceStatus) {
9696
GrayInstance instance = grayInstanceService.findOneModel(instanceId);
97+
updateInstanceStatus(instance, instanceStatus);
98+
}
99+
100+
@Override
101+
public void updateInstanceStatus(GrayInstance instance, InstanceStatus instanceStatus) {
97102
if (instance != null && !Objects.equals(instance.getInstanceStatus(), instanceStatus)) {
98103
instance.setInstanceStatus(instanceStatus);
99104
grayInstanceService.saveModel(instance);

spring-cloud-starter-gray-eureka-server/src/main/java/cn/springcloud/gray/eureka/server/listener/EurekaInstanceListener.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public void listenDown(EurekaInstanceCanceledEvent event) {
3434
InstanceRegistry registry = (InstanceRegistry) event.getSource();
3535
com.netflix.appinfo.InstanceInfo instanceInfo =
3636
registry.getApplication(event.getAppName()).getByInstanceId(event.getServerId());
37-
sendNotice(instanceInfo, InstanceStatus.DOWN, "DOWN");
37+
InstanceStatus instanceStatus = EurekaInstatnceTransformer.toGrayInstanceStatus(instanceInfo.getStatus());
38+
sendNotice(instanceInfo, instanceStatus, "DOWN");
3839
}
3940

4041

@@ -46,7 +47,8 @@ public void listenDown(EurekaInstanceCanceledEvent event) {
4647
@EventListener
4748
public void listenRenew(EurekaInstanceRenewedEvent event) {
4849
com.netflix.appinfo.InstanceInfo instanceInfo = event.getInstanceInfo();
49-
sendNotice(instanceInfo, InstanceStatus.UP, "REGISTERED");
50+
InstanceStatus instanceStatus = EurekaInstatnceTransformer.toGrayInstanceStatus(instanceInfo.getStatus());
51+
sendNotice(instanceInfo, instanceStatus, "RENEW");
5052
}
5153

5254

0 commit comments

Comments
 (0)