首页 > 其他分享 >【书】【看透 Spring MVC】

【书】【看透 Spring MVC】

时间:2023-03-11 22:15:30浏览次数:32  
标签:Session Spring 可以 看透 代理服务器 MVC 集群 IP 服务器

1  集群与分布式

集群和分布式处理都是使用多台服务器进行处理的,集群是每台服务器都具有相同的功能,处理请求时调用哪台服务器都可以,主要起分流的作用,分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器,这样就可以提高一个请求的处理速度,而且集群和分布式也可以同时使用,结构图如图所示。

集群有两个方式:一种是静态资源集群。另一种是应用程序集群。静态资源集群比较简单,而应用程序集群就有点复杂了。因为应用程序在处理过程中可能会使用到一些缓存的数据,如果集群就需要同步这些数据,其中最重要的就是 Session,Session 同步也是应用程序集群中非常核心的一个问题。Session 同步有两种处理方式:一种是在 Session 发生变化后自动同步到其他服务器,另外一种方式是用一个程序统一管理 Session。所有集群的服务器都使用同一个Session,Tomcat 默认使用的就是第一种方式,通过简单的配置就可以实现,第二种方式可以使用专门的服务器安装 Memcached 等高效的缓存程序来统一管理Session,然后在应用程序中通过重写Request并覆盖getSession 方法来获取指定服务器中的 Session。对于集群来说还有一个核心的问题就是负载均衡,也就是接收到一个请求后具体分配到哪个服务器去处理的问题,这个问题可以通过软件处理也可以使用专门的硬件(如F5)解决。

另外笔者还想到了一种思路可以简单地解决 Session 同步的问题,Session需要同步的本质原因就是要使用不同的服务器给同一个用户提供服务,如果负载均衡在分配请求时可以将同个用户(如按IP)分配到同一台服务器进行处理也就不需要 Session 同步了,而且这种方法般也不会对负载均衡带来太大的问题,如果考虑到稳定性,为了防止有机器宕机后丢失数据还可以将集群的服务器分成多个组,然后在小范围的组(如2、3 台服务器)内同步 Session。

架设分布式应用程序是一件非常复杂的事情,Session 同步肯定是需要的,分布式事务处理和各个节点之间复杂的依赖关系也是分布式中非常复杂的问题,如果要使用分布式一定要做好足够的准备。

2  反向代理

反向代理指的是客户端直接访问的服务器并不真正提供服务,它从别的服务器获取资源然后将结果返回给用户的,如图所示。

反向代理服务器可以和实际处理请求的服务器在同一台主机上,而且一台反向代理服务器也可以访问多台实际处理请求的服务器。反向代理服务器主要有三个作用:D可以作为前端服务器跟实际处理请求的服务器(如 Tomcat)集成;2可以用做负载均衡;3转发请求,比如,可以将不同类型的资源请求转发到不同的服务器去处理,可以将动态资源转发到 Tomcat.Php 等动态程序而将图片等静态资源的请求转发到静态资源的服务器,另外也可以在 url 地结构发生变化后将新地址转发到原来的旧地址上。

3  反向代理服务器和代理服务器的区别

代理服务器的作用是代我们获取想要的资源然后将结果返回给我们,所要获取的资源是我们主动告诉代理服务器的,比如,我们想访问 Facebook,但是直接访问不了,这时就可以让代理服务器访问,然后将结果返回给我们。
反向代理服务器是我们正常访问一台服务器的时候,服务器自已调用了别的服务器的资源并将结果返回给我们,我们自己并不知道。
代理服务器是我们主动使用的,是为我们服务的,它不需要有自己的域名;反向代理服务器是服务器自己使用的,我们并不知道,它有自己的域名,我们访问它跟访问正常的网址没有任何区别。

4  BS 结构网络传输的分解

BS 结构网络传输的分解方式有两种:一种是标准的OSI参考模型,另一种是 TCP/IP 参考模型。它们的分层方式及对应关系如图所示。

OSI参考模型一共分7层,不过它主要用于教学,实际使用中更多的是 TCP/IP 的4层模型。对于TCP/IP的4层模型可以简单地理解为:
这种分层模型非常容易理解,就好像我们要在网上买东西,首先要确定自己所在的位置有相应的快递,这就相当于网络接入层,然后需要告诉卖家地址,地址就相当于网际互联层
快递送货相当于传输层,最后我们收到货物之后拆包使用就相当于应用层。

对于广泛使用的东西就需要制定相应的标准,没有规矩不成方圆,如果都按自己的想法去做就乱套了。对一个小作坊来说,做事情可以比较随意,但是一个大型公司就需要有很多制度来规范做事情的流程了。由于网络传输应用非常广泛,所以需要大家都遵守的规矩,不过网络传输中的这些规知并不是强制性的,所以不叫制度也不叫标准而叫协议,其实TCP/IP参考模型也可以看作一种协议。BS 结构中TCP/IP 模型中的网络接入层没有相应协议,网际互联层是IP协议,传输层是 TCP 协议,应用层是HTTP 协议。
数据传输的本质就是按照晶振震动周期或者其整数倍来传输代表 0/1 的高低电平,传输过程中最核心就是各种传输协议,对直接连接的硬件来说就是各种总线协议,对网络传输来说就是网络协议,如果将传输的协议弄明白了,那么也就掌握了传输的核心,第2章会介绍BS 结构中常用的协议和标准。下面先接着看网站架构的演变过程,开发一套前面介绍的那种BS 结构的程序并非难事,特别是使用现在成形的框架来做就更加简单了,只需要写好核心的业务就可以了。不过这种基础架构的网站虽然可以用但并不代表好用,除了用户交互(那是另外一个话题),最重要的就是速度问题。如果打开一个连接的时间都可以喝完一杯咖啡,那样的系统能不能使用就看每个人自己的理解了。

 

标签:Session,Spring,可以,看透,代理服务器,MVC,集群,IP,服务器
From: https://www.cnblogs.com/kukuxjx/p/17206127.html

相关文章

  • Spring JDBC和 事务控制
    SpringJDBC和事务控制1.主要内容2.Spring整合JDBC环境 Spring框架除了提供IOC与AOP核⼼功能外,同样提供了基于JDBC的数据访问功能,使得访问持久层数据更......
  • spring事务失效的场景
    spring事务的七种传播机制事务方法发生了相互调用,事务如何传播:a调用bREQUIRED(spring默认的事务传播级别):如果当前(a)没有事务,则(b)新建一个事务,如果当前存在事务,则加入这......
  • SpringMVC-day01
    SpringMVC-day01SpringMVC,底层是把Servlet、Filter、Listener再次封装课程内容SpringMVC介绍请求与响应RESTful风格请求交互SSM整合(注解版)拦截器学习目标掌握......
  • SpringMVC-day02
    SpringMVC-day0201_基于SSM的三层架构目标了解基于SSM框架的三层架构技术体系路径SSM框架的三层架构技术体系SSM框架的三层架构技术体系在三层架构开发时会......
  • Spring-day01
    Spring-day01#前置课程1.javase 1).面向对象:封装,继承,多态(面向接口) 2).反射 3).动态代理2.javaweb 1).servlet编程规范 2).网络编程3.数据库 1).......
  • Spring-day02
    Spring-day0201_开启Spring注解目标能够设置Spring的注解扫描路径注解开发的意义在配置文件中开启Spring注解扫描注解开发的意义在Spring中除了可以使用xml......
  • Spring-day03
    Spring-day0301_Spring的AOP概述目标了解AOP存在的意义及方式路径AOP介绍AOP作用AOP优势Spring中AOP的实现方式在前面我们提到:Spring技术的两大核心就是Ioc(......
  • Kuboard安装并部署springcloud微服务项目
    Kuboard安装并部署springcloud微服务项目Kuboard是一款k8s的管理界面,我认为它有页面美观(颜值即正义)、操作简洁、系统配置要求不高、对新手友好的特点。开发者认为他们......
  • Spring-初始Spring
    Spring1、简介Spring:春天:----给软件行业带来了春天2002年,首次推出了Spring框架的雏形:interface21框架2004年3月24号诞生RodJohnson,SpringFramework创始人,......
  • Spring-IOC理论浅析
    IOC理论最开始时业务实现:UserDao接口UserDaoImpl实现类UserService业务接口UserServiceImpl业务实现类在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们......