老坛の菜园子

好记性不如乱笔头


  • 首页

  • 分类41

  • 标签31

  • 归档348

  • 关于

  • 搜索

NAT原理及NAT技术实现

发表于 2019-02-20 | 分类于 Network
NAT简介NAT,Network Address Translation,中文为网络地址转换。NAT是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成公网网络IP地址的技术。因此我们可以认为,NAT在一定程度上,能够有效的解决公网IPv4地址不足的问题。 NAT功能通常被集成到路由器 ...
阅读全文 »

CPU与IO设备数据交互方式

发表于 2019-02-20 | 分类于 HardWare
CPU与IO设备交互CPU与IO设备的数据交换方式主要有程序查询方式、程序中断方式以及DMA方式三种。 程序查询方式CPU按照IO设备的优先级按序查询IO设备是否已有数据准备就绪。 程序中断方式当IO设置有数据准备就绪时,就向操作系统发起中断信号,然后又操作系统启动中断处理程序,来响应IO设备。 DMA方式DMA,全称为Direct Memory Access,直接内存存取。DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA 控制器来实行和 ...
阅读全文 »

操作系统之内存管理

发表于 2019-02-20 | 分类于 OS
操作系统的内存管理方式操作系统的内存管理方式主要有连续分配方式、分页存储管理方式、分段存储管理方式以及段页式存储管理方式四种。 (1)连续分配方式 连续分配方式,是指操作系统为一个用户程序分配一个连续的内存空间。这种分配方式曾被广泛应用于20世纪60~70年代的OS中,它至今仍在内存分配方式中占有一席之地。又可把连续分配方式进一步分为单一连续分配、固定分区分配、动态分区分配以及动态重定位分区分配四种方式。 连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须 ...
阅读全文 »

系统调用与zero copy技术

发表于 2019-02-19 | 分类于 OS
系统调用操作系统提供了底层各种硬件资源的抽象层,应用程序必须通过这个抽象层来访问硬件资源。在抽象层之下就是操作系统的内核。 当应用程序调用“系统调用”接口(如read、write、sendfile、fork以及exec等等)时,就会让应用程序从用户态切换到内核态,也就是执行内核的代码和数据。 read和write系统调用read是从磁盘读取数据的系统调用,write是向本地磁盘或socket写数据的系统调用。如下是应用程序从磁盘中读取数据,然后通过socket发送到网络中的一个系统调用过程: ...
阅读全文 »

DPDK与DPVS技术原理与应用

发表于 2019-02-18 | 分类于 SRE
DPDK技术简介Intel® DPDK全称Intel Data Plane Development Kit,是Intel提供的数据平面开发工具集,为Intel Architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。目前已经验证可以运行在大多数Linux操作系统上,包括FreeBSD 9.2、Fedora release 18、Ubuntu 12.04 LTS、RedHat En ...
阅读全文 »

LVS技术原理及集群配置搭建

发表于 2019-02-18 | 分类于 SRE
LVS项目背景1998年5月,由章文嵩组织成立了Linux Virtual Server的自由软件项目,进行Linux服务器集群的开发工作。同时,Linux Virtual Server项目是国内最早出现的自由软件项目之一。 项目的成立目的就是,使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。 LVS的体系架构一般来说,LVS集群采用三层结构,其通用的体系结构 ...
阅读全文 »

VRRP协议及Keepalived原理与应用

发表于 2019-02-18 | 分类于 SRE
VRRP简介VRRP,Virtual Router Redundancy Protocol,虚拟路由器冗余协议。VRRP由IETF提出,目的是为了解决局域网中配置默认网关的单点失效问题,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。 VRRP将局域网的一组路由器(包括一个Master即活动路由器和若干个Backup ...
阅读全文 »

JAVA中SPI机制总结

发表于 2019-02-14 | 分类于 JAVA
API与SPI面向对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。 当接口属于实现方时,实现方提供了接口和具体实现类,然后调用方通过引用接口来达到调用该实现类的功能。这中模式就是我们经常所说的API。 当接口属于调用方时,我们就将其称为SPI(全称为Service Provider Interface)。 SPISPI全称为(Service Provider Interface ...
阅读全文 »

悲观锁与乐观锁在MySQL中的应用

发表于 2019-02-14 | 分类于 数据库
数据库中的悲观锁与乐观锁数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像Memcache、Hibernate、Tair等都有类似的概念。 针对于不同的业务场景,应该选用不同的并发控制方式。所以,不要把乐观并发控制和悲观并发控 ...
阅读全文 »

MySQL存储引擎

发表于 2019-02-13 | 分类于 数据库
存储引擎介绍MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 简单来说,存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。 MySQL的存储引擎MySQL常见的存储引 ...
阅读全文 »
1…151617…35
锄禾小生

锄禾小生

348 日志
40 分类
31 标签
GitHub E-Mail Google Twitter
© 2023 锄禾小生
Hosted by 老坛の菜园子