前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HttpPostman文档 原

HttpPostman文档 原

作者头像
尚浩宇
发布2018-08-17 11:24:11
4690
发布2018-08-17 11:24:11
举报
文章被收录于专栏:杂烩

HttpPostman自动路由组件

github地址:https://github.com/shang7053/HttpPostman

码云地址:

说明

自动路由组件,根据访问域名自动路由到真实服务上,无需事先配置,启动即可发现服务。当某一真实路径不可用时,自动移除不可用。支持轮询,直到请求成功或者全部不成功(比较耗时)。支持配置超时时间。 主要特性如下:

  • 路由模块使用node.js,基于事件驱动,最大支持每秒24000次请求,相比tomcat、nginx拥有更高的性能
  • 使用zookeeper作为服务注册中心,启动将注册信息加载到内存,并通过watcher机制进行同步,最大化减少路由模块响应耗时
  • 支持权重策略,解决硬件差异下公平路由
  • 支持GET、POST、PUT、DELETE
  • 支持表单提交和rest
  • 支持返回json、xml

架构图

流程图

网络结构图示例

模块

主要分两个部分,路由模块和sdk模块。 路由模块负责处理转发所有请求。 sdk负责注册服务信息。 中间依赖redis做注册中心。

声明:

  • sdk目前仅支持java,其他语言请自行拓展
  • 现已测试各类接口程序,但未测试返回页面的门户、管理系统等(不建议此类场景使用)

最佳实践

  • 适合http接口类应用
  • 适合k8s或任何自动伸缩导致接口应用IP经常变化的环境下使用
  • 目标不是替代任何软件,而是支持动态链接到可用的接口程序

路由模块安装

推荐使用pm2运行,推荐按CPU核数集群运行,不推荐单机单节点运行

1、下载源码

代码语言:javascript
复制
git clone https://github.com/shang7053/autorouter.git

2、执行启动命令

代码语言:javascript
复制
sh bin/start.sh

配置

进入conf文件夹,编辑arconf.json

代码语言:javascript
复制
{
  "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"
      }
    }
  }
}

sdk使用说明

进入到sdks->java->ar_client,执行

代码语言:javascript
复制
mvn clean install

然后在项目添加到pom.xml

代码语言:javascript
复制
<dependency>
	<groupId>com.scc</groupId>
	<artifactId>ar_client</artifactId>
	<version>0.0.1</version>
</dependency>

配置支持三种方式,properties、spring bean、api

arconf.properties

代码语言:javascript
复制
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

代码语言:javascript
复制
<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

代码语言:javascript
复制
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();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HttpPostman自动路由组件
    • 说明
      • 架构图
      • 流程图
      • 网络结构图示例
    • 模块
      • 声明:
        • 最佳实践
          • 路由模块安装
            • 配置
              • sdk使用说明
              相关产品与服务
              微服务引擎 TSE
              微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档