架构概论及架构演变史

简介: 架构概论及架构演变史

架构概论

  • Reliable Scalable Distributed(可靠的、可扩展的、分布式的),高并发,可靠性,性能
  • Distributed Middleware(分布式中间件)
  • Micro Service(微服务)
  • DevOps(开发运维一体化),Docker,K8s,CI/CD
  • Service Mesh,解决性能问题,每一个物理节点上有一个代理节点,节点与节点之间通信,代理节点完成末端的统一接口,这样就可以让我们的集群网络通信、开发成本降低
  • AIOps(人工智能运维)
  • ChatOps(聊天室运维)
  • Serviceless(无服务化)

顶层设计

  • 按需、预期未来,规划企业架构
  • 业务全局出发,制定可落地的架构方案
  • 技术选型、难题解决规划
  • 方案与代码,广度与深度
  • 技术+管理(人,资源,技术)

核心需求

  • 分布式、高并发、高性能、高可用、可扩展、松耦合、高内聚、可复用、边界、安全、成本、规模等等
  • 服务、缓存、消息、搜索、调度、任务、数据、监控、配置、网关等等
  • Paxos、CAP、BASE、ACID、raft、rpc、Reactor、SLA、SLB等等

关键词汇

  • 缓冲 Buffer:解决上下游速度不匹配的问题,消息队列、批处理都属于 Buffer
  • 缓存 Cache:解决 I/O 性能问题,在内存中存储热点数据,提升慢速磁盘 I/O 和程序使用的过程,PageCache、内存到 CPU 中的三级缓存、Redis、本地缓存等都属于 Cache
  • 复用 Pool:降低复杂度,提升性能,连接池、线程池、内存池、对象池都属于 Pool
  • 分治 Sharding:分而治之,单机、集群都适用,降低时间复杂度
  • 亲密(粘性)sticky:让某一个线程亲密到某一颗 CPU上,将相同 id 的商品路由到一台机器上,或者是将相同 ip 地址/相同 session 在负载均衡时负载到一台机器上,这样可以减少资源的重复分配,ThreadLocal、数据路由等都属于 sticky
  • 权衡 Balance or trade-off:技术选型,在技术之间做一个均衡

喝啤酒理论:假设你住在24层,在1层有12瓶啤酒,现在你想喝啤酒,但是有一个要求,你必须把啤酒从1层带到24层去喝,你可以有两种选择:一种是每次拿1瓶回去喝,另一种是拿个箱子把12瓶酒全部装回去喝。很显然,第二种方式是更优的,它相比第一种方式,减少了来回跑动所付出的代价。这种理论实际上就体现了缓冲的概念。

技术词汇:

  • QPS:Queries Per Second(2/8 定理:0.8并发量/0.2天秒)
  • TPS:Transactions Per Second
  • RT:Response-time
  • PV:Page View
  • UV:Unique Visitor
  • 并发数:同时访问服务器站点的连接数
  • 线程数:((挂起时间+运行时间)/ 运行时间 )* CPU 2倍(状态(挂起,运行)->时间)

各种中间件的性能:https://help.aliyun.com/

书籍推荐

1、大型网站技术架构:核心原理与案例分析

2、分布式服务框架原理与实践

3、互联网创业核心技术:构建可伸缩的web应用

4、高扩展性网站的50条原则

5、架构即未来:现代企业可扩展的Web架构、流程和组织

6、系统架构:复杂系统的产品设计与开发

7、Java性能优化权威指南

8、大规模分布式存储系统:原理解析与架构实战

9、大规模分布式系统架构与设计实战

10、企业IT架构转型之道:阿里巴巴中台战略思想与架构实战

11、尽在双11:阿里巴巴技术演进与超越

12、大型网站系统与Java中间件实践

13、架构探险—从零开始写Java Web框架

14、架构探险:从零开始写分布式服务框架

15、软件架构师的12项修炼

16、Web信息架构设计大型网站

17、深入分析Java Web技术内幕(修订版)

18、实用负载均衡技术:网站性能优化攻略

19、ZeroC Ice权威指南

20、架构之美

从过去到未来

  • 从web server到web container
  • Servlet从NIO到WebSocket
  • 同步到异步

架构演进.jpg

AFK拆分原则

  • 前后端分离原则
  • 服务无状态原则
  • 通信无状态原则

微服务划分参考AKF.jpg



目录
相关文章
|
6月前
|
Java 开发者 微服务
Java企业应用软件系统架构演变史
Java企业应用软件系统架构演变史
94 0
|
6月前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103583 9
|
存储 缓存 负载均衡
高性能、高可用平台架构演变史
原文:高性能、高可用平台架构演变史 开篇概述 在如今移动互联网、互联网+、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。 对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳定性是否良好?估计是对所有互联网平台来说两大头等要素吧,的确,移动互联网时代,流量就是市场价值,说白了就是收益,就是RMB,失去了流量,那么你也就失去了赚取收益的机会与机遇。
1597 0
|
NoSQL 关系型数据库 MySQL
网站平台架构演变史(五) - 总结
在大环境下的数据库主要有两种情况会出现负重过载: 1. 海量数据的实时统计,比如报表统计 2. 数据库连接数不够用,网站瞬时访问数过大 在这次分享会上有人提出了mysql集群的概念,其实mysql集群用的并不多,因为mysql用来做集群维护成本实在太高了,而且据我了解没有几个大项目才用了mysql集群,正式投入生产环境的几乎没有。
866 0
|
搜索推荐 大数据 数据库
网站平台架构演变史(四) - 水平拆分的查询
之前在讲表拆分的时候氛围垂直拆分和水平拆分 垂直拆分的查询其实不难,就是从单表变为了多表,而大部分情况下只是对主表的查询多,从表的查询会很少用到,这样的情况下关联查询不需要太多的考虑 水平拆分之前讲了大数据量的情况下根据历史时间来查询,那么今天来说另外一种,还有一只是根据主键id取模后根据这样的规则...
918 0
|
新零售 存储 大数据
网站平台架构演变史(三) - 数据库表的查询优化
上篇说道了数据库读写分离,对于大型网站来说这么说是十分有必要的。数据库在整个互联网架构中担当的角色无法有两个,存储和运算,很多时候这两个是并存的,但是在后期,对于上亿条数据来说,让数据库既要存储,又要运算,那么是这是不可行的,为了保证性能,我们仅仅只需要最大化利用DB的存数就行了,连数据库之间的外键管理都不需要,只要有对应的id即可。
931 0
|
数据库
网站平台架构演变史(二)
上篇文章大致降了网站架构的一个大致发展趋势,这篇咱们讲讲数据库。数据库在大并发的情况下是最容易出现问题的,往往都是由于写操作引发的网站访问缓慢或者崩溃,之前说过12306就是这个问题。 大并发的时候,打个比方,上下班高峰期经常会堵车,我们把并发访问量当做车流量,某个路段路口比作数据库,某路口就这么大,3车道直行,而车流量巨大的时候就会引发大量车缓慢前行甚至不动,这个就是并发,交通瘫痪了嘛,数据库不也是一样瘫痪吗。
836 0
|
存储 NoSQL 关系型数据库
[转载]大型网站应用中 MySQL 的架构演变史
没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用。今天我们就从淘宝的发展来阐述MySQL在大型网站下的架构演变史! MySQL的可扩展性 架构的可扩展性往往和并发是息息相关,...
1663 0
|
XML 存储 数据库
窥探QQ基础数据库架构演变史
作为腾讯最核心最基础的后台服务之一,QQ基础数据库是存储QQ用户帐户信息和关系链信息的海量集群,它承载了百万级每秒的访问量、十亿级的账户数、百亿级关系链。如此大规模的集群,它是如何从300万的数量级一步一步演变而来?在它数据量不断增长的过程中,它经历了哪些困难,又是如何解决的?如今,它的架构是怎么样的?4月10日晚,腾讯大讲堂《QQ基础数据库架构演变之路》活动在武汉人文馆主厅举办。
1350 0