Skip to content

Web应用技术分类

  • 从架构来看:

  • 从缓存来看:

  • 从并发分流来看:

  • 从数据库来看:

  • 从持久化来看:Hibernate,Mybatis。

  • 从分布存储来看:Hadoop,FastDFS,区块链。

  • 从数据编码看:

  • 从Web应用服务器来看:Apache,WebSphere,Weblogic,Tomcat,JB0SS,IIS。

  • 其它:


Web 技术演变

image.png

  • 应用服务器集群,存在问题:用户的请求由谁来转发到具体的应用服务器;用户如果每次访问到的服务器不一样,那么如何维护session的一致性。

image.png

  • 采用负载均衡技术

image.png

  • 数据库集群:分为主从库

image.png

  • 用缓存缓解库读取压力

image.png

CDN

  • CDN的全称是Content Delivery Network,即
  • CDN是,依靠,通过,提高用户访问响应速度和命中率。CDN的关键技术主要有
  • CND 的基本原理是,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

REST(表述性状态传递)

  • REST(Representational State Transfer,表述性状态转移)是一种,可以降低开发的复杂性,提高系统的可伸缩性。

REST的5个原则

  • (1)网络上的
  • (2)每个资源对应
  • (3)通过
  • (4)对资源的
  • (5)所有的操作都是

微服务

微服务的优势:

  • (1。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。
  • (2),开发者能够自由选择可行的技术,让服务来决定 API约定。
  • (3),开发者不必协调对于本地服务配置上的变化,这种变化一旦测试完成就被配置了。
  • (4,你可以给每个服务配置正好满足容量和可用性限制的实例数。

微服务架构带来的挑战:

  • (1)。例如一些数据库层的底层操作是不推荐服务化的。
  • (2):系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
  • (3):由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。例如一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数据传输,如果是频繁访问,则可能带来较大的延迟。
  • (4):作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。

XML & JSON

XML

  • (XML),用于,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
  • XML的优点:,数据共享比较方便。
  • XWL的缺点:XML,传输占带宽;服务器端和客户端都需要花费大量代码来解析 XWL,导致服务器端和客户端代码变得异常复杂且不易维护;客户端,需要重复编写很多代码;

JSON

JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。

  • JS0N的优点
    • 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;易于解析,客户端JavaScr ipt可以简单的通过eval)进行JSON数据的读取;
    • 支持多种语言,包括ActionScr ipt,C,C#,Col dFus ion,Java,JavaScript,Perl,PHP,Python,Ruby等服务器端语言,便于服务器端的解析;
    • 因为大大简化了服务器端和客户端的代码开发量,旦完成任务不变,并且易于维护。
  • JSON的缺点
    • 没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性。

  • ,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。
  • ,先后的请求是有关联的。
  • :是一种网络页面设计布局,其理念是:集中创建页面的图片排版大小,可以

方法与策略

  • ( 1 )采用流式布局和弹性化设计:使用相对单位,而非具体值的方式设置页面元素的大小。
  • (2)响应式图片:不仅要同比的缩放图片,还要在

练习题

练习题1

某气象局计划开发新一代气象Wb应用,该应用需要满足以下需求: 支持多种客户端访问:PC端浏览器、移动端APP、微信小程序 整合多源气象数据:第三方气象API、地面气象站、雷达/卫星数据和历史地面观测数据 提供实时天气查询、天气预报等功能 要求系统具有高可用性、可扩展性和良好的用户体验 技术团队决定采用前后端分离的架构,并基于微服务进行系统设计。初步设计架构图如下:

image.png

  • 问题1 (7分):请阐述前后端分离的概念及其在气象W®b应用中的三个主要优势。
  • 问题2(8分):请比较MWP(Model--View-Presenter.)和 MVVM(Model--View-ViewModel) 两种架构模式,完成下表空白部分的填写:

image.png

问题3(10分):根据气象Web应用的架构图,请填写图中缺失的组件(1)-(5)


问题1:

前后端分离是一种软件架构模式,

在气象Web应用中的三个主要优势:

问题2:

  • (1)Presenter
  • (2)双向数据绑定,自动同步
  • (3)
  • (4)

问题3:

  • (1)
  • (2)
  • (3)
  • (4)
  • (5)

练习题2

某公司拟开发一个电商平台用户行为分析系统,该系统可支持对电商平台用户行为数据的采集和实时/高效数据处理分析,统计分析用户访问情况。

搜集PV/UV商品热度等相关数据。系统应具备以下能力

  • (1)对海量用户行为数据的存储和处理能力
  • (2)为适应用户行为的随机性,保证系统不会被爆发的日志数据压垮,系统应具备对突发流量的处理能力
  • (3)对用户数据的营私保护能力

针对项目需求,工时召开会议,会上张工提出买那个对大量数据,传统的文件存储于关系型数据库,无法完全解决当前系统问题,应基于大数据技术设计并实现系统,李工提出可就要数据脱敏的方法解决用户隐私的问题。

【问题1】

根据项目要求,该系统需考虑电商平台用户行为的随机性,具有应对突发数据,流量数据的处理能力。请基于大数据相关技术的了解,说明可选那个技术支持流系统应对突发流量暴增情况?并用200字以内说明该技术优势。

【问题2】

根据张工建议,项目组拟采用大数据技术开发该系统。图5给出本项目架构设计方案,请选择(a)~(m)选项中选出合适的内容,完善(1)~(7)处

(a)网络层、(b)业务层、(c)接入层、(d)数据处理、(e)数据采集、(f)Flink实时计算、(g)Flink批处理、(h)Hbase、(i)Redis、(j)NoSQL、(k)kafka、(I)边缘计算、(m)设备层


image.png


【问题3】

根据李工的建议,项目组拟应用数据脱敏方法对该系统的敏感数据进行脱敏。请用300字以内文字说明常用5种数据脱敏方法。


答案:

【问题1】

可选流系统应对突发流量暴增情况。

消息中间件具有的技术优势:

  • (1)异步通信,通过消息中间件,不同的服务之间进行异步通信,可以提高系统的吞吐量和并发性能。
  • (2),将消息发送方和接受方进行解耦,从而能独立开发和部署,提高系统的可扩展性和可维护性。
  • (3,可以设置流量控制,当消息量过大时,暂停消息的发送,流量小时,继续发送,实现削峰填谷功能。也可以作为消息缓冲功能,作为缓冲区暂存消息,从而实现系统的负载和压力。

【问题2】

(1 ) c (2) k (3) 业务层 (4) (5) (6) (7) i

【问题3】

常用为:

  • (1)替换。将字符或整数值替换为查找或标准模式中的字符或整数值。例如,可以用列表中的随机值替换名字。
  • (2)混排。在一个记录中交换相同类型的数据元素或者在不同行之间交换同一属性的数据元素。例如,在供应商发票中混排供应商名称,以便将发票上的原始供应商替换为其他有效供应商。
  • (3)时空变异。把日期前后移动若干天(小到足以保留趋势),足以使它无法识别。
  • (4)数值变异。应用一个随机因素(正负一个百分比,小到足以保持趋势),重要到足以使它不可识别。
  • (5)取消或删除。删除不应出现在测试系统中的数据。

👆 理解一下上面脱敏的目的,丢精度,保特征;丢个体,保群体;丢真实值,保可用性,因为这里本身做的是趋势之类的操作,但是考虑到数据敏感性,你获取的时候要处理之后给你使用,但是不影响你主体功能(你分析是照常的,只是不是原始数据)。


练习题3

阅读以下关于Web应用开发的描述,在答题纸上回答问题1至问题3。

【说明】

某大型电商平台计划开发一个全新的在线购物系统,该系统旨在提供丰富的商品选择、便捷的购物流程、智能的推荐系统以及高效的物流跟踪等功能。为了应对高并发访问、海量数据处理和快速业务变化的需求,系统决定采用微服务架构进行开发。系统被划分为用户中心服务、商品管理服务、订单处理服务、支付服务、物流跟踪服务、推荐系统服务等多个微服务。

在系统开发过程中,团队遇到了如何有效管理微服务间的通信和数据一致性,以及如何在保证系统高性能的同时,实现业务的快速迭代和扩展。团队中的王工提出了使用RESTful API进行微服务间通信,并结合分布式缓存技术来优化系统性能,而张工则建议引入服务治理框架和容器化技术来增强系统的稳定性和可扩展性。


【问题1】(10分)

请以200字以内的文字说明在微服务架构中RESTful API的优势。

【参考答案】

  1. 提供了标准的通信方式,使得微服务间可以基于HTTP协议进行通信,简化了服务间的集成。
  2. 使用统一的资源标识和操作方法(如GET、POST、PUT、DELETE),使得服务间的交互更加直观和易于理解。
  3. 支持无状态通信,每个请求都包含足够的信息供服务器处理,无需在多个请求间维护状态。
  4. 支持缓存,通过HTTP头信息可以控制缓存行为,提高系统性能。
  5. 易于扩展,可以随着业务的发展轻松添加新的资源和方法。

【问题2】(10分)

请以300字以内的文字阐述容器化技术在微服务架构中的作用。

【参考答案】

  1. 环境一致性:容器化技术能够将微服务及其所有依赖项打包成一个独立的运行单元,确保在不同环境中(开发、测试、生产等)运行的一致性。
  2. 资源隔离:通过容器化,每个微服务都被封装在自己的容器中,实现了资源(如CPU、内存、网络等)的隔离,避免了微服务之间的资源竞争和冲突。
  3. 快速部署与伸缩:容器化技术使得微服务的部署和扩展变得更加简单和高效。通过使用容器编排工具,可以实现自动化的部署、伸缩和管理。
  4. 简化运维:容器化技术简化了运维工作。通过容器编排工具,可以轻松地监控服务、重启服务、日志收集、故障排查等,提高了运维效率。
  5. 提升效率:相比于物理主机和虚拟主机,容器化技术通过减少资源开销和优化资源利用,提升了微服务的效率。

【问题3】(5分)

请比较服务网格技术(Service Mesh)与企业服务总线(Enterprise Service Bus, ESB)的差异,并填写下表。

特性服务网格企业服务总线
实现原理(1)轻量级的基础设施层重量级的中间件
作用(2)剥离并确保微服务间的通信、安全、监控和治理通过消息路由、转换和管理实现服务的集成
治理能力熔断、限流等(3)服务注册与管理、负载均衡、容错等
调用方式透明的分布式代理(4)指定的调用接口
适用场景(5)服务数量众多、通信复杂且需要高可靠性和安全性的云应用整合少量内部功能完善的服务实现服务共享和重用