概述
目录
一、计算机原理基础
三、虚拟机安装与使用
四、Linux系统介绍
4.1 Linux系统介绍
4.2 单体项目部署:
4.3 部署Springboot项目(java -jar xxx.jar):
4.3.1 windows
4.3.2 linux环境上部署目录:
4.4 Linux 实操命令:
五、网络通讯介绍
5.1、 网络分层
5.2、网络基础知识
5.3、TCP
编辑
5.4、UDP
5.5、HTTP
5.6、SOCKET
5.6.1、 BIO(Blocking IO)程序
5.6.2、 NIO 程序
编辑5.6.3、 Netty
5.6.4、 Redis底层基于epoll的实现原理
一、计算机原理基础
三、虚拟机安装与使用
四、Linux系统介绍
4.1 Linux系统介绍
4.2 单体项目部署:
1.云服务器的购买
2.相关环境的安装,准备:
后端,前端
jdk,maven,tomcat,nginx,
3.Linux里面安装Nginx服务器
部署项目的时候,配置Nginx
4.购买,备案域名
腾讯云或者阿里云的购买
首先注册新的域名
再网站备案
5.使用SSL证书配置HTTPS
腾讯云购买SSL证书
https://www.bilibili.com/video/BV15V411U7Vd?p=11&spm_id_from=pageDriver
4.3 部署Springboot项目(java -jar xxx.jar):
4.3.1 windows
步骤:
1.打包:
idea工具打jar包,使用maven命令
2.运行jar文件:
(1)前台启动方式:java -jar xxx.jar
(2)后台启动方式:java -jar xxx.jar &
区别:
前台启动 Ctrl + c 会关闭程序,
后台启动 不会
3.将上面的两个命令写成脚本,直接启动:
java -jar xxx.jar >nohup.out 2>&1&
命令解析:
nohupt.out:将标准输出日志打印到指定的文件nohup.out
2>&1:输出所有的日志文件
&: 后台启动
部署发包记录:
zip包,将引入的外部jar等资源文件也上传到服务器
jar包:只是将.class字节码文件上传到服务器
注意:
当项目引入新的jar包的时候,发jar包失败
则需要发zip包,将新引入的jar包也上传到服务器
4.3.2 linux环境上部署目录:
通过脚本启动项目命令:
./startup.sh xxx.jar
就可以成功将项目启动了,然后页面可以访问到。
注意事项
linux环境下注意关闭防火墙,否则部署之后,经常会访问不到网页。如果linux环境下安装了java的一些环境,还可以通过jps命令,查看哪些已经启动的java进程。
4.4 Linux 实操命令:
linux目录解析:
opt/:主要放安装包 的目录
/usr/local: 软件安装的目录
linux命令:
cd: 进入指定目录
cd ../ :到上一级目录
rz : 上传文件(从window上传文件到linux服务器)
wget: linux最常用的下载命令,
一般的使用方法是: wget + 空格 + 要下载文件的url路径
例如: # wget http://www.linuxsense.org/xxxx/xxx.tar.gz
tar -zxvf: 解压压缩包
解析:
linux命令的 - 后面有多个字母代表有多个参数
z: 压缩文件是.tar.gz结尾的,所以用tar命令 -z进行筛选
x: 进行解压操作
v: 显示信息
f: 指定是哪个需要解压的文件
cp 文件名 路径: 拷贝文件,将某个文件拷贝到指定目录下
cp -r:递归拷贝文件夹和其里面的文件
mv:移动文件夹
ex: mv 文件 a b -> 将文件从a目录移动到b目录
rm:删除文件件
ex:rm 文件1 -> 删除文件1
rmdir: 删除空目录
rm -rf: 删除目录(递归删除,谨慎使用)
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,
现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf
即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,
不作任何提示的意思
方法:
1、删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access
目录以及其下所有文件、文件夹
2、删除文件使用实例:rm -f /var/log/httpd/access.log将会
强制删除/var/log/httpd/access.log这个文件
注意事项:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
tar -vxf : 解压.tar.xz为后缀的压缩包
tar -zvxf : 解压.tar.xz为后缀的压缩包
upzip: 解压.zip为后缀的压缩包
rz: 上传文件到linux服务器
sz: 从linux服务器下载文件
touch :新建文件
vim :编辑文件
编辑完按Esc退出编辑模式此时输入:
i:开始编辑 打开编辑模式
保存退出编辑文件
:w : 保存当前文件
:x :保存文件且退出
:q : 退出 vi编辑
:wq:保存文件且退出vi:w
:q!:不保存文件退出vi
cat :查看文件内容
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹.
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/c
Linux日志中如何查找关键字及其前后的信息
通过grep搜索 xxx.log 日志中的关键字,高亮显示
cat xxx.log | grep "关键字"
然后再根据上一步查找到的 trace: id 会话id搜索同一个会话的日志即可
cat xxx.log | grep "trace: id]"
参考:https://www.cnblogs.com/wintest/p/11676966.h
五、网络通讯介绍
5.1、 网络分层
5.2、网络基础知识
5.3、TCP
1.概述:分层
实例:
发的时候是封装:
收的时候是分用:
环回接口:
5.4、UDP
5.5、HTTP
5.6、SOCKET
5.6.1、 BIO(Blocking IO)程序
并发高了,存在阻塞问题,使用BIO会不合适,在jdk 1.4之后就会引入了NIO (不阻塞的IO )。
没有记太多笔记,学习地址可跳转至下方链接(没有打广告,个人博客,自己记录学习而已):
https://www.bilibili.com/video/BV19K4y1Q7Yt?p=2&spm_id_from=pageDriver
5.6.2、 NIO 程序
NIO解决了BIO阻塞问题,还有只能单线程处理一个客户端连接的问题(除非创建多线程处理)
这样的NIO存在的问题?
答:比如1w个链接,只有3个客户端链接有读写事件,但是还是每次都会遍历1w次,这样就浪费资源。
如果优化?工作中实际使用的NIO是如何优化的?
答:优化方式
NIO的模式讲解图:
客户端链接对应的socketChannel会注册到selector(多路复用器),selector (ServerSocketChannel) 会去监听有读写事件的客户端链接(socketChannel),把它们存在就绪事件列表rdlist,遍历的时候,只去遍历rdlist(有读写事件的客户端链接)。
Java语言的跨平台:
windows版本的jdk:select()方法的底层就是调用windows版本的方法创建select
linux版本的jdk:select()方法的底层是调用linux版本的方法创建select
macos版本的jkd:select方法的底层是调用macos版本的方法创建select
所以java语言的跨平台性其实就是,针对于不同版本的系统,jdk在底层方法调用的时候,判断了不同的系统,调用的是不同的方法。
Java里面创建select()的时候,实际底层是,linux系统的epoll()函数帮我们创建了c语言的级别的epoll()数据结构体。(也可以理解为,c语言帮我们创建了epoll实例对象,存储实现集合)
如何查看linux系统的epoll()函数底层是如何实现的呢?
1.下载linux的源码来看,linux是由c语言和汇编语言写的,看起来难度大
2.百度
3.直接在linux系统里面使用 man 命令 + epoll(),linux系统会给我反馈此函数的一些英文描述
Selector.open()方法底层调用解析:
epoll()底层实现原理:
epoll()3个重要函数的讲解:
1.epoll_create()
2.epoll_ctl()
3.epoll_wait()
channel的是否有事件的监听,底层实际是操作系统帮我们监听的:是由操作系统的中断程序来感知响应监控的。
2.epoll_ctl底层的监听,存储channel的原理:
3.epoll_wait()的作用:
while循环去处理有事件发生的channel
有事件发生就跳出阻塞,处理channel
没有事件发生就阻塞,等待事件的发生
5.6.3、 Netty
5.6.4、 Redis底层基于epoll的实现原理
最后
以上就是笑点低小馒头为你收集整理的01-计算机原理基础一、计算机原理基础三、虚拟机安装与使用四、Linux系统介绍五、网络通讯介绍的全部内容,希望文章能够帮你解决01-计算机原理基础一、计算机原理基础三、虚拟机安装与使用四、Linux系统介绍五、网络通讯介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复