seninel部署
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
pleasecheckhere2016 7e354016c7
Add Eureka data-source extension (#1502)
pirms 4 gadiem
..
src Add Eureka data-source extension (#1502) pirms 4 gadiem
README.md Add Eureka data-source extension (#1502) pirms 4 gadiem
pom.xml Add Eureka data-source extension (#1502) pirms 4 gadiem

README.md

Sentinel DataSource Eureka

Sentinel DataSource Eureka provides integration with Eureka so that Eureka can be the dynamic rule data source of Sentinel.

To use Sentinel DataSource Eureka, you should add the following dependency:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-eureka</artifactId>
    <version>x.y.z</version>
</dependency>

Then you can create an EurekaDataSource and register to rule managers.

SDK usage:

EurekaDataSource<List<FlowRule>> eurekaDataSource = new EurekaDataSource("app-id", "instance-id",
        Arrays.asList("http://localhost:8761/eureka", "http://localhost:8762/eureka", "http://localhost:8763/eureka"),
        "rule-key", new Converter<String, List<FlowRule>>() {
    @Override
    public List<FlowRule> convert(String o) {
        return JSON.parseObject(o, new TypeReference<List<FlowRule>>() {
        });
    }
});
FlowRuleManager.register2Property(eurekaDataSource.getProperty());

Example for Spring Cloud Application:

@Bean
public EurekaDataSource<List<FlowRule>> eurekaDataSource(EurekaInstanceConfig eurekaInstanceConfig, EurekaClientConfig eurekaClientConfig) {

    List<String> serviceUrls = EndpointUtils.getServiceUrlsFromConfig(eurekaClientConfig,
            eurekaInstanceConfig.getMetadataMap().get("zone"), eurekaClientConfig.shouldPreferSameZoneEureka());

    EurekaDataSource<List<FlowRule>> eurekaDataSource = new EurekaDataSource(eurekaInstanceConfig.getAppname(),
            eurekaInstanceConfig.getInstanceId(), serviceUrls, "flowrules", new Converter<String, List<FlowRule>>() {
        @Override
        public List<FlowRule> convert(String o) {
            return JSON.parseObject(o, new TypeReference<List<FlowRule>>() {
            });
        }
    });

    FlowRuleManager.register2Property(eurekaDataSource.getProperty());
    return eurekaDataSource;
}

To refresh the rule dynamically,you need to call Eureka-REST-operations to update instance metadata:

PUT /eureka/apps/{appID}/{instanceID}/metadata?{ruleKey}={json of the rules}

Note: don’t forget to encode your json string in the url.