Martian 框架的第一个网关组件( Martian-gateway 1.0.0 ),功能较少,目前只实现了以下功能:
<dependency>
<groupId>com.github.yuyenews</groupId>
<artifactId>mars-gateway-starter</artifactId>
<version>最新版,具体看《组件介绍》</version>
</dependency>
重写里面的方法,可以实现定制化配置,具体看下面的注释
public class GateWayConfig extends MarsGateWayConfig {
public CloudConfig getGateWayConfig() {
CloudConfig cloudConfig = new CloudConfig();
// 服务名称
cloudConfig.setName("");
// 尽量长一点,防止接口过多来不及发布
cloudConfig.setSessionTimeout(10000L);
// 请求 Mars-Cloud 接口超时时间
cloudConfig.setTimeOut(10000L);
// zookeeper 地址,多个地址用英文逗号分割
cloudConfig.setRegister("");
// 负载均衡策略(暂时只支持轮询,随机两种)
cloudConfig.setStrategy(Strategy.POLLING);
return cloudConfig;
}
/******** 以下方法均有默认值,如果采用默认值的话,可以不重写 ********
/**
* 端口号
* @return
*/
public int port(){
return 8080;
}
/**
* 线程池配置
* @return 线程池配置
*/
public ThreadPoolConfig getThreadPoolConfig(){
return new ThreadPoolConfig();
}
/**
* 跨域配置
* @return 跨域配置
*/
public CrossDomainConfig crossDomainConfig(){
return new CrossDomainConfig();
}
}
这里调用的是 StartGateWay 里面的 start 方法,千万别看错了
public class ExpStart {
public static void main(String[] args) {
StartGateWay.start(ExpStart.class, new GateWayConfig());
}
}
完成以上三步,一个网关就搭建完成了
很简单,一般发起一个请求,分两种场景:
请求方式如下
http://IP:端口号,或者域名 /router/要请求的微服务 name/微服务上的 MarsApi 方法名
请求方式如下
http://IP:端口号,或者域名 /download/要请求的微服务 name/微服务上的 MarsApi 方法名
因为目前只是第一版,所以功能还不是很完善,所以造成了以下缺陷: