wangJiaLun-go

王加伦的技术分享

0%

centos7安装nginx

阅读全文 »

在Linux上安装及配置MariaDB

安装MariaDB

1.切换到root用户,首先执行rpm -qa | grep -i mysql检查一下是否有已安装的与MySQL相关的东西,如果有,使用rpm -e --nodeps mysql*进行强制卸载

2.使用yum安装MariaDB,执行yum -y install mariadb mariadb-server

3.安装完成后,执行systemctl start mariadb 启动MariaDB,执行systemctl enable mariadb设置开机启动

阅读全文 »

基本概念

  • 镜像(Image)
    • 镜像就是一个只读的模板。
    • 镜像可以用来创建 Docker 容器。
  • 容器(Container)
    • 容器可以运行应用
    • 容器是从镜像创建的运行实例,允许被启动,开始,停止,删除
    • 各个容器之间相互隔离保证安全,相当于一个独立的linux环境
  • 仓库(Repository)
    • 仓库分为公开仓库(Public)和私有仓库(Private)两种形式
    • 仓库是集中存放镜像文件的场所
阅读全文 »

Spring Batch 基本介绍

首先,Spring Batch运行的基本单位是一个Job,一个Job就做一件批处理的事情。一个Job包含很多Step,step就是每个job要执行的单个步骤。如下图所示,Step里面,会有Tasklet,Tasklet是一个任务单元,它是属于可以重复利用的东西。

然后是Chunk,chunk就是数据块,你需要定义多大的数据量是一个chunk。Chunk里面就是不断循环的一个流程,读数据,处理数据,然后写数据。Spring Batch会不断的循环这个流程,直到批处理数据完成。

阅读全文 »

发起一次URL请求流程

  1. 在浏览器输入URL http://wangjialun.top/
  2. 浏览器通过DNS或者HTTPDNS去查找IP地址
  3. 知道目标地址后,浏览器会将请求打包,普通请求使用HTTP协议或者使用HTTPS加密传输
  4. DNS,HTTP,HTTPS所在的层为应用层,经过应用层封装后,浏览器会通过socket编程将应用层的包交给下一层传输层
  5. 传输层有两种协议,一种无连接的协议UDP,一种面向连接的协议TCP,TCP协议会保证这个包能够到达目的地,如果不能到达会重新发送
  6. TCP协议里面会有两个端口,一个是浏览器监听的端口,一个应用服务器监听的端口,操作系统一般通过端口来判断,得到的包交给哪个进程
  7. 传输层封装完毕后,浏览器会将包交给操作系统的网络层,网络层协议是IP协议,在IP协议中会有源IP地址,即浏览器所在机器IP地址和目标IP地址
  8. 操作系统知道目标IP后会通过CIDR进行判断,是否在局域网内,如果不在局域网内会获取DHCP或者手动配置的网关IP地址,通过ARP协议获取到MAC地址
  9. 操作系统接着将IP包交给下一层MAC层,网卡再将包发出去,因为包里面有MAC地址,所以可以到达网关
  10. 网关收到包以后,会根据路由表判断下一步怎么走,类似一个路由器通过OSPF和BGP路由协议获取到目标IP所在的MAC地址,网络包过关后通过这个MAC地址找到目标服务器
  11. 目标服务器校验MAC地址一致,取下MAC头,发送给操作系统的网络层,发现IP一致后取下IP头,IP头里面写上一层封装的TCP协议,然后交给传输层TCP,TCP对于收到的每个包都有一个回复的包说明收到了(注意这个不是请求的结果),回复沿路返回
  12. 网络包到达TCP层后,TCP头里面有目标端口号,通过这个端口号找到服务器监听这个端口的进程,将网络包发给这个进程应用

ip addr 解读

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:0c:3b:19 brd ff:ff:ff:ff:ff:ff
inet 172.16.12.178/18 brd 172.16.63.255 scope global dynamic eth0
   valid_lft 301621714sec preferred_lft 301621714sec
  • IP 地址后面有个scope eth0 这张网卡是 global 说明 eth0 这种网卡可以对外,可以接收来自各个地方的包,

    lo 的后面是host,说明这张网卡仅可以本机相互通信

    • lo 全称是loopback,又叫环回接口,通常被分配为127.0.0.1,这个地址用于本机通信,经过内核处理后直接返回,不在任何网络中出现
  • MAC地址

    • IP地址的上一行是 link/ether 00:16:3e:0c:3b:19 brd ff:ff:ff:ff:ff:ff ,这个地址是MAC地址,是网卡的物理地址,用十六进制,6个byte表示,MAC地址是唯一标识,具有一定的通信范围,局限在一个子网里面
  • 网络设备的状态标识<BROADCAST,MULTICAST,UP,LOWER_UP> (net_device flags)

    • UP 表示网卡处于启动状态
    • BROADCAST 表示这个网卡有广播地址,可以发送广播包
    • MULTICAST 表示网卡可以发送多播包
    • LOWER_UP 表示 L1 是启动的,即网线插着
    • MTU 1500 是指最大传输单元MTU为1500,这是以太网的默认值
    • qdisc pfifo_fast 全称 queueing discipline(排队规则), 内核如果需要通过某个网络接口发送数据包,都需要为这个接口配置qdisc(排队规则)把数据包加入队列
      • 最简单的 qdisc 是 pfifo, 不对进入的数据包做任何处理,数据包采用先入先出方式通过队列
      • pfifo_fast 的队列包含 三个波段(band).在每个波段中使用先进先出规则,三个波段的优先级也不同,band 0 的优先级最高 band 2 的最低, 如果band 0 里面也数据包, 系统不会处理band 1 里面的数据包,band 1 和 band 2 之间也一样, 数据包按照服务类型(Type of Service, TOS) 被分配到多个波段(band)里面,TOS 是 IP头里面的一个字段, 代表当前的包是高优先级还是低优先级的