Netty 系列文章之基本组件概览

前言

在之前的文章Netty 入门初体验简单介绍了 Netty 服务端和客户端的例子,下面依旧以Netty 服务端 demo 为例,来简单阐述下 Netty 的基本组件。

Read More

Bagikan Komentar

Java NIO 系列文章之 浅析Reactor模式

前言

最近研究 Java NIO 的时候,常常看到一种 设计模式——Reactor模式,以前没接触过这个模式在Netty中也有应用,那么Reactor模式是什么?为什么要使用Reactor模式?在NIO中如何实现Reactor模式?下面将揭开 Reactor的神秘面纱

下面的介绍参考了网上很多相关资料,所以可能会与网上某些资料有重复的情况

Reactor的介绍

Reactor 是一种和 IO 相关的设计模式,Java中的NIO中天生就对 Reactor模式提供了很好的支持,比较著名的就是 Doung Lea 大神在 《Scalable IO in Java》演示如何使用 NIO 实现Reactor模式

Read More

Bagikan Komentar

Netty 入门初体验

前言

这篇主要介绍一个Netty 客户端与服务端的示例代码,对Netty有一个直观感受,看看如何使用Netty,后续文章会对Netty的各个组件进行详细分析

Netty简介

Netty是一款异步的事件驱动的网络应用程序框架,支持快速开发可维护的高性能的面向协议的服务器和客户端。Netty主要是对java 的 nio包进行的封装

Read More

Bagikan Komentar

springboot系列文章之 集成redis 服务 (Lettuce & Jedis)

前言

在实际项目开发过程中,相信很多人都有用到过 redis 这个NoSQL,这篇文章就详细讲讲springboot如何整合 redis

Redis 简介

简单介绍下Redis:

Redis是一个开源的使用 ANSI C语言编写,支持网络,可基于内存也可持久化的日志型,Key-Value数据库,并提供了多种语言的 API ,相比 Memcached 它支持存储的类型相对更多 (字符,哈希,集合,有序集合,列表等),同时Redis是线程安全的。

Read More

Bagikan Komentar

浅谈限流算法

前言

之前有参与过一个小型的校园抢票系统的部分设计,里面就涉及到关于高并发下如何进行限流的问题,当时的做法是直接利用 redis进行限流,后期维护的时候发现自己对限流这块掌握的不好,于是就从网上查资料去研究 限流的应用,下面的总结也是基于网上的资料写的,肯定与网上的内容有重叠的情况,这里算是做个记录总结一下吧。

限流简介

在高并发项目中,经常会存在短时间内用户访问人数过多导致系统崩溃的问题,这个时候一个解决方法就是利用限流

限流的目的是通过对并发访问、请求进行限速或者一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务,排队或等待,降级等

Read More

Bagikan Komentar

springboot系列文章之过滤器 vs 拦截器

前言

之前实际开发项目的时候,虽然有用过滤器和拦截器,但是理解上还是有点懵懵懂懂的,没有彻底明白,这篇文章就来仔细剖析下这二者的区别与联系。

过滤器

过滤器Filter,是在Servlet规范中定义的,是Servlet容器支持的,该接口定义在 javax.servlet包下,主要是在客户端请求(HttpServletRequest)进行预处理,以及对服务器响应(HttpServletResponse)进行后处理。接口代码如下:

Read More

Bagikan Komentar

springboot系列文章之集成WebSocket进行广播式消息推送

前言

在springboot整合websocket之前,先简单阐述下websocket的基本概念,以及与它相关的sockjs,stomp又是什么。

WebSocket简介

WebSocket协议是 HTML5新增的一种在单个TCP连接上进行全双工通讯的协议,在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成一条快速通道,两者之间就直接可以数据相互传送了。

WebSocket与HTTP的不同之处在于:

WebSocket是一种全双工通信协议,在建立连接后,WebSocket服务器和浏览器端都能够主动的向对方发送消息,就像Socket一样。而HTTP只能由客户端发起请求,服务器返回查询结果,做不到服务器主动向客户端发送请求,如下图所示

Read More

Bagikan Komentar

springboot系列文章之使用单元测试

前言

springboot提供了 spirng-boot-starter-test以供开发者使用单元测试,在引入 spring-boot-starter-test依赖后:

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

Read More

Bagikan Komentar

springboot系列文章之日志配置

前言

下面的总结基本上来自网络与官方文档,这里做一个记录,方便以后查看

SpringBoot 内部采用的是 Commons Logging进行日志记录,但是默认配置也提供了对常用日志的支持,如: Java Util LoggingLog4j,Log4j2Logback。每种Logger 都可以通过配置使用控制台或者文件输出日志内容。

Read More

Bagikan Komentar

springboot系列文章之实现跨域请求(CORS)

CORS介绍

跨域资源共享向来都是热门的需求,我们可以使用 CORS 来快速实现 跨域访问,只需要在服务端进行授权即可,无需在前端添加额外的设置

简单说,CORS是一种访问机制,英文全称: Cross-Origin Resource Sharing,即我们说的跨域资源共享。当一个资源从与该资源本身所在服务器不同的域或端口请求一个资源时,资源会发起一个跨域HTTP请求。比如,在一个域名下的网页中,调用另一个域名中的资源。

Read More

Bagikan Komentar