云原生笔记5 📅 发布时间:2026/7/8 17:05:56 👁️ 浏览次数: 一、Tomcat一WEB 技术1.前端三大核心技术1HTML超文本标记语言HTML的本质与核心总结HTML 并非传统意义上的编程语言而是一种专门用于构建网页的标记语言。其核心思想在于“超文本”即它超越了纯文本的限制不仅能呈现文字本身还能通过特定语法定义文本的格式如颜色、大小、字体并能无缝嵌入图片、音频、视频等多媒体非文本内容。HTML 的功能主要由一个个标签标记来实现。这些标签分工明确、各司其职构成了网页的骨架——有的负责定义网页的元信息有的负责结构化文本有的负责插入多媒体还有的负责搭建整体的网页布局。因此任何一个 HTML 文件本质上都是由格式标签与实际数据内容组合而成的文档。为了呈现出超文本定义的排版格式如图片、表格、字体样式必须依赖专门的解读软件浏览器。超文本的诞生是为了解决纯文本显示单调的问题追求更好的视觉效果。而为了让这些内容能被远程分享和获取人们又制定了 HTTP协议规定了数据在网络中的传输规则使得浏览器能够请求并接收网页最终将“好看”的文档连接成全球共享的万维网。2CSS随着网页对视觉效果的需求日益增长HTML 被迫不断加入样式功能而变得臃肿这促使了专门负责样式的 CSS层叠样式表诞生。1994年 W3C 成立后CSS 设计小组全体加入并推动标准研发微软随后也参与其中。CSS 1.0于1996年12月发布1998年5月推出 CSS 2.0。此后的 CSS 3采用模块化思想在 CSS 2基础上对各功能模块分别进行增强和陆续发布。然而由于不同浏览器厂商使用不同的渲染引擎对 CSS 标准的支持程度存在差异导致同一份网页在不同浏览器中的布局和样式表现不一致这使得跨浏览器保持统一的视觉效果成为前端开发中长期存在的挑战。3JavaScriptJavaScript简称JS是一种动态、弱类型的脚本解释性语言与 HTML、CSS 并列为三大 WEB 核心技术几乎被所有主流浏览器支持。1994年网景公司推出 Netscape Navigator 浏览器并占据市场主导地位为了满足网页动态化的需求于1995年9月发布 LiveScript同年12月更名为 JavaScript。同期微软在IE中推出 JScript以抗衡。1997年ECMA欧洲计算机制造商协会制定了 ECMAScrip t标准JavaScript 和 JScript 均成为该标准的实现。2008年后Chrome 浏览器搭载的 V8 引擎发布它通过本地编译和深度优化使 JS 运行速度堪比二进制程序。V8 引擎用 C 开发可嵌入任何 C 程序。2009年基于 V8 的 Node.js 诞生并创建了 npm 包管理系统。自此JavaScript 实现了在服务器端的大规模应用成为唯一能够前后端通用的编程语言。同步在同步交互中用户每次提交请求如注册表单后浏览器都必须等待服务器返回一个全新的完整 HTML 页面并重新渲染。这种机制导致了三个核心问题一是用户体验差页面会强制刷新导致输入内容丢失二是资源浪费严重为了更新局部信息却要传输整个页面消耗了不必要的网络带宽和渲染性能三是效率低下整体过程笨重且不友好。这也间接引出了对这种落后交互方式进行改进的必要性。异步Ajax 并非一项全新的发明而是一种技术的重新组合与发现。它的核心思想起源于1998年微软的Outlook Web Access 团队早期经历了 iframe 标签和笨重的 ActiveX 插件的探索。1999年微软推出的 XMLHttpRequest 组件被大多数浏览器支持为 Ajax 的普及奠定了基础。Ajax 的全称是Asynchronous JavaScript And XML异步JavaScript和XML。其最大价值在于改变了传统网页必须重载整个页面的同步交互模式通过浏览器内置的 XMLHttpRequest 对象JavaScript 可以在后台与服务器进行少量数据交换实现网页的局部异步更新。虽然早期常结合XML 格式但现在更多使用 JSON。这项技术不仅极大地推动了 JavaScript 的发展更重要的是实现了前后端开发的彻底分离改变了传统的 Web 开发模式深远地影响了整个互联网行业。二WEB 框架1.web 资源和访问从静态服务器请求 HTML、CSS、JS 等文件发送到浏览器端浏览器端接收后渲染在浏览器上从图片服务器请求图片资源显示。从业务服务器访问动态内容动态内容是请求后有后台服务访问数据库后得到的最终返回到浏览器端。为了提升加载性能和用户体验移动 App 通常会内置 HTML 和 JS 文件在本地而非每次启动都从静态服务器下载。这样做主要是为了规避现代前端工程中JS文件过多或过大的问题减少网络传输开销。在实际运行中App 采用按需加载策略仅在有需要时才从图片服务器请求静态资源从业务服务器请求动态数据。面对多样化的用户需求大部分实时内容仍需由后端提供因此业务服务器往往是由一组服务器组成的集群以支撑高并发和复杂业务逻辑保障服务的稳定与高效。2.后台应用架构1单体架构核心特征all in one所有功能模块商品、订单、支付、库存、登录等都放在同一个工程中统一打包如jar/war部署运行在同一个进程内。部署方式通常先部署到一台服务器若负载不足则通过水平复制多份部署 负载均衡来扩展。优点易于开发和测试部署方便。扩展简单复制应用多份即可。缺点耦合度高模块间相互依赖修改或升级某一功能如支付必须重新打包部署整个应用。容错性差任何一个模块出问题如内存泄漏都可能导致全站不可访问。维护困难项目庞大时代码管理、团队协作难度大。发布效率低每次发布都需要停服重启影响业务连续性。典型代表开源Tomcat、Jetty、Glassfish商用WebLogic、WebSphere、Jboss2微服务微服务架构是 SOA面向服务架构的一种具体实现和子集其核心是将传统的一站式应用按业务边界拆分为多个独立服务每个服务只专注于单一业务功能实现彻底解耦。从技术角度看每个微服务都是一个独立的进程可自行启动或销毁能够独立部署到生产环境多个服务共同构成分布式系统各自可使用独立的数据库服务之间采用基于 HTTP 的 RESTful API 等轻量级通信机制进行交互。微服务设计思想也深刻影响了企业研发团队的组织架构改变了传统的水平团队模式前端、后端、DBA 各成团队更倾向于垂直架构——按业务划分团队如用户业务由一个团队全栈负责支付业务由另一个团队全栈负责。当然实际企业中并不会拆分得绝对垂直架构更多是一种理想模式。微服务有多种实现框架如 Spring Cloud、Dubbo 等不同的应用架构对应着不同的部署方式。3微服务优缺点优点微服务架构的核心优势在于其小而专、松耦合的设计理念。每个服务只聚焦单一业务功能代码规模小、内聚性强易于开发者理解、修改和维护。这种独立性使得开发效率显著提升小团队2-5人可以独立负责一个服务无需跨团队协作即可实现价值。在技术层面微服务允许不同服务使用不同的编程语言和技术栈便于融合最新技术同时实现了前后端分离服务只关注业务逻辑易于与第三方集成。部署方面微服务支持独立的持续集成和自动部署如通过 Jenkins 等工具每个服务可以独立发布、升级或回滚互不影响。存储上每个服务可根据需要选择独立数据库或统一数据库灵活性高。缺点然而微服务也带来了显著的复杂性提升。将一个完整的项目拆分为多个独立工程后开发、测试、运维、监控的难度都大幅增加。分布式环境下跨服务的数据一致性成为挑战需要引入分布式事务和异步补偿机制增加了设计和开发成本。开发人员和运维人员必须掌握分布式系统的相关知识对技术能力要求更高。此外服务间的通信延迟、故障处理、调用链追踪等问题都需要额外处理。需要强调的是微服务并非适用于所有场景——对于小型应用而言盲目拆分只会徒增维护和开发成本得不偿失。常见的微服务框架Dubbo阿里开源贡献给了 ASF 目前已经是 Apache 的顶级项目一款高性能的 Java RPC 服务框架微服务生态体系中的一个重要组件将单体程序分解成多个功能服务模块模块间使用 Dubbo 框架提供的高性能 RPC 通信内部协调使用 Zookeeper实现服务注册、服务发现和服务治理Spring cloud一个完整的微服务解决方案相当于 Dubbo 的超集微服务框架将单体应用拆分为粒度更小的单一功能服务基于 HTTP 协议的 REST(Representational State Transfer 表述性状态转移风格实现模块间通信三Tomcat 的功能介绍Tomcat 是一个免费、开源的轻量级 Web 应用服务器由 Apache 软件基金会ASF管理。它起源于 Sun 公司的一个 Servlet 参考实现项目Java Web Server由 James Duncan Davidson开发1999年贡献给 ASF 并与 JServ 项目合并最终开源成为顶级项目。核心特性主要功能作为 Servlet 和 JSP 容器同时具有处理 HTML 页面的能力。规范实现仅实现了Java EE 规范中与 Servlet、JSP 相关的部分是 Java EE 的不完整实现。适用场景广泛应用于中小型系统和并发访问用户不是很多的场合。版本演进Tomcat 3.01999年初始版本实现了 Servlet 2.2 和 JSP 1.1 规范Tomcat 4.x内建 CatalinaServlet容器和 JasperJSP引擎当前版本正式版已更新至9.0.x但企业中主流仍使用8.x和7.x版本资源链接官网http://tomcat.apache.org/官网文档https://tomcat.apache.org/tomcat-8.5-doc/index.html帮助文档https://cwiki.apache.org/confluence/display/tomcat/1.Tomcat 的文件结构和组成目录结构2.Tomcat 的启动文件主配置文件路径/usr/local/tomcat/conf/tomcat.conf启动脚本文件四结合反向代理实现 Tomcat 部署1.常见部署方式standalone 模式Tomcat 单独运行直接接受用户的请求不推荐。反向代理单机运行提供了一个 Nginx 作为反向代理可以做到静态由 nginx 提供响应动态jsp代理给 TomcatLNMTLinux Nginx MySQL TomcatLAMTLinux ApacheHttpd MySQL Tomcat前置一台 Nginx给多台 Tomcat 实例做反向代理和负载均衡调度Tomcat 上部署的纯动态页面更适合LNMTLinux Nginx MySQL Tomcat多级代理LNNMTLinux Nginx Nginx MySQL Tomcat2.利用 nginx 反向代理实现利用 nginx 反向代理功能实现图中的代理功能将用户请求全部转发至指定的同一个 tomcat 主机。利用 nginx 指令 proxy_pass 可以向后端服务器转发请求报文,并且在转发时会保留客户端的请求报文中的 host 首部3.实现 Tomcat 中的负载均衡动态服务器的问题往往就是并发能力太弱往往需要多台动态服务器一起提供服务。如何把并发的压力分摊这就需要调度采用一定的调度策略将请求分发给不同的服务器这就是 Load Balance 负载均衡。当单机 Tomcat演化出多机多级部署的时候一个问题便凸显出来这就是 Session。而这个问题的由来都是由于 HTTP 协议在设计之初没有想到未来的发展。1HTTP 的无状态HTTP 协议本身是无状态的服务器无法识别两次请求是否来自同一个浏览器。解决方案首次请求浏览器第一次请求服务器时服务器生成一个唯一的 SessionID 并返回给浏览器。存储 SessionID浏览器将 SessionID 保存在 Cookie 中通常为临时存储浏览器关闭即消失。后续请求浏览器每次 HTTP 请求都会携带该 SessionID服务器通过比对 ID 来识别用户。生命周期Session 通常保存在服务器内存中未持久化则易丢失且有过期时间过期后服务器会重新生成新的 SessionID。特殊情况更换浏览器会获得新的 SessionID。2HTTP 的有连接HTTP 协议依赖于 TCP是面向连接的通信前需要进行三次握手建立连接通信结束后需要四次挥手断开连接。3HTTP 的短连接HTTP/1.1之前每个请求都需要独立创建和销毁 TCP 连接连接创建销毁成本高对服务器压力大。HTTP/1.1及以后支持并默认开启 keep-alive长连接机制。一个 TCP 连接打开后会保持一段时间浏览器再次访问该服务器时可复用该连接从而减轻服务器压力提高效率。注意当使用 HAProxy 或 Nginx 等做负载均衡时如果请求被调度到不同的 Tomcat 服务器上且 Session 未共享会导致找不到 SessionID 的问题。此外即使 Session 被持久化如果服务器故障且未恢复也无法使用这些 SessionID。五Memcached1.简介基本特性Memcached 是一款基于 Key-Value 的内存缓存系统只支持能序列化的数据类型不支持数据持久化无 RDB 和 AOF。单个 key 最大支持 1MB 存储对象超过可通过客户端压缩或拆分处理。高性能机制借助 libevent 库实现高效读写该库统一封装了 Linux 的 epoll、BSD 的 kqueue 等事件处理接口即使连接数增加也能保持高性能支持 Linux、BSD、Solaris 等操作系统。数据一致性保障虽无持久化但可通过集群同步实现数据一致集群中各节点数据保持一致单节点故障不影响整体可用故障节点恢复后可自动从正常节点同步数据内存管理采用 slab/page 机制每次申请 1MB 内存作为一个 slabpage进行存储管理。应用场景与支持最佳实践适合保存用户 Session实现分布式环境下的 Session 共享多语言支持提供 Java、C、Python、PHP、C#、Ruby、Perl 等多种开发语言接口官网http://memcached.org/2.操作命令五种基本 memcached 命令执行最简单的操作。包括set、add、replace、get、delete前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令,都使用如下所示的语法command key flags expiration time bytesvalue参数说明如下command set/add/replacekey key 用于查找缓存值flags 可以包括键值对的整型参数客户机使用它存储关于键值对的额外信息expiration time 在缓存中保存键值对的时间长度以秒为单位0 表示永远bytes 在缓存中存储的字节数value 存储的值始终位于第二行增加 key过期时间为秒bytes 为存储数据的字节数add key flags exptime bytes六session 共享服务器1.msm 介绍项目概述MSM 是一个开源项目旨在将 Tomcat 的 Session 数据存储到 Memcached 中从而实现高可用环境下的 Session 共享。项目早期托管于 Google Code现已在 GitHub 上维护。版本支持支持 Tomcat 6.x、7.x、8.x、9.x 等多个主流版本。核心组件Session 管理类针对不同 Tomcat 版本提供特定的管理器 Jar 包例如通用包 memcached-session-manager-2.3.2.jar 和对应 Tomcat 9 的 memcached-session-manager-tc9-2.3.2.jar。序列化工具负责 Session 数据的序列化与反序列化官方推荐使用 Kryo。客户端驱动作为连接缓存服务器的驱动支持 spymemcached (对应 Memcached) 和 jedis (对应 Redis)。部署位置需要将上述 Jar 包放置在 webapp/WEB-INF/lib/ 目录下。2.安装参考链接: https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration将 spymemcached.jar、memcached-session-manage、kyro 相关的 jar 文件都放到 Tomcat 的 lib目录中这个目录是 $CATALINA_HOME/lib/ 对应本次安装就是 /usr/local/tomcat/lib。t1 和 m1 部署可以在一台主机上t2 和 m2 部署也可以在同一台。当新用户发请求到 Tomcat1 时, Tomcat1 生成 session 返回给用户的同时,也会同时发给memcached2 备份。即 Tomcat1 session 为主 sessionmemcached2 session 为备用 session使用 memcached 相当于备份了一份 Session如果 Tomcat1 发现 memcached2 失败,无法备份 Session 到 memcached2,则将 Sessoin备份存放在 memcached1 中七Tomcat 实验1.Tomcat 安装部署下载安装包部署启动制作启动脚本安转好主机 rs2 的环境后上传启动脚本2.Tomcatmemcached 实现 session 会话零丢失Tomcat 加载模块安装 memcache两台主机均要配置 Tomcat两台主机均要
【Docker 数据持久化详解:Volume、Bind Mount、Tmpfs 三种挂载模式原理、实操与场景对比】 提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会 文章目录前言一、没做持久化的容器存在什么问题?二、Docker挂载机制三、Volume数据卷3.1 完整实操流程3.2 核心特点3.3 适用场景四、Bind Mount 绑… 2026/7/8 11:23:23
基于Python+ai技术的微信小程序的乐器商城宣传平台 乐器维修保养系统 目录技术架构设计核心功能实现开发里程碑关键技术点运维部署方案项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术架构设计 采用PythonDjango作为后端框架,微信小程序为前端载体。数据库… 2026/7/8 19:25:06
从仓储到配送:商贸物流软件如何重构供应链效率 从仓储到配送:商贸物流软件如何重构供应链效率商贸物流的核心竞争力,藏在“仓储”与“配送”的每一个衔接环节里。传统供应链中,仓储拣货低效、库位混乱,配送路线不合理、运力浪费,各环节脱节导致整体效率低下… 2026/7/5 9:22:15
【IEEE出版、往届2.5个月检索、中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026) 第六届计算机科学与区块链国际学术会议(CCSB 2026)将于2026年8月21日至23日在中国珠海隆重举行。本次会议将邀请国内外知名专家学者,围绕计算机科学、区块链及相关领域的前沿技术进展、创新研究成果与实际应用作专题报告,并安排深… 2026/7/9 7:11:46
基于语义缓存的LLM应用性能优化:从原理到工程实践 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你最近在关注大语言模型(LLM)的应用开发,尤其是RAG(检索增强生成)系统… 2026/7/9 7:11:46
2026 年零碳工厂企业能碳管控平台选型指南 在双碳战略全面落地、工业低碳转型加速推进的大环境下,零碳工厂建设已经成为制造企业绿色升级、提升市场竞争力的核心抓手。2026 年,五部门联合发布的零碳工厂建设指导意见全面落地执行,数字化能碳管控平台正式列为零碳工厂评审硬性准入条件。… 2026/7/9 7:09:46
GPT详细介绍 学习目标:本节内容需要大致了解GPT的架构原理、预训练任务、微调任务2018年6月, OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》, 推出了具有1.17亿个参数的GPT(Generati… 2026/7/9 7:03:45
5款国产大模型API接入实战:通义千问、文心一言、混元、盘古、ChatGLM 3.6B 成本与延迟对比 国产大模型API实战指南:成本、性能与选型策略在AI技术快速迭代的今天,国产大模型已从实验室走向产业应用。对于开发者而言,如何选择适合自身业务需求的大模型API服务,成为技术决策中的关键一环。本文将深入分析通义千问、文心一言… 2026/7/9 7:01:44
电商日报分析助手 各类运营与内容工具分环节使用思路分享 很多电商店主、运营和内容团队在日常工作里常会遇到流程断裂的问题:选品调研、商品卖点文案、短视频脚本、投放数据日报分散在不同软件,每日整理的运营记录、竞品分析、内容修改稿没有统一归档载体;多人分工协作时,运营、文案、剪… 2026/7/9 6:57:43
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08