第一讲:互联网电商系统的演进过程

自1998年3月中国银行第一笔互联网交易完成到现在,互联网电商的发展已经经过了20多个年头,从传统的单机时代到如今热炒的中台架构,其架构系统也经历了很多次的更迭,架构的目标在于:高性能、高可用、可伸缩、安全性、扩展性、敏捷性。

其演进过程从部署层面:单机到集群、集中式到分布式、物理部署到云化

业务层面:单一mvc到垂直拆分,服务治理到微服务

数据层面:db到集群、单一关系数据到多样化的NoSQL,搜索引擎,文件服务

我们以淘宝的发展为例,来看以下架构的演进过程。

目录

一,单机时代:

二、数据分离:

三、数据缓存:

四、应用集群:

五、读写分离:

六、分库分表:

七、动静分离:

八、多层代理 :

九,跨机房:

十、异构数据:

十一:业务线拆分:

十二:服务化:

十三:中台化

十四、容器化


一,单机时代:

特点:采用web包部署,部署简单,追求单机性能,对于jvm单节点调优要求较高。但是随着业务的发展,访问量的上升,单机的性能很快会成为系统瓶颈。

二、数据分离:

特点:

1、tomcat与mysql各自占用不同的机器资源,tomcat应用机更关注内存和CPU,mysql更注重id与磁盘性能,针对各自的情况实现扩容。

2,需要跨机器访问数据库,链接密码需要主要注意方法泄漏,同时数据库频发读写,IO很快成为瓶颈。

三、数据缓存:

特点:

1,数据冷热划分,其中redis为缓存提供了强大的支持,性能可靠,纯内存、集群、哨兵、支持持久化,几乎成了当前缓存的标准解决方案。

2,缓存与DB数据的边界需要把握好,同时需要注意缓存雪崩,缓存击穿、缓存穿透等情况。

3,注意缓存数据与DB数据的数据一致性问题,采用删除或者双写等方式进行预防。

四、应用集群:

特点:

1,代理服务器存在软负载和硬负载,Nginx支持7层代理,性能强悍,配置简介,成了目前主流的解决方案。

h5:硬件负载,是土豪公司的不二选择。

2,集群环境下,需要主要session的保持,需要分布式session作为支撑。

3,分布式环境对于资源的加锁要求超出线程锁的范畴,上升为分布式锁。

4,日志管理:分散的日志不便于排查,促进集中式日志平台的产生。

5,服务升级:应用集群使得应用的滚动升级成为了可能,采用灰度发布等方式为滚动升级提供了有力的支持。

五、读写分离:

特点:

1,采用数据库的主从分离,一般情况下主库写数据,从库查数据,但是依然无法解决单表大数据问题:当订单数以亿计时在从库进行关联查询性依然是比较慢的。

六、分库分表:

特点:

1,采用业务分库:订单库、产品库、活动库、会员库

2,采用横向分表:3个月的订单、半年内的订单..

3,分库:无法使用数据库事务保证完整性,而分布式事务的效果并不理想,采用幂等和最终一致性等解决方案。

4,分表:数据聚合会出现矛盾,假如同一个用户在一年内多次下单,则在按照时间分表的解决方案中,以用户维度聚合和以时间维度聚合查询常常会出现矛盾。

5,分库分表的中间件:MyCat

七、动静分离:

特点:

1,静态响应:tomcat对于静态文件的响应性一般,则提取静态文件直接有Nginx代理服务器响应。

2,动态代理:后端api通过代理转发给tomcat应用服务器。

八、多层代理 :

特点:

1,在nginx前在加一层代理,作为流量的统一入库,在分发给下层的多个Nginx,静态资源得到扩容。

2,lvs依然是单一节点,及时keepalive做到高可用,流量依然需要在唯一的入口进入。

九,跨机房:

特点:

1,DNS轮询:通过配置多个IP将服务部署到多个机房,通过DNS的策略轮询调用,可以实现机房层面的扩容

2,CDN:就近原则,使用户获得就近的机房访问相关资源,自己投资太大,购买他们需要付费

3,基本解决了机器部署的扩容问题,随着业务的发展,数据层面多样性发展,底层异构化数据成为新的瓶颈。

十、异构数据:

特点:

1,NoSQL:商品特殊化属性、分布式文件存储系统、搜索引擎:商品信息库。solar,lucene

2,存储的数据多样化,要求开发框架架构层面要提供多样化的支撑,并确保访问易用性。

3,数据运维:多种数据服务器对运维的要求提升,机器的数据维护与灾备工作量加大。

4,数据安全:多种数据存储的权限,授权与访问隔离需要注意。

十一:业务线拆分:

以上架构在基础设施层面基本达到天花板,下面考虑业务层面的架构升级:

特点:

1,服务之间使用mq等异步消息进行通讯。

2,因为多个业务线占用不同的域名,出现多个主站,单点登录被推上前线。

3,粒度较粗:纯业务线为导向,往往会向行程业务团队各自为战,相同的功能在不同的业务项目中被重复开发,如:短信发送等业务。

十二:服务化:

特点:

1,重复开发的基础服务沉淀,行程服务中心,避免重复造轮子,降低成本,架构团队出现。

2,独立性:各自服务独立部署升级,粒度更细、高内聚,低耦合

3,SOA:服务治理,重在服务之间的拆分和统一接口

4,微服务:可以理解为服务治理的一种手段,取向与小服务的独立运作和部署

5,技术手段:springCloud ,dubbo

6,需要把握服务的粒度,设计不好会引发混乱,增加团队的开发成本。

7,部署升级:服务数量增多,自动化部署面临挑战

8,服务可用性:抽调的微服务被多个上层业务共享,可用性等级变高,一旦down机就是灾难。

9,熔断和限流:地方服务单点瓶颈造成整个系统瘫痪。

十三:中台化

技术沉淀行程了公共服务平台,业务沉淀逐步行程共享技术部,同时业务烟囱的壁垒推动业务中台成型。同时,组织结构同步升级,以技术共享为核心的技术中台,以数据为中心的数据数据中台同步建设得到实施。

特点:

1,业务沉淀形成了独立的中心,各个中心之间借助服务总线实现业务协作与服务重组。

2,团队规模扩张,协调成本增加,组织机构要有协调配套机制。

3,各个中心的授权接口与开发需要把控,接口的规范化日益重要,需要有统一的服务接口规范,推动企业消息总线的建设

4,跨服务令牌,实现服务之间的权限认证

十四、容器化

针对中台建设即微服务数量的飙升,部署和运维同步进行这变更,面临微服务的快速部署,资源的弹性伸缩等挑战,容器化与云被推进,例如:大促期间某些微服务的临时扩容

特点:

1,虚拟化、容器化、编排

vm、docker、k8s、云化

容器化解决了资源的快速伸缩,单仍需要企业自备大量预备资源,推动私有云到企业云的进化

资源预估:注意资源的回收,降低资源闲置和浪费,大促后及时回收

 

架构总结:

1,没有最好,只有最合适

2,原生优于定制,约定大于配置

3,简约

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于LSTM的财务因子预测选股模型LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值