Tomcat之高可用配置

news2024/10/5 15:23:07
Nginx搭配Tomcat实现负载均衡

传统模型下,一个项目部署在一台tomcat上,这个时候,假如tomcat因为服务器资源不够,突然挂机了,那么整个项目就无法使用。

Nginx就可以避免单台服务如果挂机,依然能保证服务正常使用,当我们把项目war包部署到三台服务器上时,即使A、B服务器都挂了,依然能够通过服务器C访问项目资源!

Tomcat安装 

        把项目war包部署到三台服务器,并启动

Nginx安装

        安装nginx:nginx安装使用详细步骤_Sora33的博客-CSDN博客

负载均衡

        负载均衡就是将所有的请求给分发到不同的服务器。可以减少服务器压力。同时隐藏了真实服务器的ip。具体的说就是对外暴露出一个端口。nginx来代理监听这个端口。然后使用负载均衡配置的服务来进行对应的转发操作。

 

 我们访问7788这个端口号。nginx会将请求按照默认的轮询方式分配到80和9101端口上。

负载均衡三大模式 

1.轮询:负载均衡默认使用的就是轮询。将请求按照顺序分配到服务上

2.权重:通过weight指定权重值(server localhost:9101 weight=5)

3.IP散列:通过对访问的IP的hash结果来决定转发到哪个服务上。固定IP会固定被转发到对应的服务上

upstream test{
    ip_hash;
    server localhost:80 weight=1;
    server localhost:9101 weight=4;
}
 Http工作原理

        HTTP协议是浏览器与服务器之间的数据传送协议。作为应用层协议,HTTP是基于TCP/IP协议来传递数据的,不涉及数据包(Packet)传输,主要规定了客户端和服务器之间的通信格式

 Tomcat请求处理流程

 Tomcat启动流程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python实现操作MySQL【增删改查】

闲话少叙,直接上操作! 一、准备工作 1.本地安装MySQL、Python(以3.6为例) 2.MySQL新建数据库【test】,新建表【user】,新建字段【name】【age】 3.建表方式:navicat工具 字段 二、Python操作—插入数据 #!/usr/bin/env # coding=utf-8import pymysql # Python 连…

Matlab+Yalmip求解优化问题(1)-入门学习

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译:YALMIP 1.Yalmip工具箱的下载与安装 1.1下载 Yalmip的作者是Johan Lfberg,是由Matlab平台编程实现的一个免费开源数学优化工具箱,在官网上就可以下载。官方下载…

Spark学习--4、键值对RDD数据分区、累加器、广播变量、SparkCore实战(Top10热门品类)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、键值对RDD数据分区1.1 Hash分区1.2 Ranger分区 二、累加器三、广播变量四、SparkCore实战4.1 数据准备4.2 需求:Top10热门品类4.2.1 需求分析&#…

问题解决:错误: 找不到或无法加载主类 App

问题描述尝试解决 问题描述 昨天刚刚把公司的项目源代码拉下来,结果全是报错,几百条.一看就是环境没配好. 今天刚刚解决配置问题,项目也没有报错了 今天在做项目的时候,我先跑一下看看项目能不能跑起来.结果一跑又报错了 错误:找不到或无法加载主类 xxx.BaasAppApplication原因…

profiles.active多环境开发、测试、部署

1、使用场景 在开始讲profiles.active配置时,我们先来考虑几个场景。 我们在开发过程中,经常会碰到多个环境,特别熟数据库,经常是有开发库,测试库,和生产库。一般我们都是连的开发库进行开发,…

四两拨千斤,训练大模型的PEFT方法

自然语言处理进入大语言模型(Large Language Model, LLM)时代之后,模型的参数量级越来越庞大,以稍早之前的GPT-3为例,它有175B即1亿7千5百万参数,而ChatGPT及后续模型则更大。一方面大语言模型解决自然语言…

用html+javascript打造公文一键排版系统4:一级标题排版

完成公文标题的排版后,我们要进行对正文中的标题进行处理。 一般正文中的标题分为四级,文中结构层次序数依次可以用“一、”“(一)”“1.”“(1)”标注;一般第一层用黑体字、第二层用楷体字加粗…

10.25UEC++/小试牛刀(笨鸟先飞案例)

1.思路整理: 如何入手? 角色可能是每个游戏的最重要的部分,所以一般可以先从角色入手,如果游戏很复杂,可以进行拆分设计。 蓝图创建地图: 创建默认Pawn: 编写GameMode默认构造函数:…

第二十二章:逻辑架构

第二十二章:逻辑架构 22.1:逻辑架构剖析 服务器处理客户端请求 ​ MySQL是典型的C/S架构,即Client/Server架构,服务端程序使用的mysqld。不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是&#…

VoLTE信令流程

文章目录 VoLTE概述VoLTE 协议栈IMS(IP Multimedia Subsystem),IP多媒体子系统会谈边界控制器(Session Border Controller, SBC)QCI (QoS Class Identifier),QoS类标识符 SIP(Session initialization Protocol&#xf…

Android mac 交叉编译与ffmpeg编译踩坑记 (v7a 与 v8a and 动态库与静态库)

Android mac 交叉编译与ffmpeg编译踩坑记 环境: system: mac NDK: android-ndk-r17c Fffmpeg: ffmpeg-4.0.2 Cmake: 3.10.2 Gradle: 4.1.3 tips: 本文记录踩坑过程,具体细节如果感兴趣可以在评论区留言交流讨论! mac 编译 (动态库(so)) 首先来回顾一下,mac原始库是如何…

Redis常见命令和使用示例

目录 1.使用官方文档学习redis 2.核心命令 SET GET 3.全局/通用命令 KEYS EXISTS DEL EXPIRE TTL TYPE 1.使用官方文档学习redis redis官网 点击搜索,输入,比如输入ping,会显示Commands,是一个命令,点击ping&#xff…

新版2021等启动unity包管理器本地服务器进程失败解决

1、问题 2、解决办法 最后我发现每个unity版本都有一个包管理器,也就是图中的路径,而且都是相同的路径,只是因为版本不同或多或少存在一些小差异,其他版本可以正常启动,就2021不行会不会是2021的包管理器这个文件夹出…

YOLOv5 实现 10 种热力图可视化方式教程

效果展示 GradCAMEigenCAMEigenGradCAMGradCAMElementWiseGradCAMPlusPlusHiResCAMLayerCAM

前端下载PDF内容空白且大小偏大问题解决

前端使用React框架axios请求后端接口下载文件,请求返回正常但文件大小和内容异常。经排查,其原因是使用了mockjs用作数据模拟,导致了请求异常,将其注释掉后,文件大小与内容恢复正常。 目录 1.文件异常 2.定位问题 3…

【C语言进阶技巧】指针解密:炼金术士的秘密面试题揭秘

【C语言进阶技巧】指针解密:炼金术士的秘密面试题揭秘 1. 主要涉及sizeof与strlen函数的使用的笔试题1.1 笔试题一(一维整形数组)1.2 笔试题二(不带\0的字符数组)1.3 笔试题三(带\0的字符数组)1.4 笔试题四 &#xff0…

【C#】默认打开图片、文件下载

系列文章 【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器(开始日期、结束日期) 本文链接:h…

Linux(centos7)系统关闭 virbr0

背景: 在使用 VMware 虚拟机安装 centos7 操作系统中,经常出现将 IP 地址分配到虚拟网桥接口virbr0 上,引起虚拟机不能正常访问网络的问题。 我是在学习 docker 网络分析这块遇到的问题,教程上在虚拟机上输入 ip addr 并没有出现 …

linux开发工具:repo

1:repo简单介绍 repo是Google开发的用于管理Android版本库的一个工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。repo不是用于取代git,而是简化了对多个Git版本库的管理。 repo…

6 种方式读取 Springboot 的配置(原理+实战)

从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者在这个方面踩坑。 我整理了几种获取配置属性的方式,目的不仅是要让大家学会如何使用,更重要的是弄清配置加载、读取的底层…