0%

netty简介

netty是一个异步的、基于事件驱动的网络应用框架,用来快速开发高性能、高可靠的网络IO程序,主要针对在TCP协议下,面向客户端的高并发应用,本质是一个NIO框架

三种I/O模型

目前java支持三种I/O模型,BIO、NIO、AIO

BIO

同步阻塞IO,一个连接请求对应一个线程,如果该连接没有做任何事情会造成不必要的开销

NIO

同步非阻塞,一个线程处理多个连接请求,客户端发送的连接请求会注册到多路复用器上,多路复用器轮询到连接有I/O请求进行处理

AIO

异步非阻塞,引入了异步通道的概念,采用Proactor模式,有效地请求才会启动线程,特点是先由操作系统完成后才通知服务端程序启动线程去处理,适用于连接数较多且连接时间较长的应用

应用层简析

应用层作为离我们最近的一层,

其中的协议包含HTTP(超文本传输协议)、FTP、SMTP(简单邮件传输协议)

加载自定义yml配置文件

springboot默认加载的是application.yml/properties配置文件,对于自定义的properties配置文件使用@PropertySource和@ConfigurationProperties注解搭配使用也可以进行加载注入,但是properties配置文件没有yml配置文件有层次感,如果使用自定义的yml配置文件却发现springboot并没有将yml中的配置属性注入进去

这里可以自定义PropertySourceFactory来加载yml(本质就是自己解析yml配置文件,转换成Properties)

阅读全文 »

传输层简析

传输层架构在网络层之上,应用层之下,需要提供高效、可靠地数据传输服务,同样提供了有连接和无连接的服务,且与网络层对于有连接和无连接的操作也相当类似,两者不同的是传输层的代码是完全运行在用户的机器上,但是网络层的代码主要是运行在由运营商操作的路由器上,所以用户对于网络层并没有真正的控制权,只能在网络层之上再加一层传输层来提高网络的服务质量

传输层上的协议主要是TCP和UDP两种

协议

TCP面向连接的协议

TCP原语
  • SOCKET 创建一个通信端点
  • BIND 为套接字分配地址,将套接字与一个本地地址关联
  • LISTEN 为入境呼叫分配队列空间
  • ACCEPT 服务端被动创建一个连接
  • CONNECT 客户端主动创建一个连接
  • SEND 发送数据
  • RECEIVE 接收数据
  • CLOSE 释放连接

UDP无连接的协议

网络层简析

网络层需要将源端数据包发送到接收方,在此过程中需要经过多个中间路由器,所以网络层必须知道网络拓扑结构(所有路由器和链路的集合),并从中选择出适当的路径

网络层提供了两种服务,一种是无连接的服务,一种是有连接的服务

协议有IP、ICMP、ARP、DHCP

无连接服务

在使用无连接服务的时候所有的数据包都独立的注入到网络中,并且每个数据包独立路由,此时数据包被称为数据报

有连接服务

在使用有连接的服务时,在发送数据包之前,首先需要建立一条从源路由器到目标路由器之间的路径

数据链路层简析

数据链路层从网络层获得数据包,然后将这些数据包封装成帧进行传输,每个帧包含一个帧头、一个有效载荷(数据包)以及一个帧尾,使用物理层提供的服务再通信信道上发送和接收比特,所包含的功能有

  • 向网络层提供一个定义良好的服务接口
  • 处理传输错误
  • 调节数据流,确保慢速的接收方不会被快速的发送方淹没
阅读全文 »

项目监测

springboot中提供了actuator项目来进行监测和度量

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

actuator中提供了多个端点来对springboot项目进行监测

阅读全文 »

物理层简析

物理层作为网络协议模型的最底层,是构建网络的基础,其作用是将比特从一台机器传输到另一台机器

传输介质

物理层中实际传输所用的物理介质可有多种选择,每一种传输介质都有独特的性质,体现在带宽、延迟、成本以及安装和维护的难易程度上,大致可分为引导性介质和非引导性介质两大类

引导性介质

引导性介质也称为有线介质,如铜线、光纤等

阅读全文 »

个域网

个域网(PAN,Personal Area Network),是指允许设备围绕着一个人进行通信,你可能没有听说过个域网,不过个域网中常用的的通信技术大家应该都听说过,将这些设备连接起来的无线网络就是蓝牙

局域网

局域网(LAN,Local Area Network),是一种私有网络,被广泛应用在连接个人计算机和消费电子设备,使它们能够共享资源和交换信息。

想要使用局域网,需要一个设备进行通信,这个设备可以使接入点(AP,Access Point)、无线路由器(wireless rounter)或者基站(base station),主要负责中继无线计算机之间的数据包和负责中继无线计算机和Internet之间的数据包

802.11

802.11是无线局域网的标准,俗称Wifi