淘宝开放平台是阿里与外部生态互联互通的重要开放途径,通过开放的产品技术把阿里经济体一系列基础服务,像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴,推动行业的定制、创新、进化, 并最终促成新商业文明生态圈。 开放网关诞生于07年,到现在已经有15年的历史,流量从日两千万到到现在几百亿,支撑的业务也从淘系扩展到集团内多BU。随着流量上涨,网关的技术架构也在持续升级迭代,以支撑更大的流量和更广的业务。本文把网关近些年来的技术架构变迁做梳理和总结,回顾下网关的发展过程。
从主站业务角度来看,关系链指的是用户A与用户B的关注关系。以关注属性细分,以关注(订阅)为主,还涉及拉黑、悄悄关注、互相关注、特别关注等多种属性或状态。目前主站关系链量级较大,且还以较快速度持续增长。作为一个平台型的业务,关系链服务对外提供一对多关系点查、全量关系列表、关系计数等基础查询,综合查询峰值QPS近百万,被动态、评论等核心业务依赖。 在持续增长的数据量和查询请求的趋势下,保证数据的实时准确、保持服务高可用是关系链架构演进的核心目标。
Kubernetes(K8s)的复杂性和缺乏内部技能成为挑战。许多开发人员和运维团队对 K8s 相对陌生,需要学习新术语、工作流程和工具等。K8s 的离散部分要求具备广泛的专业知识,考虑到启动 K8s 集群需要了解和配置多个组件。此外,生态系统本身也在不断快速增长和发展。故障的诊断需要深入的技术和专业知识,这通常保存在少数有经验的工程师的头脑中。让我们探索新的创新方式,帮助克服技能差距问题。
useMemo 是 React 中的一个 Hooks 函数,用于缓存计算结果,以避免不必要的重复计算。它接受一个函数和一个依赖数组作为参数,并返回一个缓存的值。当依赖数组中的任何一个值发生变化时,useMemo 将重新计算并返回新的缓存值。
就像每一次发布上线修复问题的同时,也极易引入新的问题,自缓存诞生的第一天起,缓存与数据库的数据一致性问题就深深困扰着开发者们。
本文演示如何将应用程序与 SkyWalking Go 集成,并在 SkyWalking UI 中查看结果。 以前,如果你想要在 SkyWalking 中监控 Golang 应用程序,需要将项目与 go2sky[1] 项目集成,并手动编写各种带有 go2sky 插件的框架。现在,我们有一个全新的项目(Skywalking Go[2]),允许你将 Golang 项目集成到 SkyWalking 中,几乎不需要编码,同时提供更大的灵活性和可扩展性。 在本文中,我们将指导你快速将 skywalking-go 项目集成到 Golang 项目中。
Qunar 的实时日志平台使用的是 ELK 架构,其中 Elasticsearch 集群(以下简称:ES 集群)和 kibana 平台在机房 A,Logstash 集群在机房B。 目前机房 A 在使用过程中存在以下一些问题隐患: 机房 A 目前为饱和状态,批量新增机器难以支持 机房 A 主要由 Hadoop、ES 集群组成,业务交互会产生大量跨机房流量,峰值会影响到业务 基于上述因素,与 Ops 同事沟通后,决定整体迁移 ES 集群到机房 B。这样不仅可以解决上述两个问题,和写入端的 Logstash 集群也同在一个机房,网络通信更有保障。 此文主要介绍 ES 集群节点迁移实战过程中的一些实践与探索演进经验,对于日常的平台开发与运维也能有所借鉴和参考。
我们在进行软件开发时要想实现可维护、可扩展,就需要尽量复用代码,并且降低代码的耦合度。设计模式就是一种可以提高代码可复用性、可维护性、可扩展性以及可读性的解决方案。大家熟知的23种设计模式,可以分为创建型模式、结构型模式和行为型模式三大类。本专题着眼于实际开发过程中常用的几种设计模式,从理论和实战两个角度进行讨论和分享,力求逻辑清晰、表述简洁,帮助大家在项目中合理运用设计模式,保障代码的可靠性。