随笔分类 - 互联网-开源框架
摘要:【Netty】(7) 搭建websocket服务器 说明:本篇博客是基于学习某网有关视频教学。目的:创建一个websocket服务器,获取客户端传来的数据,同时向客户端发送数据 一、服务端 1、Main主类 public class WSServer { public static void mai
阅读全文
摘要:【Netty】6 源码ServerBootstrap 之前写了两篇与Bootstrap相关的文章,一篇是ServerBootstrap的父类,一篇是客户端Bootstrap类,博客地址: 【Netty】源码AbstractBootstrap【Netty】源码 Bootstrap 所以接下来 有关Se
阅读全文
摘要:【Netty】5 源码 Bootstrap 上一篇讲了AbstractBootstrap,为这篇做了个铺垫。 一、概述 Bootstrap 是 Netty 提供的一个便利的工厂类, 我们可以通过它来完成 Netty 的客户端或服务器端的 Netty 初始化.Bootstrap: 用于客户端,只需要一
阅读全文
摘要:源码AbstractBootstrap 一、概念 AbstractBootstrap是一个工具类,用于服务器通道的一系列配置,绑定NioEventLoopGroup线程组,指定指定NIO的模式,指定子处理器,用于处理workerGroup,指定端口等。 通过类图我们知道AbstractBootstr
阅读全文
摘要:netty(3)—源码NioEventLoopGroup 一、概念 NioEventLoopGroup对象可以理解为一个线程池,内部维护了一组线程,每个线程负责处理多个Channel上的事件,而一个Channel只对应于一个线程,这样可以回避多线程下的数据同步问题。 我们先回顾下 上篇博客的服务器代
阅读全文
摘要:netty(2) 搭建一个简单服务器 效果:当用户访问:localhost:8088 后 服务器返回 “hello netty”; 一、服务端线程模型 下面的做法是服务端监听线程和 IO 线程分离,类似于 Reactor 的多线程模型,它的工作原理图如下(盗的图):这里netty版本是4.1.25
阅读全文
摘要:【netty】(1) BIO NIO AIO演变 BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。 Netty并非横空出世,它是在BIO,NIO,AIO演变
阅读全文
摘要:业务中很多需求都会用到类似feed流的架构。例如 微信朋友圈 微博 动态 1对N消息。 一般feed流的架构实现有下面几种。假如现在的业务场景是微博,然后当前的数据情况是: 用户A关注了用户B和C,用户D关注了用户B用户B发了微博A,B,用户C发了微博C,D 1. 拉 数据表 微博表(字段有:微博I
阅读全文
摘要:1、内容简介 本文将简要介绍 WebSocket 的由来、原理机制以及服务端/客户端实现,并以实际客户案例指导并讲解了如何使用 WebSocket 解决实时响应及服务端消息推送方面的问题。本文适用于熟悉 HTML 协议规范和 J2EE Web 编程的读者,旨在帮助读者快速熟悉 HTML5 WebSo
阅读全文
摘要:两个基本的概念 安全实体:系统需要保护的具体对象数据 权限:系统相关的功能操作,例如基本的CRUD Shiro 首先Shiro较之 Spring Security,Shiro在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。 Shiro是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、
阅读全文
摘要:7.0 driver模块 2018-11-10 22:30:19 6,053 4 driver,顾名思义为驱动。熟悉jdbc编程的同学都知道,当项目中需要操作数据库(oracle、sqlserver、mysql等)时,都需要在项目中引入对应的数据库的驱动。以mysql为例,我们需要引入的是mysql
阅读全文
摘要:5.0 store模块 2018-10-08 23:14:58 8,328 7 1 store模块简介 store模块用于binlog事件的存储 ,目前开源的版本中仅实现了Memory内存模式。官方文档中提到"后续计划增加本地file存储,mixed混合模式”,这句话大家不必当真,从笔者最开始接触c
阅读全文
摘要:3.0 server模块 server模块的核心接口是CanalServer,其有2个实现类CanalServerWithNetty、CanalServerWithEmbeded。关于CanalServer,官方文档中有有以下描述: 下图是笔者对官方文档的进一步描述: 左边的图 表示的是Canal独
阅读全文
摘要:1.0 canal源码分析简介 canal是阿里巴巴开源的mysql数据库binlog的增量订阅&消费组件。项目github地址为:https://github.com/alibaba/canal。 本教程是从源码的角度来分析canal,适用于对canal有一定基础的同学。本教程使用的版本是1.0.
阅读全文
摘要:背景 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Mar
阅读全文
摘要:第二十一章 授予身份及切换身份——《跟我学Shiro》 在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他秘书,只是想把工作委托给他;此时和我们可以使用Shiro的RunAs功能,即允许一个用户假装为另一个用户(如果他
阅读全文
摘要:第十四章 SSL——《跟我学Shiro》 对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问。 首先生成数字证书,生成证书到D:\localhost.keystore 使用JDK的keytool命令,生成证书(包含证书/公钥/私钥)到D:\loc
阅读全文
摘要:第八章 拦截器机制——《跟我学Shiro》 8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展;所以如果对Filter不熟悉可以参考《Servlet3.1规范》http://www.iteye.com/blogs/subjects/Servlet-3-1了解Filte
阅读全文
摘要:第四章 INI配置——《跟我学Shiro》 之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始。 4.1 根对象
阅读全文
摘要:第一章 Shiro简介——《跟我学Shiro》 1.1 简介 Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂
阅读全文