自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 TCP的滑动窗口机制

TCP滑动窗口控制流量的原理TCP的滑动窗口机制 TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗口大小;一种是滑动的窗口。这个窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;同时接收方也维持着一个接收窗口,只有落在接收窗口内的帧才允许接收。这样通过调整发送方窗口和接收方窗口的大小可以实现...

2020-09-11 09:26:10 1245

转载 Java NIO?看这一篇就够了!

现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。在前面2篇文章《什么是Zero-Copy?》和《NIO相关基础篇》中我们学习了NIO的相关理论知识,而在本篇中我们一起来学习一下Java NIO的实战知识。全文较长,建议先马后看(记得关注不迷路)。一、概述NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符

2020-09-10 23:11:47 194

转载 一文搞懂什么是TCP/IP协议

什么是TCP/IP协议?计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的通信,所有这一切都需要一种规则.而我们就将这种规则称为协议 (protocol).也就是说,TCP/IP 是互联网相关各类协议族的总称。TCP/IP 的分层管理TCP/IP协议里最重要的一点就是分层。TCP/IP协议族按层次分别为应用层,传输层,网络层,数据链路层,物理层。.

2020-09-10 17:23:05 280

转载 UDP数据报

UDP数据报一、UDP的概述(User Datagram Protocol,用户数据报协议)UDP是传输层的协议,功能即为在IP的数据报服务之上增加了最基本的服务:复用和分用以及差错检测。UDP提供不可靠服务,具有TCP所没有的优势: UDP无连接,时间上不存在建立连接需要的时延。空间上,TCP需要在端系统中维护连接状态,需要一定的开销。此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UCP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。 举个例子:

2020-09-10 17:18:10 7677

转载 Kafka vs RocketMQ—— Topic数量对单机性能的影响

 引言上一期我们对比了三类消息产品(Kafka、RabbitMQ、RocketMQ)单纯发送小消息的性能,受到了程序猿们的广泛关注,其中大家对这种单纯的发送场景感到并不过瘾,因为没有任何一个网站的业务只有发送消息。本期,我们就来模拟一个真实的场景:消息的发送和订阅一定是共存的 要支持多个订阅端订阅自己感兴趣的消息 鉴于上一期Kafka和RocketMQ的指标和关注度很高,本期我们将...

2018-12-11 21:46:13 1152

转载 MQ选型对比RabbitMQ RocketMQ ActiveMQ

几种MQ产品说明:     ZeroMQ :  扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码    RabbitMQ :是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致...

2018-12-11 21:17:35 364

转载 Java的业务逻辑验证框架fluent-validator

1 背景在互联网行业中,基于Java开发的业务类系统,不管是服务端还是客户端,业务逻辑代码的更新往往是非常频繁的,这源于功能的快速迭代特性。在一般公司内部,特别是使用Java web技术构建的平台中,不管是基于模块化还是服务化的,业务逻辑都会相对复杂。这些系统之间、系统内部往往存在大量的API接口,这些接口一般都需要对入参(输入参数的简称)做校验,以保证: 1) 核心业务逻辑能够顺利按照预期执行。...

2018-07-06 14:53:41 2222

转载 消息中间件企业级应用

出处:http://www.cnblogs.com/itdragon/消息中间件企业级应用众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统藕合,流量削锋,分布式事务管理等。实现了一个高性能,高可用,高扩展的系统。本章通过介绍消息中间件的应用场景,消息中间件的传输模式,ActiveMQ快速入门 三个方面来对消息中间件进行入门介绍。还在等什么,...

2018-06-26 18:45:53 134

转载 RabbitMQ入门介绍

RabbitMQ 是一个消息代理。这主要的原理十分简单,就是通过接受和转发消息。你可以把它想象成邮局:当你将一个包裹送到邮局,你会相信邮递员先生最终会将邮件送到接件人手上。RabbitMQ就好比一个邮箱,邮局或邮递员。邮局和RabbitMQ两种主要的不同之处在于,RabbitMQ不处理文件,而是接受,并存储和以二进制形式将消息转发。RabbitMQ,在消息的传送过程中,我们使用一些标准称呼。生产过...

2018-06-26 16:48:22 188

转载 Shiro安全框架入门篇(登录验证实例详解与源码)

转载出处 https://blog.csdn.net/u013142781/article/details/50629708一、Shiro框架简单介绍Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证,授权,企业会话管理和加密等。Shiro的具体功能点如下:(1)身份认证/登录,验证用户是不是...

2018-06-26 16:40:05 174

转载 Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的...

2018-06-26 16:13:46 108

转载 我读过的最好的epoll讲解--转自”知乎“

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从soc...

2018-06-19 09:42:10 228

转载 linux中fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不...

2018-06-15 17:44:09 95

转载 关于/proc/进程idpid/fd

当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。epoll创建的fd是: lrwx------ 1 root root 64 Aug 20 11:04 3 -> anon_inode:[eventpoll]这种类型的inode,是epoll...

2018-06-15 17:28:29 13556

转载 Linux /proc/pid目录下文件的含义

attr:进程的属性 cmdline:启动进程时执行的命令 cwd:指向进程当前工作目录的软链 environ:进程执行时使用的环境变量,文件内容使用null字节('\0')分隔,然后以null字节结束。因此获取进程使用的环境变量使用如下:(cat /proc/pid/environ; echo) | tr '\000' '\n' fd: 此目录包含进程打开的所有文件,文件名为文件描述符,目录中每...

2018-06-15 17:25:44 540

转载 epoll使用详解(精髓)

epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu...

2018-06-15 17:24:45 107

转载 初步探索Nginx高并发原理

Nginx首先要明白,Nginx 采用的是多进程(单线程) & 多路IO复用模型。使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器。多进程的工作模式1、Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程。2、接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。3、 master 进程能监控 wo...

2018-06-15 17:22:23 98

转载 Nginx系列(五)--nginx+tomcat实现负载均衡

Nginx占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用Nginx网站用户有:新浪,网易,腾讯等.        本文主要是基于Nginx搭建tomcat集群.环境:         Win8.1,JDK 1.6 , Nginx1.9.3Tomcat 7.0.63(两个tomcat服务器)结构:                     一、N...

2018-06-15 17:21:31 109

转载 Nginx系列(四)--工作原理

     上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计,master进程用来管理通过fork子进程与子进程通信,子进程通过处理进程信号接到master的通信去处理请求。 Nginx工作原理:          Nginx会按需同时运行多个进程:一个主进程和几个工作进程,配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程(cache manager)...

2018-06-15 17:20:55 117

转载 Nginx系列(三)--管理进程、多工作进程设计

Nginx由一个master进程和多个worker进程组成,但master进程或者worker进程中并不会再创建线程。 一、master进程和worker进程的作用 master进程        不需要处理网络事件,不负责业务的执行,只会通过管理worker等子进程来实现重启服务、平滑升级、更换日志文件、配置文件实时生效等功能。         master是通过fork系统调用子进程来实现和子...

2018-06-15 17:20:19 186

转载 Nginx系列(二)--模块化

高度模块化的设计设Nginx架构的基础。在Nginx中,除了少量的核心代码,其他一切皆为模块。模块化设计具有以下特点:1、高度抽象的模块接口2、灵活性3、配置模块的设计使Nginx提供了高可配置性、高可扩展性、高可定制性、高可伸缩性。4、核心模块接口简单化5、多层次、多类别的模块设计       所有模块间是分层次、分类别的,官方Nginx有五大类型的模块:核心模块、配置模块、事件模块、HTTP模...

2018-06-15 17:19:41 113

转载 Nginx系列(一)--nginx是什么?

一、介绍        Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。         Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师lgor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存...

2018-06-15 17:19:02 128

转载 quartz job 注入 spring 管理的 bean

转载自 https://blog.csdn.net/leocnx/article/details/54573275背景:在quartz job 里调用spring 容器管理的bean,出现空指针异常,即没有注入成功,在网上搜了很多类似的问题,最终发现都是copy改,经过各种折腾算是解决了问题。解决方法有两种:第一种方式:不去继承QuartzJobBean,只是一个独立的job bean,通过配置M...

2018-03-27 10:47:19 3052

转载 MySQL 索引及优化实战(转载自蒲苇 CSDN技术头条)

索引概念和作用索引是一种使记录有序化的技术,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。索引的主要作用是加快数据查找速度,提高数据库的性能。MySQL 索引类型从物理存储角度上,索引可以分为聚集索引和非聚集索引。1. 聚集索引(Clustered Index)聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引。2. 非聚集索引(Non-...

2018-03-27 09:37:39 1257

转载 Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

版权声明:本文为博主-阿飞(dufyun)-原创文章,未经博主允许可转载,但请标明出处,谢谢! https://blog.csdn.net/u010648555/article/details/60767633目录(?)[+]当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的坏习惯。通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Qu...

2018-03-26 11:57:00 140

转载 Quartz学习——Spring和Quartz集成详解(三)

版权声明:本文为博主-阿飞(dufyun)-原创文章,未经博主允许可转载,但请标明出处,谢谢! https://blog.csdn.net/u010648555/article/details/54891264Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度。下面就对Spring集成Quartz进行简单的介绍和示例讲解!和上一节...

2018-03-26 11:47:13 212

转载 Quartz学习——Quartz简单入门Demo(二)

版权声明:本文为博主-阿飞(dufyun)-原创文章,未经博主允许可转载,但请标明出处,谢谢! https://blog.csdn.net/u010648555/article/details/54863394要学习Quartz框架,首先大概了解了Quartz的基本知识后,在通过简单的例子入门,一步一个脚印的走下去。 下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,...

2018-03-26 11:32:46 203

转载 Quartz学习——Quartz大致介绍(一)

版权声明:本文为博主-阿飞(dufyun)-原创文章,未经博主允许可转载,但请标明出处,谢谢! https://blog.csdn.net/u010648555/article/details/548631441. 介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先...

2018-03-26 11:31:19 216

转载 TCP/IP协议(二)

TCP/IP协议(二)tcp/ip基础知识今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰。。。然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题。。。。。。  一、TCP/IP的标准化1、TCP/IP的含义一般来说,TCP/IP是利

2018-01-21 13:41:45 220

转载 TCP/IP协议(一)

TCP/IP协议(一)网络基础知识参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述)、OSI参考模型、网络概念的本质、网络构建的设备等  下面是协议层从底层至顶层的一个模型图: 一、计算机网络的背景1.1 计算机的发展有人说

2018-01-21 13:40:08 449

转载 设计模式学习笔记(六)建造者模式

建造者模式(Builder Pattern),也叫生成器模式,定义如下:Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与它的表

2017-12-09 12:27:23 109

转载 设计模式学习笔记(五)模版方法模式

模版方法模式(Template Method Pattern):Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclassed redefine certain steps of an algorithm with

2017-12-09 12:18:55 270

转载 设计模式学习笔记(四)抽象工厂模式

抽象工厂模式(Abstract Factory Pattern):Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,并且无需指定它们的具体类。)

2017-12-09 12:16:40 141

转载 设计模式学习笔记(三)工厂方法模式

工厂方法模式: Define an interface for creating an object, but let subclassed decide which class to instantiate. Factory Method lets a class defer instantiation to subclassed.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。

2017-12-09 12:11:37 158

原创 设计模式学习笔记(二)单例模式

单例模式(Singleton Pattern):Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,并向整个系统提供这个实例的全局访问点。)       单例模式的优点:由于单例模式在内存中只有一个实例,减少了内存开支,特

2017-12-09 11:29:20 358

原创 设计模式学习笔记(一)六大原则

设计模式遵循六大原则:单一职责原则、开闭原则、里氏替换原则、最少知识原则(迪米特法则)、接口隔离原则、依赖倒置原则

2017-12-08 20:51:47 150

转载 JSON-RPC轻量级远程调用协议介绍及使用

JSON-RPC轻量级远程调用协议介绍及使用目录技术简介    1一、JSON-RPC协议描述    1二、JSON-RPC调用简单示例    12.1、服务器端Java调用示例    12.2、Java客户端调用示例    22.3、PHP客户端调用示例    22.3、JavaScript客户端调用示例    22.4、直

2017-12-05 23:31:44 373

转载 设置Tomcat的UTF-8编码

利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。           

2017-12-05 23:05:11 3020

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除