关于我 夏志培 沪江网运维架构师 / 基础运维团队负责人,10+ 年运维经验 负责沪江 Redis/Codis,DNS,ApiGateway,RabbitMQ,ELK,Ceph 等基础组件运维和架构工作 对系统底层以及开源的软件有浓厚的兴趣 微信 :summer_xia_027

Similar documents
PowerPoint 演示文稿

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

Intruduction to the NGINX stream subsystem and OpenResty's support

陶辉-从代码看Nginx运维

PowerPoint Presentation


BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

1406.indd

上图专刊2006-3AAA.doc

衡山靈學創始人 超越時代的靈學明師 許衡山 老師 許衡山老師 出生於西元 1942 年 於 1980 年代啟發先天眼竅 自證其道 了悟真理 許 老師首先發現 人人皆可開發出第三眼能力與靈性能量 並藉由系統化的研究 將種種 生命現象與宇宙真理做深入淺出的剖析 並為生命的最終意義指出一條明路 現代文明昌

第53期内页.cdr

슬로시티번역,더빙 등 보고서(중문)_두현.hwp

untitled


?



EP.pdf

<4D F736F F D DD7A1B7BFB9ABBBFDBDF0D0C5CFA2BBAFBDA8C9E8B5BCD4F25FB1A8C5FAB8E55F2E646F6378>


A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

这种结构对比互联网公司而言, 请求需要经过路由器 防火墙 IDS/IPS 等好几层的设备最终才能由业务服务器来响应请求, 这期间请求没经过一层都需要消耗一定的时间, 通过累计这个时间就会被放大, 而且防火墙的性能直接决定了 Nginx 可以承载的请求数 所以迫不得已要用防火墙的话, 请使用 30 万

1 1 大概思路 Nginx 集群之 SSL 证书的 WebApi 微服务 HTTP 与 HTTPS(SSL 协议 ) Openssl 生成 SSL 证书 编写.NET WebApi 部署 WebApi 到局域网内 3 台 PC 机 Nginx 集群配置搭建 运行结果 总结 2 Nginx 集群之

项目采购需求编写模板

春 华 秋 实 CHUNHUAQIUSHI 鲜 花 固 然 美 丽, 但 往 往 一 季 的 繁 华 过 后 便 悄 悄 淡 出 人 们 的 视 线 所 以, 我 们 更 愿 意 做 一 棵 树, 春 华 秋 实, 生 生 不 息! 耐 得 住 冬 的 寂 寞, 经 得 起 春 的 锤 炼, 看 得

M E M O 內 部 通 讯

内 容 培 训 目 标 基 础 知 识 常 用 监 控 命 令 在 实 战 中 综 合 运 用 2

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

<4D F736F F D CF58E7382CC8AC28BAB A919B89B AE E646F63>

net.core.somaxconn = web 應用中 listen 函數的 backlog 默認會給我們內核參數的 net.core.somaxconn 限製到 128, 而 nginx 定義的 NGX_LISTEN_BACKLOG 默認為 511, 所以有必要調整這個值 net.

温州市政府分散采购

Community Development 社区发展

计算机网络实验说明

深入理解otter

1

内 容 度 资 金 来 源 土 地 手 续 直 接 9 牵 手 困 境 儿 童 向 日 葵 关 爱 培 养 行 动 10 惠 民 保 险 工 春 节 期 间 扶 助 300 名 困 境 儿 童, 三 八 期 间 走 以 1000 名 留 守 流 动 儿 童 孤 残 儿 访 帮 扶 100 名 困 境

ebook 132-2

水晶分析师

Web

1

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI

Marketing_WhitePaper.PDF

FortiADC SLB Virtual Server L4 方式部署详解 版本 1.0 时间支持的版本作者状态反馈 2015 年 10 月 FortiADC v4.3.x 刘康明已审核

校友会系统白皮书feb_08

FortiADC SLB Virtual Server L7 方式部署介绍 版本 1.0 时间支持的版本作者状态反馈 2015 年 10 月 FortiADC v4.3.x 刘康明已审核

untitled

中 山 大 学 珠 海 校 区 基 础 教 学 实 验 中 心 ( 下 简 实 验 中 心 ) 成 立 于 2000 年, 为 独 立 建 制 的 校 级 实 验 教 学 机 构 按 照 " 高 起 点, 高 标 准, 高 效 益 " 的 定 位 来 规 划 建 设, 是 一 个 实 验 资 源 高

住户表

nb.PDF

公 司 年 度 大 事 记 2015 年 10 月 -11 月, 公 司 完 成 股 份 制 改 造 10 月 13 日, 百 灵 有 限 临 时 股 东 会 作 出 决 议, 同 意 各 发 起 人 将 其 在 百 灵 有 限 拥 有 的 截 至 2015 年 8 月 31 日 经 审 计 的 原

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

C3_ppt.PDF

ext-web-auth-wlc.pdf

財金資訊-81期.indd

摘 要 1. GSLB: 全 局 负 载 均 衡 2. SLB: 服 务 器 负 载 均 衡 四 层 交 换 LVS 七 层 交 换 Nginx 3. Heartbeat 实 现 HA 4. MySQL 数 据 库 集 群 5. 集 群 环 境 下 的 存 储 备 份 6. 集 群 的 监 控 及

IP505SM_manual_cn.doc

weblogic

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

科技奖励

99710a72ZW.PDF

计 算 机 系 统 应 用 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

2005 3

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>

打造安全、易运维的高性能Web平台

软件概述


untitled

目 录 CEC 长 城 网 际 公 司 介 绍 电 子 政 务 云 规 划 与 建 设 电 子 政 务 云 安 全 体 系 电 子 政 务 云 运 营 服 务 电 子 政 务 云 相 关 案 例

untitled

Secoway SVN3000技术建议书V1

1 1 大概思路 Nginx 集群 WCF 分布式局域网结构图 关于 WCF 的 BasicHttpBinding 编写 WCF 服务 客户端程序 URL 保留项 部署 WCF 服务程序到局域网内 3 台 PC 机 Nginx 集群配置搭建 启动 WCF 客户端程序 总结 2 Nginx 集群 WC

随着时代的推进,我校结构工资形成合理化分配方案,并定期完善、补充方案中的各项规定

Nginx 深度開發與客制化 來 自阿 里巴巴的經驗 阿 里巴巴集團 - 核 心系統部朱照遠 ( 叔度 )

ebook67-D

Chapter #

untitled

Kubernetes 的 Service 机制 Iptables 实现 Service 负载均衡 目录 CONTENTS 当前 Iptables 实现存在的问题 IPVS 实现 Service 负载均衡 Iptables VS. IPVS IPSet 与 IPVS 协同

1-28(长江二号)

京东容器平台与数据中心协同发展实践 鲍永成 京东商城 - 基础平台部 技术总监

文件1

nb.PDF

2 自 序 小, 印 象 中 只 有 西 醫, 因 為 每 次 生 病 都 是 去 看 西 醫 吃 西 藥 從 大 學, 也 是 陽 明 大 學 物 理 治 療 學 系 畢 業, 就 是 一 般 人 所 說 的 復 健 物 理 治 療 師 這 個 階 段, 所 有 的 治 病 以 及 保 健 觀 念

01 ( ) 50 ( ) ( 5 ) ( ) ( ) ( )

住户表

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

珠海市电视中心工程

助文档 天翼云镜像使用帮 天翼云镜像使用帮助文档 一 镜像环境说明 1. 操作系统 Ubuntu 位 2. php 运行环境 nginx+ PHP5.4+mysql 镜像软件明细 Mysql5.5 + FTP + PHPmyadmin + zend 二 软件账号和密码 1

1. 二 進 制 數 值 ( ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

2Office 365 Microsoft Office 365 Microsoft Office Microsoft Office Microsoft Office 365 Office (Office Web Apps) Office WindowsMAC OS Office 365 Offic

1 Linux Linux Linux Windows NT Linux Linux UNIX Internet Linux Internet Internet Web Linux 26.3% Web Apache 60% Sendmail Internet Linux ISP/ICP

untitled

达内Linux云计算学院

ebook20-8

Transcription:

沪江 ApiGateway 实践

关于我 夏志培 沪江网运维架构师 / 基础运维团队负责人,10+ 年运维经验 负责沪江 Redis/Codis,DNS,ApiGateway,RabbitMQ,ELK,Ceph 等基础组件运维和架构工作 对系统底层以及开源的软件有浓厚的兴趣 微信 :summer_xia_027

目录 01 02 03 背景和目的 ApiGateway 架构 ApiGateway 的实现 CONTENTS 04 ApiGateway 部署 / 性能 05 QA

01 背景和目标

项目背景 域名调度 C P U TCP WAF/2fa 域名解析 F5 HTTS/irule TCP 业务节点 日志收集 ELK 灰度 限流 发布 soa/service 发布系统

目标 1. 流量调度 2. 协议适配 /SSL 卸载 / 路由 / 足够的扩展 限流 灰度发布 / 黑白名单 5. 统一日志收集 6. 贴近业务的 health_check 7. 轻松运维

02 ApiGateway 架构

ApiGateway 架构 Load balance 管理后台 saltstack APIGATEWAY SSL WAF APIGATEWAY ELK 灰度 路由 限流 irule 编排 后端服务 / 接口

03 ApiGateway 的实现

ApiGateway 实现 : 流量调度 - 调度域名 A 机房 SSL 的调度域名 group1.idca.cnc.ssl.cname.com A 机房 ApiGateway 的调度域名 group1.idca.cnc.gateway.cname.c om B 机房 SSL 的调度域名 group1.idcb.cnc.ssl.cname.com B 机房 ApiGateway 的调度域名 group1.idcb.cnc.gateway.cname.c om

ApiGateway 实现 : 流量调度 - 流量转发 ApiGateway SSL B 机房 ApiGateway A 机房 ApiGateway

ApiGateway 实现 : 流量调度 - 流量转发 通过专线将流量引到其他 IDC

ApiGateway 实现 : 协议适配 HTTPS HTTP ApiGateway SSL HTTP WAF/2fa HTTP ApiGateway irules HTTP HTTP HTTP 业务 1 业务 2 业务 2

ApiGateway 实现 : 协议适配 (SSL-offload) SSL:domain_A SSL:domain_B F5 DNAT DNAT DNAT domain_a:553 domain_a:554 domain_a:555

ApiGateway 实现 : 路由 (SSL 路由 ) site:domain_a/admin?xx site:domain_a/query?xx site:domain_a/static/xx ApiGate way SSL IDC_A WAF IDC_A 2fa IDC_A apigateway group1

ApiGateway 实现 : 路由 Loading-config Starting-work rewrite Rewrite tail Access tail content Output-header-filter Output-body-filter log route.lua upstream_xx_api upstream_xx_admin upstream_xx_auth xxx_irules.lua node1 node2 node3

ApiGateway 实现 : 路由 -irules 实例

ApiGateway 实现 : 路由 -irules 配置实例

ApiGateway 实现 : 限流 ( 客户端 / 服务器端 ) limit_req_zone $x_forwarded_for zone=domainx_c:50m rate=100r/s; limit_req_zone $remote_addr zone=domainx_s:50m rate=300r/s; limit_req zone=domainx_c_client burst=1000; limit_req zone=domainx_s burst=1000; cdn 业务节点 Burst=1000 漏桶算法 ApiGateway

ApiGateway 实现 : 灰度发布 灰度 pool upstream_xx_gray cdn/ssl/ WAF ApiGateway 上下线接口 LUA sharedict 正常 pool upstream_xx 发布系统 redis ( 配置策略 )

ApiGateway 实现 : 灰度发布 路由策略 : { api:gateway:strategy:login.hj.com : iproute,vesion_range } 策略处理 - 灰度处理 Local cache 格式 { api:gateway:process:iproute:login.hj.com:192.168.164.128 : gray_upstream } Redis 格式 { api:gateway:process:iproute:login.hj.com :[{"filterip":"192.168.164.128","upstream": gray1"},{"filterip":"192.168.1.0/24","upstream": gray2"}]}}1

ApiGateway 实现 : 日志收集 / 监控 A 机房 apigateway B 机房 apigateway A 机房的 ELK B 机房的 ELK 1. 单域名的流量 2. 单域名的 TPS 3. 请求 HTTP CODE 4. 设备 ua 5. 响应时间 监控系统

ApiGateway 实现 : health_check nginx_upstream_check_module-0.3.0 F5 TCP 5 秒 / 次, 16s 超时 ApiGateway SSL TCP 5 秒 / 次, 5 次异常剔除, 连续 2 次加入 WAF HTTP 3 秒 / 次, 5 次异常剔除, 正常 2 次加入 业务节点 ApiGateway

ApiGateway 实现 : health_check

04 ApiGateway 部署和性能

ApiGateway/SSL 的部署以及性能参数 安装 :yum install apigateway redis -y 服务器的内核参数 : net.core.somaxconn = 655360 系统设定的 backlog 值, 若 listen 时 backlog 大于此值, 则不会生效 net.core.netdev_max_backlog = 6553600 net.ipv4.tcp_max_tw_buckets = 50000 net.ipv4.tcp_tw_timeout = 5 net.ipv4.tcp_tw_reuse = 1 网卡设备的请求队列长度 ( 硬件 backlog) 端口回收, 以及限制 time_wait 状态的 tcp 连接 net.ipv4.ip_local_port_range = 1025 65535 net.unix.max_dgram_qlen = 655360 可用端口范围 unix domain socket 的数据包队列

ApiGateway 的部署以及性能参数 Nginx 的部署参数 : worker_processes` 8 nginx 进程数, 建议按照 cpu 数目来指定, 一般为它的 倍数 worker_cpu_affinity 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 01000000 10000000 为每个进程分配 cpu, 上例中将 8 个进程分配到 8 个 cpu, 当然可以写多个, 或者将一个进程分配到多个 cpu worker_rlimit_nofile 102400 这个指令是指当一个 nginx 进程打开的最多文件描述 符数目 events: worker_connections accept_mutex multi_accept use epoll; 前端开启 keepalive keepalive_timeout keepalive_requests 后端开启 keepalive upstream keepalive location proxy_http_version 65535 Off On 75 100 1000 1.1 每个进程允许的最多连接数, 理论上每台 nginx 服务器的最大连接数为 worker_processes*worker_connections 表示一条长连接可以保持的时间为 75s 表示一条长连接可以处理的请求数 100 个 其中 keepalive 参数表示 proxy 与 upstream 间每个 worker 维持的长连接数, 而 location 中需要将外部请求的 Connection 头部清空, 并设置请求的 http 版本为 1.1 版 这些配置才能使能 proxy 和 upstream 间的长连接

ApiGateway 的部署和性能 ApiGateway SSL 的压力测试数据 ( 不跨网络 ): 请求次数 请求内容大小 TPS 完成时间 服务器最高负载 带宽 ( 未跨网络 ) 43561497 4k 481628 90s 32 1.95GB/s 40028046 8k 442440 90s 32 3.48GB/s 32425127 16k 358258 90s 32 5.55GB/s 26482727 32k 293251 90s 32 7.98GB/s ApiGateway SSL 的压力测试数据 :( 跨网络 ) 请求次数 请求内容大小 TPS 完成时间 服务器最高负载 带宽 2487381 4k 27553 90s <0.5 114.3MB/s 1312779 8k 14531 90s <0.5 117.02MB/s 669161 16k 7406 90s <0.5 117.54MB/s 337922 32k 3740 90s <0.5 118.12MB/s

ApiGateway 的部署和性能 ApiGateway 的压力测试数据 ( 不跨网络 ): 请求次数请求内容大小 TPS 完成时间服务器最高负载带宽 ( 未跨网络 ) 1kw 8k 525974 86s 0.59, 0.19, 0.09 0 1kw 16k 99125.71 184s 0.68, 0.28, 0.13 0 1kw 32k 11700.03 1303s 0.22, 0.10, 0.08 0 1kw 64k 10206.13 7513s 0.18, 0.05, 0.01 0 ApiGateway 的压力测试数据 :( 跨网络 ) 请求次数请求内容大小 TPS 完成时间服务器最高负载带宽 1kw 8k 14720.81 73s 0.59, 0.19, 0.09 114.3MB/s 1kw 16k 7823.42 104s 0.68, 0.28, 0.13 112.7MB/s 1kw 32k 3416.15 1710s 0.22, 0.10, 0.08 116.5MB/s 1kw 64k 1715.43 8583s 0.18, 0.05, 0.01 118.8MB/s

ApiGateway 实施后的效果 1.SSL 的吞吐能力增加 1 个数量级 + 2.irules 处理能力增加一倍 +, 并且横向扩展 3. 更容易流量调度

ApiGateway 实施过程中的 TIP 1. 证书链 /SNI 2. Nginx 加载配置文件 3. Lua 的变量

QA