网关架构演进

2023-11-02

1、前言

天翼账号是中国电信打造的互联网账号体系产品,利用中国电信管道优势为企业提供用户身份认证能力。其中网关系统是天翼账号对外能力开放体系的重要组成:业务侧它以集中入口、集中计费、集中鉴权管控为目标,技术侧它支持隔离性、可配置、易开发、动态路由、可降级、高并发等场景。

自 2017 年天翼账号网关系统上线以来,历经数次互联网的营销大促活动,特别是 2021 年的春节红包活动和刚过去双 11 活动,天翼账号网关系统在 10 万级 QPS 和 10 亿级日请求量的情况下,各项指标依然保持平稳,顺利保障合作方活动的开展。在天翼账号产品能力不断提升的背后,是天翼账号网关系统架构技术迭代发展的过程。

2、天翼账号网关演进

2.1 重点演进历程介绍

2017 年~ 2021 年天翼账号网关系统经历数次重要更迭升级,每次升级都给产品带来新的发展机会,系统总体演进过程如下:

2.2 天翼账号网关系统 1.0

2017 年初,天翼账号技术团队基于开源微服务网关 Zuul 组件开展了网关系统 1.0 的建设。Zuul 是 Spring Cloud 工具包 Netflix 分组的开源微服务网关,它和 Eureka、ribbon、hystrix 等组件配合使用,本质是通过一系列的核心 filter,来实现请求过程的认证安全、动态路由、数据转化、熔断保护等功能。其系统核心运行流程如下:

2018 年中,随着天翼账号推出免密认证系列产品的快速发展,网关系统 1.0 的缺点日益凸显主要表现在两个方面:

  1. 性能瓶颈: 微服务网关 Zuul 组件基于 Servlet 框架构建,采用的是阻塞和多线程方式实现,高并发下内部延迟严重,会造成连接增多和线程增加等情况,导致阻塞发生,在实际业务应用中单机性能在 1000 QPS 左右。

  2. 灵活度有限:为了实现路由和 Filter 动态配置,研发人员需要花费时间去整合开源适配 Zuul 组件控制系统。

为应对业务高峰,技术侧常采用横向扩展实例的策略来实现对高并发的支持,该策略给系统稳定性带来一定的风险,同时部署大量的网关服务器也提高产品的运营维护成本,因此网关系统架构升级迫在眉睫。

2.3 天翼账号网关系统 2.0

2.3.1 技术选型

互联网企业常见的方案有基于 Openresty 的 Kong、Orange,基于 Go 的 Tyk 和基于 Java 的 Zuul:

apiaxleapi-umbrella: 考虑到学习成本和项目后期发展的兼容性,其语言和框架不在团队优先考虑范围

Zuul:目前正在应用中,Zuul 处理请求的方式是针对每个请求都启用一个线程来处理。通常情况下,为了提高性能,所有请求被放到处理队列中,等待空闲线程来处理。当存在大量请求超时后会造成 Zuul 线程阻塞,目前只能通过横向扩展 Zuul 实例实现对高并发的支持。而 Zuul2.0 将 HTTP 请求的处理方式从同步变成了异步,以此提升处理性能。但团队内部对继续采用 Zuul 比较慎重,原因主要有以下两点:

  1. 版本稳定性需要斟酌 ,Zuul 的开源社区比较活跃,一直在更新状态

  2. 应用企业较少,除了 Netflix,目前 Zuul 在企业中的应用还比较少,性能和稳定性方面还有待观察

Nginx: 高性能的 HTTP 和反向代理 Web 服务器,应用场景涉及负载均衡、反向代理、代理缓存、限流等场景。但 Nginx 作为 Web 容器应用场景较少。Nginx 性能优越,而 Nginx 开发主要是以 C/C++ 模块的形式进行,整体学习和开发成本偏高。Nginx 团队开发了 NginxScript,可以在 Nginx 中使用 JavaScript 进行动态配置变量和动态脚本执行。

目前行业应用非常成熟的扩展是由章亦春将 Lua 和 Nginx 黏合的 ngx_Lua 模块,将 Nginx 核心、LuaJIT、ngx_Lua 模块、多功能 Lua 库和常用的第三方 Nginx 模块整合成为 OpenResty。开发人员安装 OpenResty,使用 Lua 编写脚本,部署到 Nginx Web 容器中运行,能轻松地开发出高性能的 Web 服务。OpenResty 具有高性能,易扩展的特点,成为了团队首选。同时也面临两个选项:

  1. 基于 OpenResty 自建,例如:一个类似于某东 JEN 的系统

  2. 对开源框架二次开发,例如:Kong、Orange

根据调研结果,团队衡量学习成本和开发周期等因素,最终决定采用对 Kong 框架二次开发的方案。以下是调研后的一些对比总结,仅供参考,如有疏漏,请不吝指出。

2.3.2 架构升级

天翼账号技术团队制定了网关系统 2.0 演进方案,部署架构如图:

  • 自研插件

除了 Kong 网关自带的原生组件外,2.0 网关系统还相继研发出:加密鉴权、日志处理、参数转换、接口协议、消息队列、服务稳定、链路追踪及其它等 8 大类共计约 30 多个组件。丰富的自研组件,保障了系统架构平稳的升级和业务的灵活性:

  1. 支持产品 Appkey 认证,SSL/TLS 加密,支持针对 IP 或应用的黑、白名单

  2. 符合自身业务的协议插件,包括了常见的加密、签名算法和国密 sm2,sm3,sm4 等金融级别的算法

  3. 监控和统计方面增加了基于 Redis、Kafka 的异步日志汇聚、统计方式,并支持 Zipkin、Prometheus 的追踪、监控

  4. 增加多种按业务精细化分类的限流熔断策略,进一步完善服务保障体系

改造上游

利用 Go 语言的高并发特性,对上游并发量大的微服务进行重构。

2.3.3 效果

网关 2.0 通过对 Kong 组件自研插件的开发和改造,实现了符合产品特性、业务场景的相关功能,也抽象了网关的通用功能。相较于 1.0 版本,具备以下优点:

  1. 支持插件化,方便自定义业务开发

  2. 支持横向扩展,高性能、高并发、多级缓存

  3. 高可用、高稳定性,具备隔离、限流、超时与重试、回滚机制

  4. 插件热启用,即插即拔、动态灵活、无需重启,能快速适用业务变化

为了验证新架构的性能,团队对网关系统 2.0 进行了压测:

  • 结果 1:17:26 在当前测试环境下 QPS 在 1.2W 左右

  • 结果 2:18:06 取消 Prometheus、流量控制、日志、权限校验等插件,QPS 达到 1.3W+

压测结果表明,天翼账号网关系统 2.0 已经达到单机万级 QPS,自研插件运行效率较高,对于网关性能的影响较小。

天翼账号网关系统 2.0 初期是基于 Kong-v0.14.0 版本开发,运行至 2019 年 5 月时,Kong 已经更新到 v1.1.X 版本,有很多重要的功能和核心代码更新,而且为了便于跟 Kubernetes 集成,团队决定将版本升至 v1.1.X。

通过同步迁移、并行运行的方式天翼账号网关系统 2.1 于 2019 年 9 月完成 Kong-v1.3 版本的升级。期间天翼账号网关系统仍平稳地完成了 2018 年阿里双 11 活动、2019 年春节活动等大型高并发场景的支撑工作。2020 年 3 月,网关 2.1 及底层微服务完成了镜像化改造,即可通过 Kubernetes 自动编排容器的方式部署,在动态扩容等方面有较大的提升。

2.4 天翼账号网关系统 3.0

随着免密认证逐渐成为互联网应用作为首选登录方式,互联网头部企业要求认证产品 SLA 相关技术指标对齐其内部指标,为了支撑产品精细化运营和进一步的发展,保障产品 SLA 合同及性能指标,技术团队制定了网关系统 3.0 演进方案。

3.0 网关部署架构图如下:

2.4.1 DP(Data Plane) 升级

2.4.1.1 Kong 组件升级

团队摸余(鱼)工程师对开源项目 Kong 的版本发布一直保持着较高的关注度,总结两年来 Kong 主要版本升级新特性:

考虑到 Kong 2.5.0 版本为刚刚发布的版本,采用的企业用户不多,且开源社区对之前发布的 V2.4.0 版有较好的评价,因此团队评审后决定升级到 V2.4.0。

Kong 2.4.0 采用 OpenResty1.19.3.1,基于 Nginx 1.19.3,官方文档测试单 Worker 可达 269,423 QPS。以 2.0 版本同样环境压测,天翼账号网关系统 3.0(Kong 2.4) QPS 可达到 2W+,对比天翼账号网关 2.X(Kong 1.3) QPS 1W+,性能预估可提升 80% 以上。

Kong 2.4.0 组件采用控制面 / 数据面(CP/DP) 混合部署新模式,具备以下优势:

  • 功能解耦

混合部署模式,CP 负责将配置数据推动到 DP 节点,DP 节点负责流量数据处理。

  • 运行稳定

当 CP 不可用时,DP 可按照本地存储的配置进行流量业务处理,待 CP 恢复,DP 会自动连接更新配置。

  • 支持多语言插件

在原有 Lua 插件的基础上,支持使用 JavaScript 、TypeScript、GO 编写插件,后端 GO 语言团队可进行相关扩展。

  • 支持 UDP 代理

Routes、Services、Load Balancing、日志插件支持 UDP 代理,满足业务发展需要。

2.4.1.2 精确网关分组

顶层采用分域名业务隔离,同时根据业务特性、保障级别、访问并发量等特点,对网关集群进行分组,完成子业务关联性解耦,在应对大流量冲击时降低对业务的影响,同时方便运维侧精准扩容。

2.4.1.3 混合云

新建阿里云节点,作为天翼账号产品双活系统的补充节点,在高并发时可由 DNS 调度实现自动切换,确保提供无间断的服务。

2.4.2 CP(Control Plane) 升级

2.4.2.1 优化调用链路

增加 Consul 作为服务发现、配置管理中心服务,替换原有 Nginx 层路由功能。对 Kong 组件提供 DNS 路由及发现服务,通过 Check 方式检查微服务是否可用。

2.4.2.2 新增插件

  • DP 缓存控制插件

Kong 2.4 采用 DP 和 CP 混合部署模式,DP 平面的节点无管理端口,原 Kong 1.3 通过 admin API 管理缓存的模式无法适用现有场景,因此研发了 c-cache-manage 插件,添加后,可通过数据层面 URL 请求对 DP 缓存进行管理。

  • 流量复制插件

为了测试网关 3.0 的适用性,团队自研流量复制插件,复制现网流量对网关 3.0 进行测试,整个测试过程不影响现网环境。

插件运行流程如下:

Konga 配置界面参考:

  • Prometheus 插件改造

为了更好的展示 DP 和 CP 层面的数据,对自带 Prometheus 插件进行改造,增加 DP、CP 角色维度,区分并收集数据平面相关监控指标。

2.4.2.3 完善预警监控

在系统原有的监控的基础上,增加业务处理监控,通过业务处理监控,可将异常被动通知,转为主动发现。业务出现异常,可第一时间协助客户处理,提升系统的效能。

2.4.3 效果

演进完成后天翼账号网关系统 3.0 具备以下优势:

  1. 高并发,可支撑十万级 QPS

  2. 高可用 ,保障系统 SLA 达到 99.96%

  3. 灵活性伸缩性、 DNS 调度自动切换,可通过阿里云 ACK 迅速扩容

  4. 丰富开发和应用场景,支持多语言插件(Go、Javascript、Lua), 支持 UDP 代理

天翼账号网关系统 3.0 的部署,有效地保障了系统服务 SLA 等各项指标的达成。在今年双 11 期间十万级并发高峰时,系统 TP99 保持在 20MS 以内,总体表现非常稳定。

3、后序

天翼账号网关经过多次演进,已日趋完善,总结其优势如下:

  1. 系统性能大幅度提升,天翼账号网关系统 3.0 相较 1.0 性能提升 20 倍以上

  2. 统一网关流量入口,超过 90% 以上流量由天翼账号网关系统管控

  3. 系统可用性得到加强,建立了基于 DNS 调度自动切换的三节点、混合云稳定架构

  4. 标准化可复用的插件,如频控限流、降级熔断、流量复制、API 协议等标准化插件

  5. 丰富的多语言插件能力,Lua、Go、Javascript 的插件,可满足不同技术团队的需求

天翼账号网关系统在中国电信统一账号能力开放平台中处于举足轻重的地位,它的迭代升级,为平台十万级高并发提供了坚实的保障,也为系统维护减少了难度、提升了便捷性,顺利支撑业务达成亿级收入规模。天翼账号技术团队在 follow 业界主流网关技术的同时,也注重强化网关插件的标准化、服务化建设,希望通过网关能力反哺其它产品赋能大网。随着中国电信服务化、容器化、全面上云的战略推进,天翼账号网关的系统架构也将随之变化,从全传统环境到部分云化再到全量上云,不断的向更贴近业务,更适用技术发展的形态演进。

来源:

xie.infoq.cn/article/c6703d216c43c2b522b9b4ffa

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网关架构演进 的相关文章

  • 模块功能耗时长排查

    模块功能耗时长排查 1 场景介绍1 1 1 原有场景 OA服务 发送代办 代办推送到OA代办中心 OA代办中心 推送到 总部统一代办中心 我们排查请求耗时 发现 OA代办中心 推送到 总部统一代办中心的业务代码耗时非常久 1 2 原有场景总
  • 人工智能大模型加速数据库存储模型发展 行列混合存储下的破局

    数据存储模型 专栏内容 postgresql内核源码分析 手写数据库toadb 并发编程 toadb开源库 个人主页 我的主页 座右铭 天行健 君子以自强不息 地势坤 君子以厚德载物 概述 在数据库的发展过程中 关系型数据库是一个里程碑式的
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • 为什么程序员招聘都要5年经验起?因为他们懂Java8底层优化!

    一 前情回顾 上篇文章给大家聊了一下volatile的原理 具体参见 入坑两个月自研非外包创业公司 居然让我搞懂了volatile 这篇文章给大家聊一下java并发包下的CAS相关的原子操作 以及Java 8如何改进和优化CAS操作的性能
  • 阿里云CDN架构接入WAF应用防火墙案例实践

    文章目录 1 网站架构变化 2 配置WAF应用防火墙 2 1 配置网站接入WAF防火墙 2 2 WAF防火墙生成CNAME地址 2 3 配置WAF防火墙HTTPS证书 2 4 WAF防火墙开启HTTP回源SLB 3 配置CDN加速器回源WA
  • EF循环依赖

    1 项目场景 项目场景 1 本项目采用了EF架构来建立实体与实体之间的关联关系 2 一个部门对应多个摄像头 1 部门实体 public partial class DepartmentEntity 部门实体 public int Id ge
  • 数据仓库进阶 《阿里大数据之路》第二篇 数据模型篇 (完整版)

    第8章 大数据领域建模综述 此文章为学习笔记 有兴趣的小伙伴可以根据以下指引获取更多 学习内容链接如下 视频 一起啃书 阿里大数据之路数据仓库建模基础理论研读 已完结 哔哩哔哩 bilibili 书籍 阿里大数据之路 8 1 为什么需要数据
  • 2022年数字化转型的三大基于云的驱动因素

    未来一年将标志着企业品牌 工作和生活创新的最大重置 文章来源 Venture Beat Google Cloud CTO Will Grannis 数字技术一直是并将持续是公司应对新冠疫情的背后推动力 从购物和供应链到儿童保育和工作 一切都
  • 12_Linux ARM架构_安装JDK8-银河麒麟V10(Kylin Linux Advanced Server V10 )操作系统

    12 Linux ARM架构 安装JDK8 银河麒麟V10 Kylin Linux Advanced Server V10 操作系统 1 官网下载aarch64架构jdk包 2 linux服务器中创建java文件夹 方便后期快速寻找 3 将
  • 一文带你从IntelliJ IDEA中一键生成Controller、Service、Dao、Model层代码,真的不看看吗?

    前言 EasyCode插件介绍与安装 简介EasyCode是基于IntelliJ IDEA开发的代码生成插件 支持自定义任意模板 Java html js xml 只要是与数据库相关的代码都可以通过自定义模板来生成 支持数据库类型与java
  • 4大主流CPU处理器技术架构

    推荐阅读 浅谈linux 内核网络 sk buff 之克隆与复制 深入linux内核架构 进程 线程 了解Docker 依赖的linux内核技术 导读 RISC 精简指令集计算机 是一种执行较少类型计算机指令的微处理器 起源于80年代的MI
  • 深入微服务架构 | 微服务与k8s架构解读

    微服务项目架构解读 什么是微服务 微服务是指开发一个单个小型的但有业务功能的服务 每个服务都有自己的处理和轻量通讯机制 可以部署在单个或多个服务器上 微服务也指一种种松耦合的 有一定的有界上下文的面向服务架构 也就是说 如果每个服务都要同时
  • 计算机网络中的通信子网:架构、协议与技术简介

    在计算机网络中 通信子网是负责实现主机之间以及主机与终端之间数据传输的核心部分 它由一系列硬件设备和通信协议组成 为上层应用提供可靠 高效和透明的数据传输服务 本文将详细介绍通信子网的架构 协议与技术 一 通信子网的架构 星型拓扑 星型拓扑
  • 阿里P8架构师带你“一窥”大型网站架构的主要技术挑战和解决方案

    写在前面 传统的企业应用系统主要面对的技术挑战是处理复杂凌乱 千变万化的所谓业务逻辑 而大型网站主要面对的技术挑战是处理超大量的用户访问和海量的数据处理 前者的挑战来自功能性需求 后者的挑战来自非功能性需求 功能性需求也许还有 人月神话 聊
  • 第六章--- 实现微服务:匹配系统(下)

    0 写在前面 这一章终于完了 但是收尾工作真的好难呀QAQ 可能是我初学的缘故 有些JAVA方面的特性不是很清楚 只能依葫芦画瓢地模仿着用 特别是JAVA的注解 感觉好多但又不是很懂其中的原理 只知道要在某个时候用某个注解 我真是有够菜的
  • Docker与微服务:构建和部署微服务架构的完整指南

    微服务架构已经成为现代应用开发的主要范式之一 而Docker容器技术则为微服务的构建 部署和管理提供了理想的解决方案 本文将深入探讨如何使用Docker构建和部署微服务架构 提供更多示例代码和细致的指南 以帮助大家更全面地理解和运用这些关键
  • 微服务常见的配置中心简介

    微服务架构中 常见的配置中心包括以下几种 Spring Cloud Config Spring Cloud Config是官方推荐的配置中心解决方案 它支持将配置文件存储在Git SVN等版本控制系统中 通过提供RESTful API 各个
  • 如何解读服务器的配置和架构?

    在当今数字化时代 服务器作为企业或组织的重要基础设施 其配置和架构对于保障业务的稳定运行至关重要 如何解读服务器的配置和架构 成为了一个备受关注的话题 本文将围绕服务器配置和架构的解读进行深入探讨 帮助读者更好地理解服务器的性能 扩展性和安
  • CCSC,一种CPU架构

    core circuit separate computer 核与执行电路的分离 最初是为了省电 用寄存器实现这种分离 V寄存器控制着执行电路的供电 V 0则不供电 进入省电模式 V 1则供电 进入工作模式 P寄存器是parameter r
  • DockerCompose - 微服务项目部署全过程(最佳实践)

    目录 一 微服务项目部署 1 1 项目介绍 1 2 准备 MySQL 初始化文件 1 3 pom xml 插件 1 4 测试工作 1 5 编写 Dockerflie 文件 1 6 编写 DockerCompose yml 文件 1 7 修改

随机推荐

  • 电路中VCC VDD VSS VEE GND的含义

    在电路中 芯片引脚经常会出现VCC VDD VSS VEE和GND这些标示 其中VCC一般表示通用芯片的电源引脚 比如一些模拟运放的正电源引脚 74系列数字芯片的电源引脚 VCC一般接相应的正电源电压 VDD一般表示数字芯片的电源引脚 如果
  • 手写Promise

    Promise是JS进行异步操作的重要API 也是开发基本上绕不开的技术 所以很有必要对其进行深入的了解 本文我们就 一步步手动实现Promise的相关功能 Promise属性和构造函数 原生功能 Promise对象的属性 验证原生Prom
  • python 工具变量回归_工具变量多重高维固定效应ivreghdfe

    Stable versionTo install reghdfe open Stata and run ssc install reghdfeNote that reghdfe requires at least Stata 11 2 an
  • win10启动项_win10系统开机启动项的设置教程

    小编给大家详解win10系统开机启动项的设置教程 使用win10系统过程中 有时会遇到启动项过多影响开机速度的问题 为此事困扰的用户 可参照以下的方法进行开机启动项的设置 win10系统的开机启动项如果过多的话 就会影响电脑的开机速度 其实
  • 计算机专业毕业设计一

    概述 从一个医学生转行成为一名程序员 对于我来说 是一个超前的跨越 好奇的朋友会问了 医学这么吃香的行业 怎么转行做码农呢 这个道理很简单 就是想象和显示差距太大了 距离梦想的专业差了点距离 请允许我去小黑屋哭上半个小时 想当年 我意气风发
  • JSP与Servlet之间的值传递种种

    这几天搞那个网上书店的过程中对JSP河Servlet有有了很多的认识 恩 下面是我遇到的问题解决了以后总结了一下 希望对大家有用吧 JSP与 servlet之间的传值有两种情况 JSP gt servlet servlet gt JSP 通
  • HTTPSConnectionPool(host='xxxxx', port=443): Max retries exceeded with url:xxxxxxxx (Caused by Ne...

    requests exceptions ConnectionError HTTPSConnectionPool host baike baidu com port 443 Max retries exceeded with url http
  • 提升mysql服务器性能(分库、分片与监控)

    节点一的建立 节点2 3 也要建立
  • MySQL学习5:事务、存储引擎

    事务 简介 事务是一组数据库操作的执行单元 它要么完全执行 要么完全不执行 事务是确保数据库中的数据一致性和完整性的重要机制之一 事务具有以下四个特性 称为ACID特性 原子性 Atomicity 事务作为一个整体被执行 要么全部操作成功
  • 一个开发的记单词小程序

    这里写目录标题 效果演示 功能1测试 功能简介 代码实现 效果演示 输入1 敲下Enter 回车键 后 进入第一个功能英译汉 给出Hello 用户输入中文意思 你好 敲下回车确定 进入下一个单词 功能1测试 功能简介 1 分别编辑中文和英文
  • Windows下的darknet安装

    1 下载darknet源码后 解压到文件夹 下载链接 https link zhihu com target https 3A github com AlexeyAB darknet 解压后的文件夹里面的内容是 2 打开build文件夹下的
  • 解决VMware“此主机支持Intel VT-x,但Intel VT-x处于禁用状态“

    1 问题 在启动VMware安装好的虚拟机时出现下图中的错误 2 问题原因 该主机处理器虚拟化技术处于禁用状态 可以在BIOS设置修改 3 问题处理 修改BIOS 本机型号为联想 开机点击F2进入BIOS 接着进入到bios的界面 选择标题
  • 被动与主动信息收集

    文章目录 信息收集 被动信息收集介绍 收集手段 收集内容 信息用途 信息收集 域名解析过程以手段 域名解析过程 信息收集 DNS DNS 信息收集 NSLOOKUP DNS 信息收集 DIG 查询网站的域名注册信息和备案信息 信息收集 被动
  • mysql 免安装版本下载地址

    5 7 32位 https dev mysql com get Downloads MySQL 5 7 mysql 5 7 19 win32 zip 5 7 64位 https dev mysql com get Downloads MyS
  • c源代码检查工具splint使用问题及方案

    splint使用时 可以使用splint help查看需要帮助的项目 然后针对需要了解的项目可以splint help 项目 查看具体的帮助 在splint使用过程中 老是出现Parse Error 下面是问题可能解决的方案 1 splin
  • cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso镜像下载

    链接 https pan baidu com s 1RvniUrq JpKQInKFs9bdvAhttps pan baidu com s 1RvniUrq JpKQInKFs9bdvA 提取码 zt88
  • Robot Framework 关于上传文件的问题的简单解决

    使用关键字选择文件 使用方式就是 解释一下 这里的xpath的 是输入标签的xpath的 而大多数的网络上传文件都会有这个输入标签 下边看几个简单的例子 本地上传按钮点开之后会弹出窗口选择文件 我们只需要获取这个本地上传的
  • VUE开发一个组件——Vue PC城市选择控件

    前言 前面用vue开发了三四个组件了 都是H5的 现在来看看PC是如何玩转组件的 其实和H5相同 样式不同而已 相关推荐 VUE开发一个组件 日历选择控件 VUE开发一个组件 移动端弹出层 IOS版 VUE开发一个组件 Vue tree树形
  • 建立和使用Python自定义模块

    文章目录 一 现状以及问题 二 Python模块 2 1 包的结构 2 2 包的位置 2 2 1 site packages目录 2 2 2 dist packages目录 2 3 自定义包 2 3 1 结构和位置 2 3 2 引用自定义包
  • 网关架构演进

    1 前言 天翼账号是中国电信打造的互联网账号体系产品 利用中国电信管道优势为企业提供用户身份认证能力 其中网关系统是天翼账号对外能力开放体系的重要组成 业务侧它以集中入口 集中计费 集中鉴权管控为目标 技术侧它支持隔离性 可配置 易开发 动