1. tomcat是谁?     2. tomcat可以做什么? tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以部署多个web应用,这些web应用可以是同一个域名,也可以是多个域名的服务. 3. tomcat有哪些组件 4.怎么快速理解这些组件呢? 我们可以假设我们来设计一个web容器,我们该什么设计? 第一代:接收请求,处理请求,返回结果集中到整个web容器中,如下图所示: 第二代 :连接管理和处理逻辑分开 使用过程中发现,每次都要打…
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数据返回都经历过哪些过程? 要回答这个问题,首先你需要对 HTTP 协议.web框架.服务器等底层知识有一定的储备量,同时需要对 web 框架和服务器之间的关联有一定的了解,这里有张图上面详细的标明它们之间的联系. 这么多 wsgi 是不是有点懵逼?看不明白没有关系,下面我会带大家顺着图片里面的顺序一…
本文引用了“蔷薇Nina”的“Nginx 相关介绍(Nginx是什么?能干嘛?)”一文部分内容,感谢作者的无私分享. 1.引言   Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本.高负载Web服务端代名词. 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP.UDP.WebSocket的负载…
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FIORI系列]SAP 一文读懂SAP Fiori是什么   前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 SAP Fiori很难定义为一个产品,而是一个标准.符合这个标准的应用程序可以叫做SAP Fiori应用. Fiori的产生是为了应对全平台的需求与优化用户体验的潮流,改善过去SAP产品前端体验不佳与风格不…
容器 容器与虚拟机对比图(左边为容器.右边为虚拟机)   容器技术是虚拟化技术的一种,以Docker为例,Docker利用Linux的LXC(LinuX Containers)技术.CGroup(Controll Group)技术和AUFS(Advance UnionFileSystem)技术等,通过对进程和资源加以限制,进行调控,隔离出来一套供程序运行的环境. 我们把这一环境称为"容器",把构建该"容器"的"只读模板",称之为"镜像&…
更多精彩内容,请关注微信公众号:后端技术小屋 一文读懂clickhouse集群监控 常言道,兵马未至,粮草先行,在clickhouse上生产环境之前,我们就得制定好相关的监控方案,包括metric采集.报警策略.图形化报表.有了全面有效的监控,我们就仿佛拥有了千里眼顺风耳,对于线上任何风吹草动都能及时感知,在必要的情况下提前介入以避免线上故障. 业界常用的监控方案一般是基于prometheus + grafana生态.本文将介绍由clickhouse-exporter(node-exporter…
摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何优雅降级应该是国内还不普遍使用的原因之一. 虽然 HTTP/2 提高了网页的性能,但是并不代表它已经是完美的了,HTTP/3 就是为了解决 HTTP/2 所存在的一些问题而被推出来的. 一.HTTP协议 HTTP协议是HyperText Transfer Protocol(超文本传输协议)的缩写,它…
1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的高性能网络编程的I/O模型概览以及网络服务进程模型的比较,以揭开设计和实现高性能网络架构的神秘面纱. 限于篇幅原因,请将本文与<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>连起来读,这样会让知识更连贯. 学习交流: - 即时通讯开发交流3群:185926912[推荐] - 移动端IM…
一文读懂 HTTP/2 http://support.upyun.com/hc/kb/article/1048799/ 又小拍 • 发表于:2017年05月18日 15:34:45 • 更新于:2017年05月24日 15:06:11 今天,HTTP 1.1 已经变成互联网中主要的协议.但是在 HTTP 协议诞生初期却被认为是简单直接的协议.1996 年在 RFC 1945 中定义了 HTTP 1.0 规范,仅 60 页,到 1999 年在 RFC 2616 定义了 HTTP 1.1,增长到了…
大数据篇:一文读懂@数据仓库 1 网络词汇总结 1.1 数据中台 数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念. 数据中台是一套可持续"让企业的数据用起来"的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套持续不断把数据变成资产并服务于业务的机制. 数据中台连接数据前台和后台,突破数据局限,为企业提供更灵活.高效.低成本的数据分析挖掘服务,避免企业为满足具体某部门某种数据分析需求而投放大量高…
一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引发网友热议.有人认为大佬们的分享干货满满,也有人有不同观点,认为我们并没有真正搞懂人工智能,更无法预测未来. 如果回溯历史,你会发现,人工智能一直是国内外计算机.互联网大佬们喜欢的话题.他们的观点和预言,有些已成为今天的生活常态,有些却依然没有实现.本文就带你回顾人工智能发展过程中重要的历史阶段,以…
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HTTP/2 更是让它再次成为技术热点. 作为即时通讯开发者来说,深刻理解HTTP协议有助于在现今复杂移动网络环境下的优化和最佳实践的开展,本文将通俗易懂的地介绍 HTTP 协议的历史演变和设计思路.   学习交流: - 即时通讯开发交流3群:185926912[推荐] - 移动端IM开发入门文章:<新…
一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm) 2017-12-25  16:29:19   对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也给想学习的小伙伴一个参考. 想要认识清楚这个算法,需要对 DRL 的算法有比较深刻的了解,推荐大家先了解下 Deep Q-learning 和 Policy Gradient 算法. 我们知道,DRL 算法大致可以分为如下这几个类别:Value Based and Policy Based,其经典算…
MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今天阿信带大家一起来探究什么是MerkleDAG,拆分解说Merkle Tree.DAG有向无环图.MerkleDAG在IPFS中的应用. MerkleDAG树形结构图 Merkle Tree Merkle Tree是由美国计算机学家Merkle于1979年申请的专利. Merkle Tree通常也被…
从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路   http://www.52im.net/thread-1709-1-2.html     本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HTTP/2 更是让它再次成为技术热点. 作为即时通讯开发者来说,深刻理解HTTP协议有助于在现今复杂移动网络环境下的优化和最佳实践的…
作为后端开发人员,在实际的工作中我们会非常高频地使用到web服务器.而tomcat作为web服务器领域中举足轻重的一个web框架,又是不能不学习和了解的. tomcat其实是一个web框架,那么其内部是怎么实现的呢?如果不用tomcat我们能自己实现一个web服务器吗? 首先,tomcat内部的实现是非常复杂的,也有非常多的各类组件,我们在后续章节会深入地了解. 其次,本章我们将自己实现一个web服务器的. 下面我们就自己来实现一个看看.([注]:参考了<How tomcat works>这本…
一文读懂对抗生成学习(Generative Adversarial Nets)[GAN] 0x00 推荐论文 https://arxiv.org/pdf/1406.2661.pdf 0x01什么是gan Generative model G用来生成样本 Discriminative model D用来区别G生成样本的真假 G努力的方向是生成出以假乱真的样本,让D认为这样本是人类给的而不是G创造的,D则相反. 一个更加形象的比喻 小时候老师让试卷上家长签字,以确保家长看过我那卑微的成绩.于是乎我尽…
一文读懂神经网络训练中的Batch Size,Epoch,Iteration 作为在各种神经网络训练时都无法避免的几个名词,本文将全面解析他们的含义和关系. 1. Batch Size 释义:批大小,即单次训练使用的样本数 为什么需要有 Batch_Size :batch size 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡. Batch size调参经验总结: 相对于正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfitting. 增大Batch_…
回顾前文: 一文学会MySQL的explain工具 一文读懂MySQL的索引结构及查询优化 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) 就软件开发而言,既要保证数据读写的效率,还要保证并发读写数据的可靠性.正确性.因此,除了要对MySQL的索引结构及查询优化有所了解外,还需要对MySQL的事务隔离级别及MVCC机制有所认知. MySQL官方文档中的词汇表(https://dev.mysql.com/doc/refman/5.7/en/glo…
作者 :潘潘 日期 :2020-11-22 事实上,对于很多Java编程人员来说,可能只需要达到从入门到上手的编程水准,就能很好的完成大部分研发工作.除非自己强主动获取,或者工作倒逼你学习,否则我们好像没必要去真正了解Java编程,或者深入研究JDK运行原理.或者在实际工作中某个模块写一套设计模式.或者纠结一个线程安全问题. 我觉得完全没必要了解,因为很多知识内容,我技术储备上仅仅点到为止,就能胜任工作,何必深入?确实,我也和有些朋友一样,8年编程生涯以来大部分时候都存在这种思想,直到某一天突然…
摘要:GaussDB(DWS)在SQL执行过程中,会记录表增删改查相关的运行时统计信息,并在事务提交或回滚后记录到共享的内存中.这些信息可以通过 "pg_stat_all_tables视图" 查询,也可以通过下面函数进行查询. 本文分享自华为云社区<一文读懂pgstat>,作者: leapdb . GaussDB(DWS)在SQL执行过程中,会记录表增删改查相关的运行时统计信息,并在事务提交或回滚后记录到共享的内存中. 这些信息可以通过 "pg_stat_all_…
Java8 函数式[1]:一文读懂逆变 禁止转载 pure function 协变 逆变 Java8 引入了函数式接口,从此方法传参可以传递函数了,有人说: 不就是传一个方法吗,语法糖! lambda表达式?语法糖! 你是否认为协变和逆变只是定义了集合间的关系,如果你的回答是是,那么这篇文章会改变你原有的看法. 尝试回答一下问题: 函数和方法有区别吗? 协变是什么,有什么使用场景 逆变是什么,有什么使用场景 一.纯函数-没有副作用 纯函数的执行不会带来对象内部参数.方法参数.数据库等的改变,这些…
一文读懂HDMI和VGA接口针脚定义 摘自:http://www.elecfans.com/yuanqijian/jiekou/20180423666604.html   HDMI概述 HDMI是高清晰度多媒体接口(High DefiniTIon MulTImedia Interface)的简称.HDMI通过在一条线缆中传输高清晰.全数字的音频和视频内容,极大简化了布线,为消费者提供最高质量的家庭影院体验.它具 有能传输未压缩高清视频与音频信号.即插即用.同时传送音频和影像信号.数字内容保护(H…
刚刚看了node.js文档里的一个小例子,就是用 node.js 写一个web服务器的小例子 上代码 (*^▽^*) //helloworld.js// 使用node.js写一个服务器 const http=require('http'); const hostname='127.0.0.1' const port=3000; const server = http.createServer((req,res)=>{ res.statusCode=200; res.setHeader('Cont…
.container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .container::before,.container::after { content: " "; display: table } .container::after { clear: both } .container::before,.container::after { content:…
使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢了( ̄▽ ̄)"! 这次的废话留在文章末尾吧,断更了好久,直接进入正题! 本篇中主要用到的代码我都会在文章里贴出来 如果博主玩明白GitHub了的话,源码会上传到Github,贴出链接方便各位使用.不过我觉得各位还是找更有参考价值的文章吧,这个系列纯粹是我一个人写日记( ̄_ ̄…
将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装这个LAMP系列,但Apache 和 MySql对于树莓派这个小小的机器,太重了,主要是消耗内存多\速度慢\占用磁盘大(约200M吧) 所以要安装一个轻量级的Web服务器. 经试用,推荐组合为:  nginx + php + sqlite nginx 是个轻量级的Web服务器,比Apache不差 s…
1.Node.js 创建的第一个应用 var http=require("http") http.createServer(function (req,res) { res.writeHead(200,{"Content-Type":"text/html;charset='utf8'"}) res.write("<head><meta charset='UTF-8'></head>") re…
一.超文本传输协议 Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答.HTTP协议使用可靠的TCP连接,默认端口是80.HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1.HTTP/1.1由 RFC 2616定义(pdf格式). 本文只简要介绍HTTP 1.1的相关知识,但应该足以让你理解Web服务器和浏览器发送的消息.如果你要了解更多的细…
一.引言 在自学node.js的过程中有一个非常重要的框架,那就是Express.它是一个基于NodeJs http模块而编写的高层模块,弥补http模块的繁琐和不方便,能够快速开发http服务器.这里,就要用Express创建一个Web服务器,用来深入的理解这个框架,并熟悉创建Web服务器的过程. 二.核心概念--中间件 Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件. 中间件(Middlewa…