<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>架构 on IT 运维小秋</title>
        <link>/tags/%E6%9E%B6%E6%9E%84.html</link>
        <description>Recent content in 架构 on IT 运维小秋</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <managingEditor>chenwx716@139.com</managingEditor>
        <webMaster>chenwx716@139.com</webMaster>
        <lastBuildDate>Tue, 11 Jul 2023 12:53:32 +0800</lastBuildDate><atom:link href="/tags/%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>网关</title>
        <link>/p/gateway.html</link>
        <pubDate>Tue, 11 Jul 2023 12:53:32 +0800</pubDate>
        <author>chenwx716@139.com</author>
        <guid>/p/gateway.html</guid>
        <description>&lt;h2 id=&#34;基础概念&#34;&gt;基础概念&lt;/h2&gt;
&lt;p&gt;一个物理或逻辑区域的入口或出口&lt;/p&gt;
&lt;h2 id=&#34;网关分类&#34;&gt;网关分类&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;网络层网关: 重点是网络数据包转发和访问控制&lt;/li&gt;
&lt;li&gt;API 网关: 属于业务网关, 主要附带身份认证、流控、安全等业务功能&lt;/li&gt;
&lt;li&gt;数据网关; 缓存, 数据库, 存储, 数据仓库&lt;/li&gt;
&lt;li&gt;安全网关: 隔离，鉴权&lt;/li&gt;
&lt;li&gt;管理网关&lt;/li&gt;
&lt;li&gt;边界网关: 逻辑概念, 区分不同区域&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;api-网关&#34;&gt;API 网关&lt;/h2&gt;
&lt;p&gt;将统一业务入口, 流控, 负载均衡, 鉴权, 安全等功能进行前置&lt;br /&gt;
黑白名单, 协议适配(tcp/udp/http), 容错可用能力&lt;/p&gt;
&lt;h3 id=&#34;主要用途&#34;&gt;主要用途&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;隔离: 作为企业系统边界, 隔离外网系统与内网系统, 隐藏内部细节&lt;/li&gt;
&lt;li&gt;解耦: 使得各业务系统之间 或 微服务系统 之间能够独立, 自由, 高效, 灵活地调整;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;常用方式&#34;&gt;常用方式&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;nginx+lua&lt;/li&gt;
&lt;li&gt;traefix&lt;/li&gt;
&lt;li&gt;Spring Cloud Gateway&lt;/li&gt;
&lt;li&gt;业务自建&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;通用api网关设计要点&#34;&gt;通用api网关设计要点&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;高性能&lt;/li&gt;
&lt;li&gt;安全性: 身份认证、权限认证&lt;/li&gt;
&lt;li&gt;高可用: 无状态设计原则&lt;/li&gt;
&lt;li&gt;可扩展: 支持插件, 脚本 等扩展功能&lt;/li&gt;
&lt;li&gt;运维友好&lt;/li&gt;
&lt;li&gt;隔离性：某个类型的后端服务异常时不影响其它类型服务&lt;/li&gt;
&lt;li&gt;动态变更: 负载规则变更时，不影响其它服务&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;api-网关设计要点&#34;&gt;API 网关设计要点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;API标准化: 无标准不平台&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;支持 API接口测试: 即可以方便地对接口进行测试, 或者方便区分或隔离测试流量和生产流量&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;全生命周期管理&lt;br /&gt;
覆盖 API 的定义、测试、发布的整个生命周期管理，&lt;br /&gt;
便捷的日常管理、版本管理，支持热升级和快速回滚&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;协议主流化&lt;br /&gt;
http, https, xml, json, grpc&lt;br /&gt;
提供 java php python 等SDK&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;业务-api-网关设计&#34;&gt;业务 API 网关设计&lt;/h1&gt;
&lt;h2 id=&#34;接口命名&#34;&gt;接口命名&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;风格统一 (都为英文小写)&lt;/li&gt;
&lt;li&gt;模式固定 (xx.xx.xx.xx)&lt;/li&gt;
&lt;li&gt;简洁明了&lt;/li&gt;
&lt;li&gt;有扩展性&lt;/li&gt;
&lt;li&gt;分类与分层&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;举例：suning.custom.order.get&lt;/p&gt;
&lt;p&gt;格式：suning. 业务分类. 模块简称. 操作符&lt;/p&gt;
&lt;h2 id=&#34;文档规范化&#34;&gt;文档规范化&lt;/h2&gt;
&lt;p&gt;API文档组成&lt;br /&gt;
简介、接口描述、公共参数、请求参数、响应参数、请求示例&lt;br /&gt;
业务异常码、公共异常码、响应示例、FAQ、异常示例、API工具&lt;/p&gt;
&lt;h2 id=&#34;异常码标准化&#34;&gt;异常码标准化&lt;/h2&gt;
&lt;p&gt;统一风格，分类，唯一性，有利于监控、告警、问题排查&lt;br /&gt;
有条件的情况，除返回异常码外，还要有中文描述&lt;/p&gt;
&lt;h2 id=&#34;api管理&#34;&gt;API管理&lt;/h2&gt;
&lt;p&gt;可以开关、流量控制和限流&lt;br /&gt;
安全管理、&lt;br /&gt;
接口分流: 不同的分类对应不同的后端服务&lt;br /&gt;
服务降级: 进行快速错误&lt;/p&gt;
&lt;h2 id=&#34;api监控&#34;&gt;API监控&lt;/h2&gt;
&lt;p&gt;日志&lt;br /&gt;
接口统计&lt;br /&gt;
告警&lt;br /&gt;
存储监控数据&lt;/p&gt;
&lt;hr /&gt;
</description>
        </item>
        
    </channel>
</rss>
