拓展:阿里巴巴中文站架构演进分析【部分】

news2024/11/16 9:19:36

文章目录

  • 前言
  • 阿里巴巴中文站架构发展历程
  • 阿里巴巴第五代架构
  • 数据架构的复杂

前言

  • 由学习整理而来,并非有意抄袭。
  • 如果有冒犯行为,请及时联系作者进行处理!

阿里巴巴中文站架构发展历程

时间关键技术
1999第一代网站架构Perl,CGl,Oracle
2000进入JAVA时代Java,Servlet
2001-2004EJB时代EJB(SLSB,CMP,MDB) Pattern(ServiceLocator,Delegate,Facade,DAO,DTO)
2005-2007WithoutEJB重构去EJB重构:Spring+iBatis+Webx,Antx,底层架构:iSearch,MQ+ESB,数据挖掘,CMS
2008-2009海量数据Memcached集群,Mysql+数据切分=Cobar,分布式存储,Hadoop,KV,CDN
2010安全,镜像安全,镜像,应用服务器升级,秒杀,NoSql,SSD

阿里巴巴第五代架构

  • 敏捷
    • 业务快速增长,
    • 每天都要上线大量的小需求应用系统日益膨胀,耦合恶化,架构越来越复杂,会带来更高的开发成本。
  • 开放
    • Facebook和AppStore带来的启示,如何提升网站的开放性,吸引第三方开发者加入到网站的共建中来?
  • 体验
    • 网站的并发压力快速增长,用户却对体验提出了更高的要求

数据架构的复杂

  • 问题
    • 数据架构非常复杂,在不同的应用场景采用多种类型的数据
      在这里插入图片描述
    • 业务模型的各个字段分布在不同的数据源
      在这里插入图片描述
  • 难点:
    • 数据类型的多样性
    • 数据源多样性和变化重构
    • 数据源改造而数据服务平台不需要大面积重构
  • 解决方案
    • 统一数据服务层UDSL
  • 在网站应用集群和底层数据源之间,构建一层代理,统一数据层
  • 统一数据层的特性
    • 模型数据映射
      - 实现业务模型各属性与底层不同类型数据源的模型数据映射
      - 目前支持关系数据库,iSearch,redis,mongodb
    • 统一的查询和更新API
      - 提供了基于业务模型的统一的查询和更新的API,简化网站应用跨不同数据源的开发模式。
    • 性能优化策略
      • 字段延退加载,按需返回设置
      • 基于热点缓存平台的二级缓存
      • 异步并行的查询数据:异步并行加载模型中来自不同数据源的字段
      • 并发保护:拒绝访问频率过高的主机IP或IP段
        在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【实操案例八】元组、集合操作 实例代码及运行效果图!

任务一:我的咖啡馆你做主 方法一:使用列表 # 任务一:我的咖啡馆你做主 # 方法一:使用列表lst[蓝山,卡布奇诺,拿铁,皇家咖啡,女王咖啡,美丽与哀愁]for i in lst:print(lst.index(i)1,.,i,end\t) print()while True:chice int(in…

SpringCloud+Ribbon 报错:java.net.unknownhostexception:XXX

SpringCloudRibbon 报错:java.net.unknownhostexception:XXX 问题分析: 网上很多的说法是依赖冲突导致,原因是什么呢:如果你的org.springframework.cloud:spring-cloud-starter-netflix-eureka-client 依赖中包含了ribbon依赖&…

常用JVM配置参数简介

既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现在就告诉你怎么打印。 (1)如果你用的是…

Elasticsearch7.8.0版本高级查询—— 分页查询文档

目录一、初始化文档数据二、分页查询文档2.1、概述2.2、示例一、初始化文档数据 在 Postman 中,向 ES 服务器发 POST 请求 :http://localhost:9200/user/_doc/1,请求体内容为: { "name":"zhangsan", "ag…

数据分析-深度学习 Pytorch Day8

一。什么是循环神经网络:循环神经网络(Rerrent Neural Network, RNN),历史啊,谁发明的都不重要,说了你也记不住,你只要记住RNN是神经网络的一种,类似的还有深度神经网络DNN&#xff…

广州周立功CanTest卡使用教程一

网上有不少Can采集平台,包括Ardunio,Can卡,也有不少人用Freescale自己DIY一个平台,这些都是相当不错,并且都有成熟的代码,这里介绍在汽车诊断软件领域普遍都会选择的Can卡使用。 大家是不是对这个节面非常熟悉,CAN-bus 通用测试软件是一个专门用来对所有的 ZLGCAN 系列板…

【Python】基于经典网络架构训练图像分类模型——图像识别模型与训练策略(2023年1月22日,大年初一,春节快乐,兔年大吉)

声明:仅学习使用~ 今天是大年初一,祝大家新年快乐!!! 这个练习使用的图片稍多,因此初次在PyCharm里面可能会需要一些时间。 (注释中包含遇到的一些错误以及修正,同时也含有一些输出,部分较长的输出以省略号的形式在注释里面展示了) 2023.1.22,大年初一,新年快乐…

LoadBalancer源码解析

文章目录一、背景二、总体流程三、源码解析1. lb拦截器配置2. LB拦截器实现3. LB执行前置处理4. 负载均衡5. LB执行http请求一、背景 Spring Cloud 2020版本以后,默认移除了对Netflix的依赖,其中就包括Ribbon,官方默认推荐使用Spring Cloud …

生物化学 电阻抗成像OpenEIT 番外篇 EIT公式

EIT简介 摘要电阻抗断层扫描(EIT)是一种成像方式,使用无害的电流探测患者或物体。电流通过放置在靶表面上的电极馈送,数据由在电极处测量的电压组成,这些电压由一组线性独立的电流注入模式产生。EIT旨在恢复目标内部电…

【MySQL】第八部分 加密和解密函数

【MySQL】第八部分 加密和解密函数 文章目录【MySQL】第八部分 加密和解密函数8. 加密和解密函数总结8. 加密和解密函数 函数用法PASSWORD(str)返回字符串str的加密版本,41位长的字符串。加密结果不可逆,常用于用户的密码加密.( 8.0 版本以上不能用)MD5…

海湾化学冲刺上交所上市:计划募资30亿元,华融曾是其股东

近日,青岛海湾化学股份有限公司(下称“海湾化学”)预披露招股书,准备在上海证券交易所主板上市。本次冲刺上市,海湾化学计划募资30亿元,将于37.5万吨/年环氧氯丙烷绿色循环经济项目(一期&#x…

23种设计模式(十七)——状态模式【状态变化】

状态模式 文章目录 状态模式意图什么时候使用状态真实世界类比状态模式的实现状态模式的优缺点亦称:State 意图 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 状态模式的解决思想是:当控制一个对象状态转…

【沐风老师】教你用3dMax柱子插件Pillars打造欧式罗马柱建模(附柱子插件下载)

Pillars是一个很棒的3dMax插件。Pillars可以创建柱子、柱状物、栏杆、喷泉(喷泉建筑的造型)和各种类似形状的三维模型。它也会破坏(打断)这些模型。有了它,您只需在几秒钟内就能制作出外观精美的柱子和效果逼真的断面效…

4、JDK相关设置

文章目录4、JDK相关设置4.1 设置项目的JDK4.2 设置编译版本4.3 设置out目录【尚硅谷】idea实战教程-讲师:宋红康 生活是属于每个人自己的感受,不属于任何别人的看法 4、JDK相关设置 4.1 设置项目的JDK SDK:软件开发工具包 JDK:Ja…

灭火器摆放识别检测算法 yolo

灭火器摆放识别检测算法通过pythonyolo网络深度学习技术,自动对指定区域灭火器是否缺失进行识别,如果 没有检测到指定区域有灭火器,立即抓拍存档进行告警。YOLO系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类…

Elasticsearch基本使用初体验02

1.Java API操作ES 1.1 创建项目 创建spring Boot工程&#xff0c;添加相关的依赖。 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><…

基于ssm校园学生协会管理系统jsp校园社团管理系统源码和论文

1、开发环境 &#xff08;1&#xff09;操作系统: Windows10 &#xff08;2&#xff09;数据库与数据库管理工具: MySQL 5.7.19、Navicat for MySQL &#xff08;3&#xff09;Web服务器: Tomcat8.5.38 &#xff08;4&#xff09;开发工具与技术: Eclipse IDEA、SSM框架、Ajax …

2023寒假算法集训营3

&#xff08;数学场真折磨人&#xff09; A. 不断减损的时间&#xff08;贪心&#xff09; 题意&#xff1a; 给定一个数组&#xff0c;任意次操作&#xff0c;每次操作可以 选择一个偶数除以 222 。 求最终数组所有元素之和的最小值。 思路&#xff1a; 要使得所有元素之…

三十四、Kubernetes1.25中Ingress介绍、安装

1、介绍 在前面文章中已经提到&#xff0c;Service对集群之外暴露服务的主要方式有两种&#xff1a;NotePort和LoadBalancer&#xff0c;但是这两种方式&#xff0c;都有一定的缺点&#xff1a; NodePort方式的缺点是会占用很多集群机器的端口&#xff0c;那么当集群服务变多的…

【JavaSE专栏2】JDK、JRE和JVM

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…