更新时间:2025-06-20 gmt 08:00

使用gray sdk-j9九游会登录

本文介绍如何在nuwa框架下使用gray sdk,spring cloud框架下暂时不支持使用gray sdk。

使用gray sdk时,需要先在appstage运维中心slb服务中配置好灰度规则,再启动gray sdk,否则灰度规则不生效。

引入gray sdk

通过nuwa的nuwa-apaas-graysdk间接集成,集成该sdk之后,可以使用gray sdk。

在pom.xml中添加sts依赖。

将${nuwa-sdk-version}替换成实际所使用的gray sdk版本。
      
     com.huawei.wisecloud.nuwa
     nuwa-apaas-graysdk
     ${nuwa-sdk-version}
     system
     ${project.basedir}/lib/nuwa-apaas-graysdk-3.1.5.100.jar

初始化slb

  • 业务自行解析好配置,作为properties入参传入。

    graysdkmanager.getinstance().init(properties params, object lbsservicefactory)。

    表1 参数说明

    参数

    说明

    传空说明

    properties params

    将properties对象传入

    将不能使用gray sdk功能。

    不能传空。

    object lbsservicefactory

    lbsservicefactory对象传入

    不能使用lbs国家省市ip库功能。

    在业务不使用lbs国家省市灰度时,可传空。

  • 业务指定好properties路径,properties文件路径传入。

    graysdkmanager.getinstance().initwithpropertiespath (string path, object lbsservicefactory)。

    表2 参数说明

    参数

    说明

    传空说明

    string path

    将properties文件全路径传入。

    传空时,会按照以下顺序尝试补参:

    1. 尝试以系统参数指定的路径找文件system.getproperty(“graysdk.properties.file_path”)。
    2. 尝试从classpath的文件系统路径下找graysdk.properties或者graysdk-config.properties。

    object lbsservicefactory

    lbsservicefactory对象传入。

    不能使用lbs国家省市ip库功能。

    在业务不使用lbs国家省市灰度时,可传空。

开启灰度过滤器

在消费端的微服务上配置好properties文件中以下开关:

# enable csegrayserverlistfilter or not
wgp.enablecsegrayfilter=true

服务消费端集成示例

照常通过cse调用服务提供者,无需额外编码。

例如,参考cse的消费端开发,从消费端调用服务提供端(demob),无需额外修改。

package com.service.demo.controller;
import org.springframework.stereotype.component;
import org.apache.servicecomb.provider.springmvc.reference.resttemplatebuilder;
import org.springframework.web.client.resttemplate;
@component
publicclass demodelegate {
public string helloworld(string name){
if ( null == name || "".equals(name))
{
return "the name is empty, no need send to backend ms";
}
resttemplate resttemplate = resttemplatebuilder.create();
string rslt = "";
string qrystr = "";
qrystr = "name="   name;
// to call another microservice, name is demob. path:/demo,interface:helloworld
rslt = resttemplate
.getforobject("cse://demob/demo/helloworld?"   qrystr, string.class);
return rslt;
}
}

相关文档

网站地图