github地址:https://github.com/shang7053/HttpPostman
码云地址:
自动路由组件,根据访问域名自动路由到真实服务上,无需事先配置,启动即可发现服务。当某一真实路径不可用时,自动移除不可用。支持轮询,直到请求成功或者全部不成功(比较耗时)。支持配置超时时间。 主要特性如下:
主要分两个部分,路由模块和sdk模块。 路由模块负责处理转发所有请求。 sdk负责注册服务信息。 中间依赖redis做注册中心。
推荐使用pm2运行,推荐按CPU核数集群运行,不推荐单机单节点运行
1、下载源码
git clone https://github.com/shang7053/autorouter.git
2、执行启动命令
sh bin/start.sh
进入conf文件夹,编辑arconf.json
{
"port":3000,
"polling":true,
"redisDeployType":"cluster",
"zkAddress":"172.16.40.4:2181,172.16.40.5:2181",
"zkBasePath":"/ar/domains",
"httpTomeOut": 2000,
"log4js": {
"appenders": {
"console": {
"type": "console"
},
"log_date":{
"type": "dateFile",
"filename": "logs/system.log",
"alwaysIncludePattern": true,
"pattern": "-yyyy-MM-dd-hh",
"encoding": "utf-8"
}
},
"categories": {
"default": {
"appenders":["console","log_date"],
"level": "debug"
}
}
}
}
进入到sdks->java->ar_client,执行
mvn clean install
然后在项目添加到pom.xml
<dependency>
<groupId>com.scc</groupId>
<artifactId>ar_client</artifactId>
<version>0.0.1</version>
</dependency>
配置支持三种方式,properties、spring bean、api
arconf.properties
zk.address=172.16.40.4:2181,172.16.40.5:2181
#zk.basePath=/ar/domains
service.domain=datasyc.voole.com
#service.ip=10.5.5.1
service.port=8080
service.weight=1
service.register.interval=10
spring bean
<bean class="com.scc.ar.client.core.AutoRegistService" init-method="init" destroy-method="close">
<property name="zkAddress" value="172.16.40.4:2181,172.16.40.5:2181" />
<property name="serviceDomain" value="localhost" />
<property name="serviceRegisterInterval" value="10" />
<!-- 默认自动获取本机IP <property name="serviceIp" value="127.0.0.1" /> -->
<property name="servicePort" value="8080" />
<property name="serviceWeight" value="1" />
</bean>
api
AutoRegistService service = new AutoRegistService();
service.setZkAddress("172.16.40.4:2181");
service.setServiceDomain("www.baidu.net");
service.setServicePort("80");
service.setServiceWeight("2");
service.setServiceRegisterInterval("100");
service.init();