首先你需要先开发一个Martian项目

Martian文档

在Martian项目中添加如下jar包

<dependency>
    <groupId>com.github.yuyenews</groupId>
    <artifactId>mars-cloud-starter</artifactId>
    <version>最新版,具体看《组件介绍》</version>
</dependency>

配置类换一个父类,实现getCloudConfig方法

  • 将Martian项目的的配置类换一个父类(继承MarsCloudConfig)
  • 里面的注释很重要,一定要看哦
public class DemoConfig extends MarsCloudConfig {

    // 在开发Martian项目时,实现的那些方法保留即可,因为都需要用


    /**
     * 在上面的基础之上再实现这个方法,用于配置cloud
     */
    @Override
    public CloudConfig getCloudConfig() {
        CloudConfig cloudConfig = new CloudConfig();
        // 服务名称,同一个服务的负载均衡集群的name必须一致,不同集群之间必须唯一
        cloudConfig.setName("");
        // 请求Mars-Cloud接口超时时间
        cloudConfig.setTimeOut(10000L);
        // 是否作为网关
        cloudConfig.setGateWay(false);
        // 初始的传染途径,指向任意服务,支持多个逗号分割
        cloudConfig.setContagions("http://127.0.01:8088");
        // 本服务所在服务器的的IP,如果不配置会自动获取内网IP,配置了就以配置的为主
        cloudConfig.setIp("");
        return cloudConfig;
    }

    //******************* 下面的不配也可以正常运行 ********************

    /**
     * 配置负载均衡策略为轮询
     * 默认普通轮询,如果采用默认的话,可以不重写此方法
     * @return
     */
    @Override
    public BalancedCalc getBalancedCalc() {
        /* 
        这个策略可以自定义,自己实现BalancedCalc接口,然后在这返回即可,
        目前除了BalancedCalcPolling 官方还提供了随机算法 BalancedCalcRandom
        */
        return new BalancedCalcPolling();
    }

    /**
     * 配置熔断器
     * 目前还没有熔断器,所以这个配置用不到,此方法也不用重写
     * 如果需要的话,可以自己实现熔断器,在这返回即可
     * @return
     */
    @Override
    public FuseConfig getFuseConfig() {
        FuseConfig fuseConfig = new FuseConfig();
        /* 失败多少次就熔断 */
        fuseConfig.setFailNum(10L);
        /* 熔断后,被请求多少次后就进入半熔断 */
        fuseConfig.setFuseNum(5L);
        /*
        熔断器,暂时没有官方实现,如果需要的话,可以自己实现熔断器
        实现熔断器的方式就是 实现FuseManager接口,然后把实例set到这里面即可
        */
        fuseConfig.setFuseManager(new FuseDefault());
        return fuseConfig;
    }
}

引入组件

在启动类上面加上@MarsImport注解,并配置packageName

@MarsImport(packageName = "com.mars.cloud.components")
public class Start {

    public static void main(String[] args) {
        StartMars.start(Start.class, new DemoConfig());
    }
}

完成以上三步,一个Martian项目就变成了Martian-cloud项目了

results matching ""

    No results matching ""