排序:
默认
按更新时间
按访问量

任务调度框架Quartz(一) Quartz——一个强大的定时任务调度框架

Quartz,水晶、石英,一个简单朴素有美丽的名字,在Java程序界,Quartz大名鼎鼎,很多Java应用几乎都集成或构建了一个定时任务调度系统,Quartz是一个定时任务调度框架。 何为定时任务调度框架?简而言之,它可以领会我们的意图在未来某个时刻做我们想要做的事情,比如,女友生日那天定时发...

2018-11-07 09:08:56

阅读数:37

评论数:0

Netty学习(十)-Netty文件上传

今天我们来完成一个使用netty进行文件传输的任务。在实际项目中,文件传输通常采用FTP或者HTTP附件的方式。事实上通过TCP Socket+File的方式进行文件传输也有一定的应用场景,尽管不是主流,但是掌握这种文件传输方式还是比较重要的,特别是针对两个跨主机的JVM进程之间进行持久化数据的相...

2018-05-29 17:26:11

阅读数:79

评论数:0

Netty学习(九)-Netty编解码技术之Marshalling

前面我们讲过protobuf的使用,主流的编解码框架其实还有很多种:①JBoss的Marshalling包 ②google的Protobuf ③基于Protobuf的Kyro ④Apache的Thrift 12345678JBoss Marshalling是一个Java对象的序列化API包,...

2018-05-29 17:25:03

阅读数:71

评论数:0

Netty学习(八)-Netty的心跳机制

我们知道在TCP长连接或者WebSocket长连接中一般我们都会使用心跳机制–即发送特殊的数据包来通告对方自己的业务还没有办完,不要关闭链接。那么心跳机制可以用来做什么呢?我们知道网络的传输是不可靠的,当我们发起一个链接请求的过程之中会发生什么事情谁都无法预料,或者断电,服务器重启,断网线之类。如...

2018-05-29 17:24:23

阅读数:48

评论数:0

Netty学习(七)-Netty编解码技术以及ProtoBuf和Thrift的介绍

在前几节我们学习过处理粘包和拆包的问题,用到了Netty提供的几个解码器对不同情况的问题进行处理。功能很是强大。我们有没有去想这么强大的功能是如何实现的呢?背后又用到了什么技术?这一节我们就来处理这个问题。了解一下编码解码到底是如何处理的。通常说的编码(Encoder)也就是发生在发送消息的时候需...

2018-05-29 17:23:22

阅读数:60

评论数:0

Netty学习(六)-LengthFieldBasedFrameDecoder解码器

在TCP协议中我们知道当我们在接收消息时候,我们如何判断我们一次读取到的包就是整包消息呢,特别是对于使用了长连接和使用了非阻塞I/O的程序。上节我们也说了上层应用协议为了对消息进行区分一般采用4种方式。前面三种我们都说了,第四种是:通过在消息头定义长度字段来标识消息总长度。这个我们还没讲。当然Ne...

2018-05-29 17:22:33

阅读数:38

评论数:0

Netty学习(五)-DelimiterBasedFrameDecoder

上一节我们说了LineBasedframeDecoder来解决粘包拆包的问题,TCP以流的方式进行数据传输,上层应用协议为了对消息进行区分,一般采用如下4种方式:消息长度固定,累计读取到消息长度总和为定长Len的报文之后即认为是读取到了一个完整的消息。计数器归位,重新读取。将回车换行符作为消息结束...

2018-05-29 17:21:51

阅读数:208

评论数:0

Netty学习(四)-TCP粘包和拆包

我们都知道TCP是基于字节流的传输协议。那么数据在通信层传播其实就像河水一样并没有明显的分界线,而数据具体表示什么意思什么地方有句号什么地方有分号这个对于TCP底层来说并不清楚。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段,之后TCP把结果包...

2018-05-29 17:20:36

阅读数:27

评论数:0

Netty学习(三)-Netty重要接口讲解

上一节我们写了一个HelloWorld,对于Netty的运行有了一定的了解,知道Netty是如何启动客户端和服务器端。这一节我们简要的讲解一下几个重要的接口,初步探讨Netty的运行机制,当然刚学Netty就深入原理肯定是很枯燥的,所以我们就点到为止。1. ChannelPipeLine和Chan...

2018-05-29 17:18:47

阅读数:49

评论数:0

Netty学习(二)-Helloworld Netty

这一节我们来讲解Netty,使用Netty之前我们先了解一下Netty能做什么,无为而学,岂不是白费力气!1.使用Netty能够做什么开发异步、非阻塞的TCP网络应用程序;开发异步、非阻塞的UDP网络应用程序;开发异步文件传输应用程序;开发异步HTTP服务端和客户端应用程序;提供对多种编解码框架的...

2018-05-29 17:17:39

阅读数:30

评论数:0

Netty学习(一)-为什么选择Netty

前面我们简单学习了NIO。我们知道java的I/O模型一共有四种,分别是:传统的BIO,伪异步I/O,NIO和AIO。为了澄清概念和分清区别,我们还是先简单的介绍一下他们的概念,然后再去比较优劣。以及探讨我们为什么使用netty。1.概念澄清1.1 BIOBIO,即Blocking I/O。网络编...

2018-05-29 17:15:40

阅读数:50

评论数:0

Redis 请务必注意 Redis 安全配置,否则将导致轻松被入侵

一、前言 前段时间,在做内网影响程度评估的时候写了扫描利用小脚本, 扫描后统计发现,内网中60%开放了redis6379端口的主机处于可以被利用的危险状态,因为都是一些默认配置造成的 考虑到本社区大部分开发者都会使用redis,特此分享下以便大家可以对自己公司的内网进行一个排查。 二、...

2017-12-25 14:10:37

阅读数:1199

评论数:0

rabbitMQ第五篇:Spring集成RabbitMQ

前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq。    首先引入配置文件org.springframework.amqp,如下 org.springframework.amqp s...

2017-12-22 16:04:09

阅读数:113

评论数:0

rabbitMQ第四篇:远程调用

前言:前面我们讲解的都是本地服务器,现在如果需要远程计算机上运行一个函数,等待结果。这就是一个不同的故事了,这种模式通常被称为远程过程调用或者RPC。 本章教程我们使用RabbitMQ搭建一个RPC系统,一个客户端和一个可扩展的RPC服务器,现在我们开始吧。 Callback queu...

2017-12-22 16:03:02

阅读数:81

评论数:0

rabbitMQ第三篇:采用不同的交换机规则

在上一篇我们都是采用发送信息到队列然后队列把信息在发送到消费者,其实实际情况并非如此,rabbitMQ其实真正的思想是生产者不发送任何信息到队列,甚至不知道信息将发送到哪个队列。相反生产者只能发送信息到交换机,交换机接收到生产者的信息,然后按照规则把它推送到对列中,交换机是如何做处理他接收到的信息...

2017-12-22 16:02:04

阅读数:85

评论数:0

rabbitMQ第二篇:java简单的实现RabbitMQ

前言:在这里我将用java来简单的实现rabbitMQ。下面我们带着下面问题来一步步的了解和学习rabbitMQ。 1:如果消费者连接中断,这期间我们应该怎么办 2:如何做到负载均衡 3:如何有效的将数据发送到相关的接收者?就是怎么样过滤 4:如何保证消费者收到完整正确的数...

2017-12-22 16:00:45

阅读数:80

评论数:0

rabbitMQ第一篇:rabbitMQ的安装和配置

在Windows下进行rabbitMQ的安装 第一步:软件安装 如果安装rabbitMQ首先安装基于erlang语言支持的OTP软件,然后在下载rabbitMQ软件进行安装(安装过程都是下一步,在此不在说了) 第二步:环境变量配置 如果上面完成安装以后要进行环境变量的配置,...

2017-12-22 15:57:55

阅读数:139

评论数:0

Windows 用bat脚本带配置启动redis,并用vb脚本使其在后台运行。

最近,在Windows上用开发PHP程序,需要用到Redis,每天要打开一个运行redis-server.exe的窗口 这样比较烦,因为窗口就一直打开着,不能关闭。   所以就想着通过写脚本的方式,让他在后台运行。 先写一个startup.bat脚本: @echo off d: cd /s...

2017-12-20 09:13:09

阅读数:556

评论数:0

RabbitMQ的应用场景以及基本原理介绍

1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式  (1)串行方式:将注册...

2017-12-07 10:57:07

阅读数:114

评论数:0

采用BigInteger进行的权限设计

最近看到了一个项目的权限是根据bigineger来进行计算的菜单权限,觉得还是不错,存储上只需要存储在一个字段里就可以了,通过计算算出该角色的菜单权限即可,效率也非常的快,放在session中也非常的小,下面简单说一下思路。         首先,将界面中选好的菜单树,勾选完成后传到后台,后...

2017-11-22 17:29:59

阅读数:91

评论数:0

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