Nginx
简介Nginx概念Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中变现较好
Nginx专为性能优化而开发,性能是其最重要的考量,事实上非常注重效率,能经受高负载的考验,有报告表民能支持高达50000个并发连接数。
反向代理正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
反向代理
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器IP地址
正向代理:隐藏客户端
反向代理:隐藏服务端
负载均衡负载均衡是在支持应用程序的资源池中平均分配网络流量的一种方法
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
不使用负载均衡的情况:
使用负载均衡的情况:
动静分离为了加快网站的解 ...
SpringSecurity
前置知识1、掌握Spring框架
2、掌握SpringBoot使用
3、掌握JavaWeb技术
SpringSecurity简介概要Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。
正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权 (Authorization)两个部分,这两点也是 Spring Security 重要核心功能。
用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。通俗点说就是系统认为用户是否能登录
用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会 ...
Docker
Docker概述Docker为什么出现?一款产品:开发 – 上线 两套环境!应用环境、应用配置
开发 — 运维。 问题:我在我的电脑上能运行 ! 版本更新,导致服务器不可用! 对一般运维来说,考研就是十分大?
环境配置是十分的麻烦,每一个机器都要部署混啊经(集群Redis、ES、Hadoop….) 费时费力
发布一个项目(jar + (Redis MySQL、jdk、ES)),项目能不能都带上环境安装打包?
之前在服务器配置一个应用的环境 Redis MySQL jdk ES hadoop ,配置超麻烦,不能跨平台
Windows,最后发布到Linux!
传统:开发jar,运维来做
现在:开发打包部署上线,一套流程做完
java – apk – 发布(应用商店) — 张三使用apk — 安装即可用
java — jar(环境)—- 打包项目带上环境(镜像)—(Docker仓库:商店) — 下载我们发布的镜像 — 直接运行即可
Dcoker 给以上的问题,提出了解决方案!
Docker的思想就是来源于集装箱
JRE – 多个应用(端口冲突) — 原来都是交叉的!
Docker的核心思 ...
RabbitMQ
简介高性能的异步通讯组件
同步通讯:就如同打视频电话,双方的交互都是实时的。因此同一时刻你只能跟一个人打视频电话。
异步通讯:就如同发微信聊天,双方的交互不是实时的,你不需要立刻给对方回应。因此你可以多线操作,同时跟多人聊天。
两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发微信可以同时与多个人收发微信,但是往往响应会有延迟。
什么是MQ
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。
为什么会产生消息队列?有几个原因:
不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;
不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无 ...
tools
实用工具箱下载工具
Sci-Hub: Elbakyan 女神向你挥手,旨在打破知识壁垒的革命性网站。
Library Genesis: 电子书下载网站。
Z-library: 电子书下载网站(在 Tor 下运行较佳,链接)。
Z-ePub: ePub 电子书下载网站。
PDF Drive: PDF 电子书搜索引擎。
MagazineLib: PDF 电子杂志下载网站。
BitDownloader: 油管视频下载器。
qBittorrent: BitTorrent 客户端。
uTorrent: BitTorrent 客户端。
全国标准信息公共服务平台:各类标准查询和下载官方平台。
标准知识服务系统:检索与阅读所需标准。
MSDN,我告诉你: Windows 操作系统镜像下载站,也有许多其他软件的下载。
设计工具
excalidraw: 一款手绘风格的绘图工具,非常适合绘制课程报告或者PPT内的示意图。
tldraw: 一个绘图工具,适合画流程图,架构图等。
draw.io: 强大简洁的在线的绘图网站,支持流程图,UML图,架构图,原型图等等,支持 Onedrive, Google Dr ...
Vue2
为什么要学习Vue1.前端必备技能
2.岗位多,绝大互联网公司都在使用Vue
3.提高开发效率
4.高薪必备技能(Vue2+Vue3)
什么是Vue概念:Vue (读音 /vjuː/,类似于 view) 是一套 **构建用户界面 ** 的 渐进式 框架
Vue2官网:https://v2.cn.vuejs.org/
1.什么是构建用户界面基于数据渲染出用户可以看到的界面
2.什么是渐进式所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点
Vue的两种开发方式:
Vue核心包开发
场景:局部模块改造
Vue核心包&Vue插件&工程化
场景:整站开发
3.什么是框架所谓框架:就是一套完整的解决方案
举个栗子
如果把一个完整的项目比喻为一个装修好的房子,那么框架就是一个毛坯房。
我们只需要在“毛坯房”的基础上,增加功能代码即可。
提到框架,不得不提一下库。
库,类似工具箱,是一堆方法的集合,比如 axios、lodash、echarts等
框架,是一套完整的解决方案,实现了大部分功能,我们只需要按照 ...
Spring
Spring相关概念初识Spring在这一节,主要通过以下两个点来了解下Spring:
Spring家族
官网:https://spring.io,从官网我们可以大概了解到:
Spring能做什么:用以开发web、微服务以及分布式系统等,光这三块就已经占了JavaEE开发的九成多。
Spring并不是单一的一个技术,而是一个大家族,可以从官网的Projects中查看其包含的所有技术。
Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。
Spring已形成了完整的生态圈,也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。
Spring有若干个项目,可以根据需要自行选择,把这些个项目组合起来,起了一个名称叫==全家桶==,如下图所示
说明:
图中的图标都代表什么含义,可以进入https://spring.io/projects网站进行对比查看。
这些技术并不是所有的都需要学习,额外需要重点关注Spring Framework、SpringBoot和Spring ...
MyBatis-plus
MyBatisPlus入门案例与简介这一节我们来学习下MyBatisPlus的入门案例与简介,这个和其他课程都不太一样,其他的课程都是先介绍概念,然后再写入门案例。而对于MyBatisPlus的学习,我们将顺序做了调整,主要的原因MyBatisPlus主要是对MyBatis的简化,所有我们先体会下它简化在哪,然后再学习它是什么,以及它帮我们都做哪些事。
入门案例
MybatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提供效率。
开发方式
基于MyBatis使用MyBatisPlus
基于Spring使用MyBatisPlus
基于SpringBoot使用MyBatisPlus
SpringBoot刚刚我们学习完成,它能快速构建Spring开发环境用以整合其他技术,使用起来是非常简单,对于MP的学习,我们也基于SpringBoot来构建学习。
学习之前,我们先来回顾下,SpringBoot整合Mybatis的开发过程:
创建SpringBoot工程
勾选配置使用的技术,能够实现自动添加起步依赖包
设置dataSource相关属性( ...
Maven
分模块开发分模块开发设计(1)按照功能拆分
我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。
网络没有那么发达的时候,我们需要到银行柜台或者取款机进行业务操作
随着互联网的发展,我们有了电脑以后,就可以在网页上登录银行网站使用U盾进行业务操作
再来就是随着智能手机的普及,我们只需要用手机登录APP就可以进行业务操作
上面三个场景出现的时间是不相同的,如果非要把三个场景的模块代码放入到一个项目,那么当其中某一个模块代码出现问题,就会导致整个项目无法正常启动,从而导致银行的多个业务都无法正常班理。所以我们会==按照功能==将项目进行拆分。
(2)按照模块拆分
比如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品模块也会用到商品的模型类,这个时候如果两个模块中都写模型类,就会出现重复代码,后期的维护成本就比较高。我们就想能不能将它们公共的部分抽取成一个独立的模块,其他模块要想使用可以像添加第三方jar包依赖一样来使 ...