Martian 框架发布了 第一个网关组件
資深大佬 : Joker123456789 5
Martian 框架的第一个网关组件( Martian-gateway 1.0.0 ),功能较少,目前只实现了以下功能:
- 可以从 zookeeper 获取微服务接口,进行请求的转发
- 请求转发是负载均衡的方式进行
具体的使用方法
一、引入以下 maven 坐标
<dependency> <groupId>com.github.yuyenews</groupId> <artifactId>mars-gateway-starter</artifactId> <version>最新版,具体看《组件介绍》</version> </dependency>
二、创建一个配置类,继承 MarsGateWayConfig
重写里面的方法,可以实现定制化配置,具体看下面的注释
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()); } }
完成以上三步,一个网关就搭建完成了
接下来如何使用呢
很简单,一般发起一个请求,分两种场景:
- 希望服务器返回 JSON 格式数据(大部分场景)
- 希望服务器返回一个文件流(文件下载,excel 导出,等场景)
返回 JSON 格式数据
请求方式如下
http://IP:端口号,或者域名 /router/要请求的微服务 name/微服务上的 MarsApi 方法名
返回一个文件流
请求方式如下
http://IP:端口号,或者域名 /download/要请求的微服务 name/微服务上的 MarsApi 方法名
注意事项
因为目前只是第一版,所以功能还不是很完善,所以造成了以下缺陷:
- 返回的文件流,没有文件名的后缀,所以需要前端重命名一下
- 目前只实现了请求转发功能,但是这个转发是带负载均衡的
项目官网
http://mars-framework.com/
大佬有話說 (0)