成功ApolloListen

This commit is contained in:
huangsimin 2019-08-12 18:49:05 +08:00
parent fe832e28b7
commit 9734ee1826
6 changed files with 76 additions and 8 deletions

View File

@ -18,7 +18,7 @@
<description>Demo project for Yame User Gateway</description> <description>Demo project for Yame User Gateway</description>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version> <spring-cloud.version>Greenwich.SR2</spring-cloud.version>

View File

@ -16,7 +16,7 @@
<description>Demo project for Gateway Service</description> <description>Demo project for Gateway Service</description>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.11</java.version>
</properties> </properties>
<dependencies> <dependencies>
@ -70,6 +70,12 @@
<artifactId>usergw-api</artifactId> <artifactId>usergw-api</artifactId>
<version>${project.parent.version}</version> <version>${project.parent.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.4.0</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@ -1,19 +1,26 @@
package cn.ecpark.service.usergw; package cn.ecpark.service.usergw;
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig; import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@Configurable
@ConfigurationProperties
@SpringBootApplication @SpringBootApplication
@SpringBootConfiguration @SpringBootConfiguration
@EnableAutoConfiguration @EnableAutoConfiguration
@EnableDubboConfig @EnableDubboConfig
@ComponentScan("cn.ecpark.service.usergw") @ComponentScan("cn.ecpark.service.usergw")
@EnableApolloConfig
public class App { public class App {
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -0,0 +1,40 @@
package cn.ecpark.service.usergw.config;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
import org.springframework.cloud.gateway.route.RouteDefinitionWriter;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
import com.ctrip.framework.apollo.spring.annotation.ApolloConfigChangeListener;
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
@Slf4j
@Configurable
@Service
@EnableApolloConfig
public class ConfigApollo implements ApplicationEventPublisherAware {
private ApplicationEventPublisher publisher;
public void notifyChanged() {
this.publisher.publishEvent(new RefreshRoutesEvent(this));
}
@ApolloConfigChangeListener("gateway.yml")
private void listenApolloChange(ConfigChangeEvent changeEvent) {
log.warn(changeEvent.getNamespace());
}
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.publisher = applicationEventPublisher;
}
}

View File

@ -64,11 +64,7 @@ public class ConfigGateway implements RouteDefinitionLocator {
ignoreKey.add("filters"); ignoreKey.add("filters");
} }
@Override private InputStream loadLocalFileConfig() {
@SuppressWarnings("unchecked")
public Flux<RouteDefinition> getRouteDefinitions() {
// WebFluxConfigurationSupport a;
defaultFilters.clear();
Object inputStream = null; Object inputStream = null;
String[] gatewayConfigPathList; String[] gatewayConfigPathList;
if (yameConfigPath == null) { if (yameConfigPath == null) {
@ -83,9 +79,22 @@ public class ConfigGateway implements RouteDefinitionLocator {
break; break;
} }
} }
return (InputStream)inputStream;
}
private InputStream loadApolloConfige() {
return null;
}
@Override
@SuppressWarnings("unchecked")
public Flux<RouteDefinition> getRouteDefinitions() {
// WebFluxConfigurationSupport a;
defaultFilters.clear();
InputStream inputStream = loadLocalFileConfig();
if (inputStream != null) { if (inputStream != null) {
Map<String, Object> configYaml = new Yaml().load((InputStream) inputStream); Map<String, Object> configYaml = new Yaml().load(inputStream);
if (configYaml != null) { if (configYaml != null) {
List<String> defaultFiltersYaml = null; List<String> defaultFiltersYaml = null;

View File

@ -1,5 +1,9 @@
spring.application.name=gateway spring.application.name=gateway
app.id=gateway
apollo.meta=http://127.0.0.1:8180
dubbo.scan.base-packages=cn.ecpark.service.usergw.impl dubbo.scan.base-packages=cn.ecpark.service.usergw.impl
dubbo.protocol.name=dubbo dubbo.protocol.name=dubbo
dubbo.protocol.port=20999 dubbo.protocol.port=20999
@ -13,3 +17,5 @@ logging.file=logs/log
yame.config=gateway.yaml yame.config=gateway.yaml