假设性思考~~~~
如果企业级开发中, 系统这样设计, 能否满足各类系统需求
-------- 第一阶段限制
1. 系统中所有的对象只有以下两种情况
a) 常量bean, 常量,不会改变的数据,固定配置,固定参数
a) 数据bean, 拥有getter,setter方法的纯javabean对象,均可持久化,如POJO,DTO
b) 服务bean, 即bean组件, spring管理下的bean组件,如DAO,MO,AO,SO
i. 对象的成员变量只能是bean组件
ii. 空参构造函数, 无需初使化
iii. 对象的方法的参数和返回类型必须为ID数据或数据bean
2. 数据bean均需持久化管理,或者持久化到数据库服务器,或者持久化到缓冲服务器. 方法退出后,此bean中不可以保持任何引用.
3. 数据bean的获取只能来源于
a) HTTP请求参数
b) 缓冲服务器
c) 数据库服务器
d) 其它的外部服务
4. 数据bean不能来源于当前服务器的内存缓冲或者全局变量或者本地硬盘
5. 数据bean在每台服务器获取后,都应该是一致的,不存在不同步的情况
6. 数据bean是无状态的,与服务器无关,因此bean是一致的
7. 数据bean的一致性由缓冲服务器,数据库服务器,或其它外部服务来保证
8. 换句话说, 所有服务在等待请求状态时, 本地服务器不可以保持任何数据bean的引用.
9. 服务bean中每个方法,只能接受数据bean做为参数,也只能返回数据bean做为结果
10.服务bean中每个方法,如果根据每个bean调用外部服务获取的数据一致,则相同的参数,必须返回相同的结果
11.服务bean中每个变量,不能是数据bean,只能是常量bean或者服务bean的引用,
12.服务bean中每个方法,不能依赖于成员变量, 没有上下文参数, 即此类对象性质等同于工具类助手类对象, 可实现单例模式
13.服务器集群=任意个应用服务器+外部服务器,应用服务器单点故障不会影响业务轮转
------------- 第二阶段
1. 由于数据bean是可序列化的,因此可以用固定的字符串ID来表示相应的数据bean
2. 如果数据bean实现版本管理,可以通过 id.version 来确定唯一的数据
3. 组合id.version与数据bean后产生的数据bean, 等同于常量bean
4. 由于服务bean可实现单例,因此服务bean可以用固定的字符串name来确定唯一的服务bean
5. 服务bean可以byName方式或byType注入, 再加上空参构造
------------- 第三阶段
1. 外部服务器上实现字符串ID获取最新版本的数据bean
2. 本地服务器上实现字符串name获取唯一版本的服务bean
3. 本地服务器上实现字符串name+方法名name获取服务bean指定的方法
4. 由字符串name+方法名name确定唯一ID,来确定唯一方法
5. 客户端传入字符串ID及方法ID,传至服务器,可返回唯一的字符串ID
6. 字符串ID与方法ID,确定唯一的请求ID,可转换为字符串,也可逆转换
7. 这里的唯一ID,都可以理解为常量bean
------------- 第四阶段
1. 本地服务器只处理两种逻辑
a) 传入唯一字符串ID,去外部服务器获取结果bean
b) 根据字符串ID,方法ID,处理后返回结果bean
2. 本地服务器,外地服务器都可理解为数据bean的转换器
3. 唯一ID可用来标识
a) 常量bean,数据bean,服务bean,服务bean的每种请求
4. 可使用缓冲服务器或代理服务器来缓冲唯一ID对应的各类数据
------------- 第五阶段
1. 使用URL规范来表示唯一请求ID,传至服务器,返回唯一的HTML代码
2. HTTP协议中相同的URL,在服务端数据版本相同时,应该返回相同的HTML
3. HTTP协议中与上下文参数相关的数据,应保存在HTTP.HEADER中,如处理服务器的ID,处理时间,处理版本,处理参数
4. 由HTTP协议中的last-modified,etag来标识服务端的版本号,由max-age,Expire来标识版本的生命周期
5. HTTP请求,对与相同的URL,相同版本,在生命周期内,返回唯一的HTML结果
------------------------------------>
假设以下皆可实现
1. 对数据bean操作自动保存至缓冲服务器, 根据缓冲策略刷新至数据库服务器
2. 缓冲服务器选择性支持以下缓冲,单条缓冲,分页缓冲,TOP缓冲,分类缓冲,自增缓冲
3. 数据bean是有版本的,服务bean,及服务bean中的每个方法也是有版本的
------------------------------------>
高性能WEB服务
1. 由代理服务器或者缓冲服务器缓冲HTTP结果,如果版本未更新,则返回304或者缓冲的内容
2. 当缓冲生命周期结束后,由代理服务器去应用服务器验证每个数据bean及方法的版本,如果数据及方法的版本均未改变,则返回304或者缓冲的内容
3. 如果数据bean或者方法bean更新,则由方法处理返回最新版本的结果bean,并通知代理服务器或者缓冲服务器更新版本
未完待续...
分享到:
相关推荐
时间域可伸缩性通过改变帧率来适应不同的播放条件,空间域可伸缩性通过亚取样来降低图像分辨率,而频率域可伸缩性则通过分割DCT系数频带来控制频带宽度,以提供不同质量的视频流。 综上所述,视频数据的分组传输...
2. 橡胶垫片:具有良好的弹性和可压缩性,能在伸缩缝活动中吸收和缓冲墙体的相对位移,减少对墙体的直接拉伸或压缩。橡胶垫片特别适用于需要较大变形能力的场合。 3. 滑动支座:允许墙体在一定范围内沿水平或垂直...
它使用Remote Direct Memory Access (RDMA) 与 PowerHA pureScale 服务器通信,无需经过IP套接字调用、中断或上下文切换,从而为大量服务器提供接近线性的可伸缩性。另外,该技术可以持续感知各成员节点的工作状态,...
无锁设计通常基于原子操作,如 CAS(Compare-and-Swap),这样可以避免传统锁机制带来的竞态条件和死锁问题,从而提高系统的并行性和可伸缩性。lfchan 就是基于这样的理念设计的,它在多线程之间传递消息时,减少了...
演讲的主要目的是介绍KVM虚拟机管理程序的可伸缩性改进方向。以下内容将针对KVM Hypervisor的可伸缩性提升及其相关技术知识点进行详细介绍。 背景部分: 在虚拟机环境下,操作系统级别的同步原语,如锁机制、TLB...
- 介绍如何通过分布式架构来提高系统的性能和可伸缩性。 - 例如,使用读写分离来分散查询和写入操作的压力。 **3. 分库&拆表方案** - 如何根据业务需求和数据特性进行合理的分库和拆表。 - 例如,将高频查询的数据...
在工作台底面的中央,定位块与支撑杆的配合设计,通过压缩弹簧提供缓冲,增加了整体装置的稳定性和耐用性。 综合该角度调节装置的众多设计优势,可见它具备了高度的实用价值和市场竞争力。其不仅提升了消防水泵安装...
1. 结构设计:防摔装置可能包含可伸缩的支架或者弹簧结构,这些设计能在笔落地时提供额外支撑,减少直接碰撞。此外,装置的外形应与笔身紧密贴合,确保在掉落过程中保持稳定。 2. 缓震材料:选用高弹性、吸能效果好...
综上所述,这款便于移动的消防用沙箱充分考虑了现代消防作业的实际需求,通过引入万向轮、缓冲组件、电机驱动限位系统以及加固设计等多重创新,显著提高了沙箱的移动性能和使用稳定性。在提高消防应急效率、降低人力...
- **Netty** 是一款基于 Java NIO 的高性能、可伸缩的客户端/服务器框架,用于快速开发可靠的企业级网络应用程序。其核心特性在于能够通过异步非阻塞I/O模型来提高应用程序的性能。 - **为什么使用 Non-Blocking IO...
伸缩杆采用弹簧设计,除了提供良好的缓冲性能外,还具有一定的适应性,使得装置能够稳定地工作在不同的环境中。 相较于现有的海鲜菇培育设备,本文介绍的海鲜菇搔菌装置具有明显的优势。它通过整合掻菌和注水功能,...
1. **Records(记录类)**:这是一种新的类概念,它简化了创建不可变、无状态、数据载体类的过程,自动实现了equals()、hashCode()和toString()方法。 2. **Sealed Classes(密封类)**:允许限制哪些其他类可以...
PLC系统作为自动化设备的神经中枢,负责接收和处理来自多个传感器和开关的信号,这些信号涵盖了螺钉的位置、工件的位置、气缸的伸缩状态以及电批的旋转与停止等多种状态。通过PLC程序的精确编程,设备能够对装配过程...
与单作用气缸不同,双作用气缸具有可调节的终端位置缓冲功能。通过两个常规的调节螺丝,操作者可以精准地设置气缸在伸展或收缩时到达终点前的速度,以此减缓气缸杆接近终点时的速度,降低因冲击带来的损害。此外,...
- 适中的粒度,既能充分利用并行性,又能避免细粒度任务带来的调度开销。 - 动态调整粒度,以保持负载均衡。 ##### 4. 同步 - **定义**:避免不必要的同步操作,以最大化并行效率。 - **策略**: - 使用轻量级...
而通常的应用服务是静态的,只有当用户登录时,才会进行相应的业务状态的检查,这样就严重影响了业务处理的速度,对于即时性业务,就会带来很大的损失。 多级负载 平台是一个多租赁用户的在线SaaS系统,因此...
- **弹性伸缩**:可以动态地添加或减少节点,以适应数据量的增长或减少。 2. **IK分词器**: - **IK Analyzer**:这是一个针对中文处理的开源分词器,适用于各种NLP任务,如搜索引擎、文本分析等。它支持自定义...
分布式服务框架则是将多个独立的服务节点组织起来,形成一个可以协同工作的系统,以提高系统的可用性和伸缩性。 **Netty关键特性** 1. **异步非阻塞I/O**:Netty采用NIO(非阻塞I/O)模型,能够处理大量并发连接,...