Tomcat:Web 领域的闪耀明珠,魅力何在?

一、Web技术

HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。它的主要作用是在客户端和服务器之间传输超文本数据,如网页、图片、视频等。

HTTP 协议的特点

  1. 无状态性

    • HTTP 协议是无状态的,这意味着服务器不会记住客户端的状态信息。每次请求都是独立的,服务器不会根据之前的请求来处理当前请求。
    • 这种无状态性虽然提高了服务器的性能和可扩展性,但也给一些需要保持状态的应用带来了挑战。为了解决这个问题,通常会使用 Cookie 和 Session 等技术来在客户端和服务器之间保持状态。
  2. 基于请求 / 响应模式

    • HTTP 协议是基于请求 / 响应模式的。客户端向服务器发送请求,服务器接收到请求后进行处理,并返回响应。
    • 请求由三部分组成:请求方法、请求 URI 和 HTTP 版本号。响应也由三部分组成:状态行、响应头和响应体。
  3. 使用 TCP 作为传输层协议

    • HTTP 协议使用 TCP 作为传输层协议,这保证了数据的可靠传输。TCP 协议提供了面向连接、可靠的数据传输服务,确保数据能够准确无误地从客户端传输到服务器,再从服务器传输到客户端。
  4. 支持多种请求方法

    • HTTP 协议支持多种请求方法,如 GET、POST、PUT、DELETE、HEAD 等。不同的请求方法用于不同的目的,例如 GET 方法用于获取资源,POST 方法用于提交数据等。

B/S 结构(Browser/Server,浏览器 / 服务器模式)

B/S 结构是一种基于 Web 的软件架构模式,它将应用程序的界面展示和业务逻辑处理分离,客户端使用浏览器访问服务器上的应用程序。

  1. B/S 结构的组成

    • 客户端:客户端使用浏览器作为用户界面,通过 HTTP 协议与服务器进行通信。浏览器负责向用户展示应用程序的界面,并将用户的操作转换为 HTTP 请求发送给服务器。
    • 服务器:服务器负责处理客户端的请求,并返回相应的响应。服务器通常包括 Web 服务器、应用服务器和数据库服务器等。
    • 网络:网络用于连接客户端和服务器,实现数据的传输。
  2. B/S 结构的优点

    • 易于部署和维护:B/S 结构的应用程序只需要在服务器端进行部署和维护,客户端无需安装额外的软件。这大大降低了应用程序的部署和维护成本,提高了应用程序的可维护性和可扩展性。
    • 跨平台性:由于客户端使用浏览器作为用户界面,因此 B/S 结构的应用程序具有良好的跨平台性。只要有浏览器,就可以访问应用程序,不受操作系统和硬件平台的限制。
    • 良好的用户体验:浏览器提供了丰富的用户界面和交互功能,用户可以通过熟悉的浏览器界面进行操作,无需学习复杂的软件操作。此外,浏览器还可以支持多种媒体格式,如图片、视频、音频等,为用户提供更加丰富的体验。
    • 可扩展性强:B/S 结构的应用程序可以根据业务需求方便地扩展服务器端的功能。服务器端可以使用分布式架构和集群技术来提高应用程序的性能和可扩展性。

HTTP 协议在 B/S 结构中的作用

  1. 客户端与服务器之间的通信

    • 在 B/S 结构中,客户端和服务器之间的通信是通过 HTTP 协议进行的。客户端使用浏览器向服务器发送 HTTP 请求,服务器接收到请求后进行处理,并返回相应的 HTTP 响应。
    • HTTP 协议规定了请求和响应的格式和内容,使得客户端和服务器之间能够准确地理解对方的意图,并进行有效的通信。
  2. 资源的获取和传输

    • B/S 结构的应用程序通常需要从服务器获取各种资源,如网页、图片、视频等。这些资源都是通过 HTTP 协议进行传输的。
    • HTTP 协议支持多种资源类型的传输,如文本、图片、音频、视频等。它还支持资源的缓存和压缩,提高了资源的传输效率。
  3. 状态管理和会话控制

    • 虽然 HTTP 协议是无状态的,但在 B/S 结构的应用程序中,通常需要保持用户的状态信息,如登录状态、购物车信息等。为了解决这个问题,通常会使用 Cookie 和 Session 等技术来在客户端和服务器之间保持状态。
    • Cookie 是一种存储在客户端的小型文本文件,服务器可以通过设置 Cookie 来在客户端存储一些状态信息。客户端在每次请求时会自动将 Cookie 发送给服务器,服务器可以根据 Cookie 中的信息来识别用户的状态。
    • Session 是一种在服务器端存储用户状态信息的技术。服务器为每个用户创建一个 Session,并在 Session 中存储用户的状态信息。客户端在每次请求时会携带一个 Session ID,服务器可以根据 Session ID 来识别用户的 Session,并获取用户的状态信息。

 二、前端三大核心技术

前端三大核心技术通常指 HTML、CSS 和 JavaScript,它们共同构建了丰富多彩的网页世界。

HTML(超文本标记语言)

HTML 是网页内容的基石,它以一种简洁而直观的方式定义了网页的结构和内容。

  1. 基本结构与组成

    • HTML 文档由一系列的标签组成,这些标签用于描述网页中的不同元素。例如,<html>标签是整个网页的根元素,<head>标签包含了网页的元数据,如标题、字符编码等,<body>标签则包含了网页的实际内容。
    • 常见的 HTML 标签有<p>(段落)、<h1><h6>(标题)、<img>(图像)、<a>(链接)、<ul><li>(无序列表和列表项)等。每个标签都有特定的含义和用途,可以根据需要组合使用来构建复杂的网页结构。
  2. 重要特性与优势

    • 语义化:HTML5 引入了更多语义化的标签,如<article>(文章)、<section>(章节)、<nav>(导航)等,这些标签使得网页的结构更加清晰,便于搜索引擎优化和屏幕阅读器等辅助技术的理解。
    • 跨平台性:HTML 文档可以在各种操作系统和设备上显示,无论是桌面电脑、笔记本电脑、平板电脑还是智能手机,都能正确呈现 HTML 页面。这使得网页可以广泛地传播和访问,不受平台限制。
    • 易于学习和使用:HTML 的语法相对简单,容易上手。即使是没有编程经验的人,也可以通过学习基本的 HTML 标签和属性,快速创建简单的网页。

CSS(层叠样式表)

CSS 赋予网页美丽的外观和一致的风格。

  1. 功能与作用

    • 样式控制:CSS 可以精确地控制网页中各个元素的外观样式,包括颜色、字体、大小、间距、边框、背景等。通过设置不同的样式属性,可以使网页呈现出各种独特的视觉效果。
    • 布局设计:CSS 提供了强大的布局功能,可以实现网页的多种布局方式,如流式布局、固定布局、弹性布局等。通过合理地运用 CSS 布局技术,可以使网页在不同的屏幕尺寸下都能保持良好的显示效果。
    • 响应式设计:随着移动设备的普及,响应式设计变得越来越重要。CSS 可以通过媒体查询等技术,根据不同的设备特性和屏幕尺寸,自动调整网页的样式和布局,实现自适应的显示效果。
  2. 特点与优势

    • 层叠性:CSS 中的样式规则可以层叠在一起,多个规则可以同时作用于同一个元素。当多个规则对同一个属性进行设置时,会根据优先级和层叠顺序来确定最终的样式。这种层叠性使得样式的管理更加灵活和方便。
    • 继承性:CSS 中的某些样式属性可以被子元素继承自父元素。例如,字体、颜色等属性可以从父元素传递给子元素,减少了重复设置的工作量。同时,也可以通过设置特定的属性值来覆盖继承的样式。
    • 分离内容与样式:将网页的内容和样式分离是 CSS 的一个重要优势。这样可以使网页的结构更加清晰,易于维护和修改。同时,也可以让设计师和开发人员分别专注于内容和样式的设计,提高工作效率。

JavaScript

JavaScript 为网页带来了生动的交互性和动态效果。

  1. 功能与能力

    • 交互响应:JavaScript 可以监听用户的操作,如点击、鼠标移动、键盘输入等,并根据用户的操作执行相应的动作。例如,当用户点击一个按钮时,可以使用 JavaScript 显示一个弹出窗口,或者提交一个表单。
    • 动态内容更新:JavaScript 可以动态地修改网页的内容和样式,实现网页的实时更新。比如,可以使用 JavaScript 从服务器获取数据,并将其显示在网页上,或者根据用户的偏好调整网页的布局。
    • 动画效果:通过 JavaScript 可以实现各种动画效果,如淡入淡出、滑动、旋转等。这些动画效果可以增强网页的视觉吸引力,提高用户的体验。
    • 与服务器通信:JavaScript 可以使用 Ajax 技术与服务器进行异步通信,实现无刷新的数据加载和提交。这使得网页可以在不刷新整个页面的情况下,获取新的数据并更新部分内容,提高了用户体验和页面的响应速度。
  2. 重要性与价值

    • 提升用户体验:JavaScript 为网页添加了交互性和动态效果,使网页更加生动有趣,提高了用户的参与度和停留时间。用户可以通过与网页进行互动,获得更加个性化的体验。
    • 增强网页功能:JavaScript 可以实现各种复杂的功能,如表单验证、数据处理、地图显示等。这些功能使得网页不再是简单的静态页面,而是具有强大功能的应用程序。
    • 提高开发效率:JavaScript 是一种灵活的编程语言,可以与 HTML 和 CSS 紧密结合,实现高效的开发。同时,JavaScript 也有丰富的库和框架可供选择,如 jQuery、React、Vue 等,这些工具可以大大提高开发效率和代码质量。

 三、Tomcat的功能介绍

Tomcat 是一个开源的、轻量级的 Web 应用服务器,具有以下主要功能:

Web 容器功能

  1. 处理 HTTP 请求和响应

    • Tomcat 能够接收来自客户端(如浏览器)的 HTTP 请求,并根据请求的内容进行相应的处理。它解析请求的 URL、请求方法(GET、POST 等)、请求头和请求体等信息,然后确定要调用的 Web 应用程序中的资源。
    • 对于静态资源(如 HTML 文件、图片、CSS 文件、JavaScript 文件等),Tomcat 可以直接将其返回给客户端。对于动态资源(如 JSP 文件、Servlet 等),Tomcat 会调用相应的处理程序来生成动态内容,并将其封装成 HTTP 响应返回给客户端。
    • Tomcat 支持多种 HTTP 协议版本,包括 HTTP/1.1 和 HTTP/2,能够与不同版本的客户端进行通信。
  2. 管理 Web 应用程序

    • Tomcat 可以部署和管理多个 Web 应用程序。每个 Web 应用程序都有自己独立的目录结构和配置文件,Tomcat 负责加载、初始化和运行这些应用程序。
    • 它提供了一种标准的方式来部署 Web 应用程序,通常是将应用程序的 WAR(Web Application Archive)文件复制到 Tomcat 的特定目录下,或者使用 Tomcat 的管理界面进行部署。
    • Tomcat 还可以管理 Web 应用程序的生命周期,包括启动、停止、重新加载等操作。在应用程序运行过程中,Tomcat 会监控应用程序的状态,及时处理异常情况,并提供相应的日志记录和错误报告。

Servlet 和 JSP 容器功能

  1. 支持 Servlet 规范

    • Tomcat 实现了 Java Servlet 规范,允许开发人员编写 Servlet 类来处理 Web 请求。Servlet 是一种基于 Java 的服务器端编程技术,它可以接收 HTTP 请求、处理业务逻辑、生成动态内容,并将响应返回给客户端。
    • Tomcat 负责加载和实例化 Servlet 类,并管理 Servlet 的生命周期。它根据请求的 URL 和 Servlet 的映射关系,调用相应的 Servlet 来处理请求。
    • Servlet 可以通过请求和响应对象与客户端进行交互,还可以访问服务器端的资源,如数据库、文件系统等。Tomcat 提供了一系列的 API 和工具,方便开发人员编写高效、可靠的 Servlet 应用程序。
  2. 支持 JSP 技术

    • Tomcat 也支持 JavaServer Pages(JSP)技术,JSP 是一种基于 Java 的服务器端页面技术,它允许开发人员在 HTML 页面中嵌入 Java 代码,以生成动态内容。
    • Tomcat 负责将 JSP 文件编译成 Servlet 类,并在需要时调用这个 Servlet 来处理请求。它还提供了一个 JSP 引擎,负责解析和执行 JSP 页面中的 Java 代码,并将生成的 HTML 内容返回给客户端。
    • JSP 技术使得开发人员可以更加方便地创建动态网页,同时也提高了开发效率和代码的可维护性。

连接池和资源管理功能

  1. 数据库连接池

    • Tomcat 可以配置数据库连接池,以提高数据库访问的性能和效率。连接池管理着一组数据库连接,当应用程序需要访问数据库时,从连接池中获取一个可用的连接,使用完毕后将连接归还给连接池。
    • 连接池可以减少建立和关闭数据库连接的开销,提高数据库的并发访问能力。Tomcat 支持多种数据库连接池技术,如 DBCP(Apache Commons DBCP)、C3P0 等,开发人员可以根据自己的需求选择合适的连接池。
  2. 资源管理

    • Tomcat 还可以管理其他资源,如线程池、JNDI(Java Naming and Directory Interface)资源等。线程池用于处理并发请求,提高服务器的吞吐量和响应速度。JNDI 资源可以用于访问外部资源,如数据库、邮件服务器等。
    • Tomcat 提供了一系列的配置选项和管理工具,方便开发人员对这些资源进行管理和优化。

安全管理功能

  1. 用户认证和授权

    • Tomcat 可以配置用户认证和授权机制,以保护 Web 应用程序的安全。它支持多种认证方式,如基本认证、表单认证、摘要认证等。
    • 开发人员可以通过配置 Tomcat 的安全约束和用户角色,限制不同用户对 Web 应用程序的访问权限。只有经过认证的用户才能访问受保护的资源,并且根据用户的角色分配不同的权限。
  2. SSL/TLS 加密

    • Tomcat 支持 SSL/TLS 加密协议,可以为客户端和服务器之间的通信提供安全保障。通过配置 SSL 证书和密钥,Tomcat 可以建立安全的 HTTPS 连接,防止数据在传输过程中被窃取或篡改。
    • SSL/TLS 加密可以提高 Web 应用程序的安全性,保护用户的隐私和敏感信息。

集群和负载均衡功能

  1. 集群部署

    • Tomcat 可以配置成集群模式,将多个 Tomcat 实例组成一个集群,共同为 Web 应用程序提供服务。集群可以提高系统的可用性和可靠性,当一个节点出现故障时,其他节点可以继续提供服务。
    • 在集群中,Tomcat 实例之间可以通过共享内存、数据库或消息队列等方式进行通信,实现会话复制、负载均衡等功能。
  2. 负载均衡

    • Tomcat 可以与负载均衡器配合使用,实现请求的负载均衡。负载均衡器将客户端的请求分发到不同的 Tomcat 实例上,以平衡服务器的负载,提高系统的性能和吞吐量。
    • Tomcat 本身也提供了一些简单的负载均衡策略,如轮询、随机等,可以在没有外部负载均衡器的情况下,对请求进行一定程度的负载均衡

 四、Tomcat的安装部署

 安装java环境

两台tomcat服务器都需操作

安装并启动tomcat

[root@tomcat-node1 ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/

 [root@tomcat-node1 ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat

 [root@tomcat-node1 ~]# /usr/local/tomcat/bin/startup.sh

 [root@tomcat-node1 ~]# netstat -antlupe | grep java

测试一下

 

生成tomcat的启动文件

生成tomcat的主配置文件

生成启动文件

[root@tomcat-node1 ~]# useradd -s /sbin/nologin -M tomcat

 [root@tomcat-node1 ~]# chown -R tomcat.tomcat /usr/local/apache-tomcat-9.0.93/

 [root@tomcat-node1 ~]# systemctl daemon-reload

 [root@tomcat-node1 ~]# systemctl enable --now tomcat

五、结合反向代理实现tomcat部署

 利用 nginx 反向代理实现

[root@tomcat ~]# vim /usr/local/nginx/conf.d/php.conf 

 

六、实现tomcat中的负载均衡

使用硬件负载均衡器

硬件负载均衡器是一种专门的设备,用于在多个服务器之间分配网络流量。它通常具有高性能、高可靠性和丰富的功能,可以实现复杂的负载均衡策略。

  1. 配置步骤

    • 将多个 Tomcat 服务器连接到硬件负载均衡器。
    • 在硬件负载均衡器上配置负载均衡策略,如轮询、加权轮询、最少连接等。
    • 将客户端的请求发送到硬件负载均衡器的虚拟 IP 地址,硬件负载均衡器会根据配置的策略将请求转发到不同的 Tomcat 服务器上。
  2. 优点

    • 高性能:硬件负载均衡器通常具有强大的处理能力和高带宽,可以处理大量的并发请求。
    • 高可靠性:硬件负载均衡器通常具有冗余电源、热插拔部件等,可以保证系统的高可靠性。
    • 丰富的功能:硬件负载均衡器通常提供了多种负载均衡策略、健康检查、会话保持等功能,可以满足不同的应用需求。
  3. 缺点

    • 成本高:硬件负载均衡器通常价格昂贵,对于小型应用来说可能成本过高。
    • 管理复杂:硬件负载均衡器需要专业的技术人员进行管理和维护,对于一些小型团队来说可能存在管理上的困难。

使用软件负载均衡器

软件负载均衡器是一种运行在操作系统上的软件程序,它可以实现与硬件负载均衡器类似的功能。常见的软件负载均衡器有 Nginx、HAProxy 等。

  1. 配置步骤

    • 在一台服务器上安装软件负载均衡器,如 Nginx。
    • 配置 Nginx 的负载均衡策略,将请求转发到多个 Tomcat 服务器上。
    • 将客户端的请求发送到 Nginx 的 IP 地址,Nginx 会根据配置的策略将请求转发到不同的 Tomcat 服务器上。
  2. 优点

    • 成本低:软件负载均衡器通常是免费的或价格较低,对于小型应用来说成本较低。
    • 灵活性高:软件负载均衡器可以根据需要进行定制和扩展,满足不同的应用需求。
    • 易于管理:软件负载均衡器通常可以通过简单的配置文件进行管理,对于一些小型团队来说管理起来比较容易。
  3. 缺点

    • 性能相对较低:软件负载均衡器的性能通常不如硬件负载均衡器,对于高并发的应用来说可能存在性能瓶颈。
    • 可靠性相对较低:软件负载均衡器的可靠性通常不如硬件负载均衡器,对于一些对可靠性要求较高的应用来说可能存在风险。

使用 Tomcat 自带的集群功能

Tomcat 本身也提供了一些集群功能,可以实现简单的负载均衡和故障转移。

  1. 配置步骤

    • 在多个服务器上安装 Tomcat,并配置相同的 Web 应用程序。
    • 修改 Tomcat 的配置文件,启用集群功能。
    • 在 Tomcat 的集群配置中,配置负载均衡策略和故障转移机制。
    • 将客户端的请求发送到其中一个 Tomcat 服务器的 IP 地址,Tomcat 会根据配置的策略将请求转发到其他 Tomcat 服务器上。
  2. 优点

    • 集成度高:Tomcat 自带的集群功能与 Tomcat 紧密集成,无需安装额外的软件。
    • 易于配置:Tomcat 的集群配置相对简单,对于一些小型应用来说比较容易上手。
  3. 缺点

    • 功能相对较弱:Tomcat 自带的集群功能相对较弱,只能实现简单的负载均衡和故障转移,对于一些复杂的应用需求可能无法满足。
    • 性能相对较低:Tomcat 自带的集群功能在性能上可能不如硬件负载均衡器和软件负载均衡器,对于高并发的应用来说可能存在性能瓶颈。

 HTTP的无状态,有连接和短连接

无状态

  1. 定义与表现

    • HTTP 是无状态的协议,这意味着服务器不会在不同的请求之间记住客户端的任何信息。每次请求都是独立的,服务器处理完一个请求后,不会保留关于该客户端的任何记忆。
    • 例如,当用户在一个网站上进行一系列操作,如浏览不同的页面、提交表单等,服务器并不会知道这些请求来自同一个用户,除非通过特定的技术手段(如 Cookie、Session 等)来跟踪用户状态。
  2. 优点与缺点

    • 优点:无状态特性使得 HTTP 协议简单、高效,服务器不需要为每个客户端维护大量的状态信息,从而降低了服务器的负担,提高了可扩展性。
    • 缺点:对于一些需要保持用户状态的应用场景,如购物车、在线游戏等,无状态特性就带来了一些挑战。开发人员需要使用额外的技术来实现状态管理,增加了开发的复杂性。

有连接(持久连接)

  1. 概念与作用

    • 在早期的 HTTP/1.0 版本中,每次 HTTP 请求都需要建立一个新的 TCP 连接,请求完成后立即关闭连接。这种方式效率较低,因为建立和关闭连接需要消耗一定的时间和资源。
    • HTTP/1.1 引入了持久连接(persistent connection)的概念,也称为有连接。客户端和服务器在一次连接中可以发送多个请求和响应,避免了频繁地建立和关闭连接,提高了传输效率。
  2. 连接管理

    • 持久连接可以通过设置 HTTP 请求头中的 “Connection: keep-alive” 来启用。服务器在响应中也可以设置相应的头信息来表示是否支持持久连接。
    • 当持久连接建立后,客户端可以在一段时间内继续发送请求,直到连接被关闭。连接的关闭可以由客户端或服务器发起,通常是在一段时间内没有活动后自动关闭。

短连接

  1. 含义与特点

    • 短连接是相对于长连接而言的。在 HTTP 中,短连接指的是每次请求都建立一个新的连接,请求完成后立即关闭连接。
    • 例如,当用户在浏览器中访问一个网页时,浏览器会向服务器发送一个 HTTP 请求,服务器返回响应后,连接就会关闭。如果用户再次访问该网页或其他页面,浏览器会再次建立一个新的连接。
  2. 适用场景与影响

    • 短连接适用于一些请求次数较少、数据量较小的场景。例如,一些简单的静态网页的访问,或者偶尔的 API 请求。
    • 短连接的缺点是每次请求都需要建立和关闭连接,会消耗一定的时间和资源,尤其是在高并发的情况下,可能会对服务器性能造成一定的压力。

 tomcat负载均衡实现

都在172.25.254.128上

 使用不同的浏览器

 七、Memcached

Memcached简介

Memcached 是一个高性能的分布式内存对象缓存系统,主要用于加速动态 Web 应用程序,减轻数据库负载。

主要功能

  1. 缓存数据

    • Memcached 将经常访问的数据存储在内存中,以便快速访问。当应用程序需要访问这些数据时,首先在 Memcached 中查找,如果找到,则直接返回,避免了从较慢的数据库或其他存储系统中读取数据的时间开销。
    • 可以缓存各种类型的数据,如字符串、整数、列表、哈希表等。
  2. 分布式架构

    • Memcached 可以在多个服务器上运行,形成一个分布式的缓存集群。客户端可以连接到任意一个 Memcached 服务器,并且可以自动在多个服务器之间进行数据的分布和负载均衡。
    • 分布式架构提高了系统的可扩展性和可靠性。可以根据需要添加更多的服务器来增加缓存容量,并且当某个服务器出现故障时,其他服务器可以继续提供服务。
  3. 过期机制

    • Memcached 支持为缓存的数据设置过期时间。当数据超过设定的过期时间后,会自动从缓存中删除,以确保缓存中的数据始终是最新的。
    • 过期机制可以有效地管理缓存空间,避免缓存数据无限增长。

工作原理

  1. 客户端请求

    • 当应用程序需要访问数据时,首先向 Memcached 发送一个请求,请求中包含要访问的数据的键。
    • Memcached 根据键在内存中查找相应的数据。如果找到,则将数据返回给客户端;如果没有找到,则客户端需要从其他数据源(如数据库)中获取数据,并将其存储到 Memcached 中,以便下次访问时可以直接从缓存中获取。
  2. 数据存储和更新

    • 当客户端需要存储数据到 Memcached 中时,它会发送一个存储请求,请求中包含要存储的数据的键和值。
    • Memcached 根据键将数据存储在内存中。如果键已经存在,则会覆盖原来的数据。
    • 当数据被更新时,客户端可以发送一个更新请求,请求中包含新的数据值和键。Memcached 会根据键找到相应的数据,并将其更新为新的值。
  3. 分布式算法

    • Memcached 使用一致性哈希算法来在多个服务器之间分布数据。一致性哈希算法可以确保在添加或删除服务器时,只有部分数据需要重新分布,从而减少了数据迁移的开销。

优势

  1. 高性能

    • 由于数据存储在内存中,Memcached 可以提供非常高的读写性能。访问缓存中的数据通常比从数据库中读取数据快几个数量级。
    • 可以大大减少应用程序的响应时间,提高用户体验。
  2. 减轻数据库负载

    • 通过缓存经常访问的数据,Memcached 可以减少对数据库的访问次数,从而减轻数据库的负载。这对于高并发的 Web 应用程序非常重要,可以避免数据库成为性能瓶颈。
    • 可以提高数据库的可用性和稳定性,减少数据库故障的风险。
  3. 简单易用

    • Memcached 的 API 非常简单,易于使用。客户端可以使用多种编程语言的库来连接和操作 Memcached。
    • 不需要进行复杂的配置和管理,只需要启动服务器并在应用程序中进行简单的配置即可使用。

应用场景

  1. Web 应用程序

    • 缓存动态生成的网页内容、用户会话数据、数据库查询结果等,提高网页的加载速度和响应时间。
    • 减轻数据库负载,提高 Web 应用程序的性能和可扩展性。
  2. 分布式系统

    • 在分布式系统中,Memcached 可以作为一个共享的缓存层,用于存储和共享经常访问的数据。
    • 可以提高分布式系统的性能和可靠性,减少数据传输和同步的开销。
  3. 移动应用程序

    • 缓存移动应用程序中的数据,如用户配置、离线数据等,提高应用程序的响应速度和可用性。
    • 减少对网络的依赖,提高用户体验。

 memcached的安装与启动

 两台tomcat服务器都需操作

 [root@tomcat-node1 ~]# systemctl enable memcached --now

 [root@tomcat-node1 ~]# systemctl enable memcached --now

memcached 操作命令

五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:
set
add
replace
get
delete
# 前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令 , 都使用如下所示的语法:
command <key> <flags> <expiration time> <bytes>
<value>
# 参数说明如下:
command set/add/replace
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位, 0 表示永远)
bytes 在缓存中存储的字节数
value 存储的值(始终位于第二行)
# 增加 key ,过期时间为秒, bytes 为存储数据的字节数
add key flags exptime bytes

 举个例子

[root@tomcat-node1 ~]#telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
# 增加
add leekey 0 60 4 #0 是否压缩 60 过期时间 4 字长
test
STORED
add leekey1 0 60 3
lee
STORED
# 查看
get leekey
VALUE leekey 0 4
test
get leekey1
VALUE leekey1 0 3
lee
#
set leekey 0 60 5
test1
STORED
get leekey
VALUE leekey 0 5
test1
END
add leekey1 0 60 4
test
# 删除
delete leekey
DELETED
get leekey
END

 八、session 共享服务器

 msm 介绍

msm memcached session manager )提供将 Tomcat session 保持到 memcached 可以实现高可用。

安装

 上传需要的jar包并拷贝到/usr/local/tomcat/lib/

修改tomcat配置

两台tomcat服务器都需操作

 [root@tomcat-node1 ~]# vim /usr/local/tomcat/conf/context.xml

提供nginx服务的配置文件

测试

把172.25.254.128上的tomcat服务停掉

再启动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/405765.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32H7双路CAN踩坑记录

STM32H7双路CAN踩坑记录 目录 STM32H7双路CAN踩坑记录1 问题描述2 原因分析3 解决办法4 CAN配置参考代码 1 问题描述 STM32的CAN1和CAN2无法同时使用。 注&#xff1a;MCU使用的是STM32H743&#xff0c;其他型号不确定是否一样&#xff0c;本文只以STM32H743举例说明。 2 原因…

了解同步带选择同步带

同步带和轮选型 同步带传动属于皮带传动&#xff0c;但是改进了传统皮带传动无法保持严格的传动比的打滑问题&#xff0c;传统皮带传动依靠皮带和皮带轮张紧时产生的摩擦力传输动力&#xff0c;但是从动轮遇到障碍或超载荷时&#xff0c;皮带会在皮带轮产生滑动。 解决打滑问题…

项目1 物流仓库管理系统

一、项目概述 本项目旨在开发一个功能全面的物流仓库管理系统&#xff0c;以数字化手段优化仓库作业流程&#xff0c;提高管理效率。系统集成了前端用户交互界面与后端数据处理逻辑&#xff0c;涵盖了从用户注册登录、订单管理、货单跟踪到用户信息维护等多个核心业务模块。通…

前端3d动画-----平移 transform: translate3d()

必须加这个属性&#xff1a;transform-style: preserve-3d; perspective: 900px; 设置了景深才能感到近大远小的感觉 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

分享一个基于python爬虫的“今日头条”新闻数据分析可视化系统(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

AI赋能软件测试:从自动化到智能化,让测试工作事半功倍

引言 在当今这个日新月异的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;正以不可阻挡之势渗透并重塑着各行各业&#xff0c;其中&#xff0c;软件开发与测试领域更是迎来了前所未有的变革。随着软件系统的复杂性日益增加&#xff0c;用户对软件质量、性能及安全性的…

Nginx笔记(高级)

扩容 通过扩容提升整体吞吐量 单机垂直扩容&#xff1a;硬件资源增加 云服务资源增加 整机&#xff1a;IBM、浪潮、DELL、HP等CPU/主板&#xff1a;更新到主流网卡&#xff1a;10G/40G网卡磁盘&#xff1a;SAS(SCSI) HDD&#xff08;机械&#xff09;、HHD&#xff08;混合&…

android13布局查看工具 无源码查看布局 在线查找ui布局id

总纲 android13 rom 开发总纲说明 目录 1.前言 2.工具介绍 2.1工具1 2.2工具2 2.3工具3 2.4工具4 3.彩蛋 1.前言 Android 13提供了一些工具来帮助开发人员查看和优化应用的布局。方便的让我们找到具体应用的布局文件等信息。 2.工具介绍 2.1工具1 老版本DDMS&#x…

封装通用第三方平台用户表(微信开放平台)

文章目录 一. 注册微信开放平台1.1 开发者资质认证1.2 应用申请1.3 配置应用 二.通用数据库表设计三.入库实体类四. 对接第三方平台4.1 微信开放平台VO对象4.2 通用方法 我们的系统可能要对接很多第三方系统&#xff0c;为了便利用户授权使用和对多平台账户的管理。有必要设计通…

ant design pro 技巧之实现列表页多标签

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的ant design pro 中用户的表单如何控制多个角色ant des…

影响五金精密零件加工价格的因素

在制造业中&#xff0c;五金精密零件的加工价格受到多种因素的影响。了解这些因素&#xff0c;对于企业合理控制成本、选择合适的加工供应商至关重要。 首先&#xff0c;零件的设计复杂度是一个重要因素。复杂的设计通常需要更先进的加工技术和更多的加工工序。例如&#xff0c…

Unity编辑器扩展:创建一个欢迎窗口,在启动Editor的时候显示自定义窗口。

Unity编辑器扩展&#xff1a;创建一个欢迎窗口&#xff0c;在启动Editor的时候显示自定义窗口。 在Unity开发过程中&#xff0c;经常会遇到需要向其他人展示重要信息的情况&#xff0c;比如项目文档、脚本说明、插件介绍等。这个窗口不仅能够展示必要的文档信息&#xff0c;还…

用手机写一本电子书

第1步、进入Andi.cn网站 第2步、点击登录&#xff0c;注册用户 第3步、点击去创作&#xff0c;进入创作页面 第4步、点击右下角的小笔&#xff0c;写一篇文章 第5步、下翻&#xff0c;点击提交按钮 第6步、再写一篇文章 第7步、点击栏目设计 第8步、进入栏目设计&#xff0c;点…

FFmpeg的入门实践系列三(基础知识)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力 文章目录 前期博客一、音视频常用术语二、FFmpeg库的结构介绍三、FFmpeg的常用函数初始化封装格式编解码器相关 四、FFmpeg常用的数…

安装搭建MongoDB及配置副本集

目录 一、什么是MongoDB的副本集 简介 &#xff08;1&#xff09;冗余和数据可用性 &#xff08;2&#xff09;MongoDB中的复制 &#xff08;3&#xff09;主从复制和副本集区别 二、副本集的架构 三、副本集的成员 四、部署副本集 1、节点划分 2、安装MongoDB 2.1、…

Jetpack 各种框架简介

Jetpack是Google推出的一套为Android开发提供极大便利的组件、工具和指导集&#xff0c;旨在帮助开发者快速构建高质量的应用&#xff0c;并遵循最佳实践。 Jetpack不仅是一个提高开发效率的工具集&#xff0c;还是Android开发的未来方向。它通过整合各种组件和工具&#xff0…

VAuditDemo审计之二次注入漏洞

目录 VAuditDemo二次注入漏洞 搜索危险函数&#xff0c;用户可控点 regCheck.php messageSub.php message.php 漏洞调用链 漏洞错误利用过程 注册用户 xxxx, 发表payload留言 漏洞正确利用过程 注册用户 wwww\ 退出用户 wwww\\ 使用 wwww\ 登录 发表留言 替换dat…

【全网最真实测评】随身WiFi值得入手吗?自费入手华为、中兴、格行、上赞4款随身WiFi,内含国产4款热门随身WiFi推荐!(最实用、最高性价比!)

随身WiFi的风越吹越大&#xff0c;市场乱象也更变本加厉。作为一名资深随身WiFi使用者&#xff0c;接触过太多的随身WiFi产品&#xff0c;越是了解这个行业黑幕&#xff0c;就越对无良商家夸大宣传、虚标限速&#xff0c;甚至售卖二手产品的行为深恶痛绝&#xff01; 本篇测评涉…

学习嵌入式第二十九天

ipc进程间通信方式 PC&#xff0c;即进程间通信&#xff08;Inter-Process Communication&#xff09;&#xff0c;是操作系统中不同进程之间交换数据的一种机制。以下是一些常见的IPC方式&#xff1a; 管道&#xff1a;用于父子进程或兄弟进程之间的通信。消息队列&#xff…