- 博客(33)
- 资源 (3)
- 收藏
- 关注
原创 Netty编解码方案之Protobuf介绍
本文我们来给大家介绍下Netty中对传输数据编解码的解决方案ProtoBufProtobuf介绍1. Netty本身的编码解码的机制和问题分析Netty 自身提供了一些 codec(编解码器)Netty 提供的编码器StringEncoder,对字符串数据进行编码ObjectEncoder,对 Java 对象进行编码…Netty 提供的解码器StringDecoder, 对字...
2019-12-31 18:08:40 2427
原创 Netty案例介绍(websocket服务)
本文我们来实现一个基于WebSocket协议的案例。WebSocket案例1.需求分析 Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接.所有在有些情况下并不是太适用。这时websocket就是我们的一种实现方案,具体的websocket的内容网上很多,自行查阅哦,本文主要是介绍基于netty如何实现websocket通信。要求:实现基于webSoc...
2019-12-30 23:13:04 2455
原创 Netty案例介绍-群聊案例实现
前面介绍了基于Netty的Http服务,本文我们来通过Netty来实现群聊案例。群聊案例1.案例需求编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发得到)目的:进一步理解Nett...
2019-12-29 15:29:57 2778 1
原创 Netty入门实例-Http服务
本文我们继续来实现Netty的第二个入门案例,一个Http服务。Http服务1.需求Netty 服务器在 6668 端口监听浏览器发出请求 "http://localhost:6668/ "服务器可以回复消息给客户端 "Hello! 我是服务器 5 " , 并对特定请求资源进行过滤.2.创建服务端handler 在handler中我们对浏览器提交的Http请求做出处理p...
2019-12-28 17:03:26 2960
原创 Netty第一个入门实例-TCP服务
本文我们来写第一个Netty的入门实例,一个TCP服务案例。Netty入门案例1. 案例需求创建Netty 服务器在 6668 端口监听创建Netty客户端,客户端能发送消息给服务器 “hello, 服务器~”服务器可以回复消息给客户端 “hello, 客户端~”目的:对Netty 线程模型 有一个初步认识, 便于理解Netty 模型理论2.创建maven项目 通过ecl...
2019-12-28 16:39:28 3111 2
原创 Netty高性能架构模型介绍
上一篇我们介绍了Reactor模式,本文我们就来具体分析下Netty中的架构模型到底是怎么样的。Netty模型介绍1.工作原理-简单介绍 Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor.流程描述:BossGroup 线程维护Selector , 只关注Accecpt当接收到Accept事...
2019-12-28 16:27:41 3360 1
原创 Netty高性能架构之Reactor模式
在讨论Netty的架构模式之前,我们先来介绍下Reactor模式,因为Netty的架构模式是在此基础上演变而来的Reactor模式介绍1. 线程模型基本介绍 不同的线程模式,对程序的性能有很大影响,为了搞清Netty 线程模式,我们来系统的讲解下 各个线程模式, 最后看看Netty 线程模型有什么优越性. 目前存在的线程模型有:传统阻塞 I/O 服务模型 Reactor 模式...
2019-12-28 15:37:47 5886
原创 Netty简单概述
本文开始给大家介绍Netty相关的内容,本篇主要介绍的是Netty概念性相关的内容Netty概述1. 原生NIO存在的问题NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 React...
2019-12-28 15:06:27 2400
原创 Netty之JavaNIO编程模型介绍02
因为篇幅问题我们继续上一篇的内容继续。一、NIO网络编程原理分析 NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 关系梳理图对上图的说明:当客户端连接时,会通过ServerSocketChannel 得到 SocketChannelSelector 进行监听 select ...
2019-12-28 14:45:33 1735
原创 Netty之JavaNIO编程模型介绍01
我们在前面的BIO的基础上我们来继续介绍下NIO的内容一、Java NIO 基本介绍 Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的 NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.i...
2019-12-28 11:53:47 1868
原创 Netty之JavaBIO编程模型介绍
最近打算再次整理下Netty的相关内容,但是要把Netty弄的比较清楚,我们首先需要对Java中的BIO,NIO及AIO要比较清楚,所以我们前面会花几篇文章先把这块的内容整理出来。JavaBIO编程模型介绍1.I/O模型介绍1.1 什么是I/O模型 简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。java共支持3种网络编程模型:BIONIO...
2019-12-28 10:52:20 1876
原创 Docker本地镜像推送阿里云教程
本文我们来介绍下怎么将本地的镜像文件推送到阿里云中。1.镜像生成的方式 通过前面的介绍我们了解到镜像的生成访问有两种通过dockerfilebuild出一个新的镜像通过运行中的容器我们commit一个容器2.推送本地镜像到阿里云2.1 本地推送的镜像文件2.2 阿里云地址http://dev.aliyun/search.html2.3 创建仓库镜像提示操作命...
2019-12-28 00:52:10 2372
原创 Docker常用软件安装之Redis
本文我们来介绍下在Docker中如何安装Redis。1.docker hub上搜索Redisdocker search redis2.下载镜像 从docker hub上下载4.0版本的Redisdocker pull redis:4.03.运行容器 镜像下载好后,我们就可以执行如下命令来运行了docker run -p 6379:6379 -v /root/myr...
2019-12-27 20:53:01 2541
原创 Docker常用软件安装之MYSQL
本文我们来介绍下在docker中怎么安装mysql。1.在docker hub上查找mysqldocker search mysql2. 下载mysql镜像文件 此处我们下载5.6版本的mysqldocker pull mysql:5.63.构建容器 镜像下载好后我们可以直接运行启动mysql容器docker run -p 12345:3306 --name mys...
2019-12-27 19:30:36 3107
原创 Docker之Dockerfile案例演示
上篇文章我们给大家介绍了Dockerfile中的常用指令,本文我们通过具体的案例来说明这些指令。1.Base镜像 Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的,如下scratch相对于java中的Object2.自定义镜像mycentos 我们从官方pull下来的centos镜像是mini版的,所以不带有vim这些基础命令,那我们就来...
2019-12-27 02:11:19 2841
原创 Docker之DockerFile介绍
本文我们来详细介绍下Docker中的DockerFile,1. DockerFile是什么 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建的三步骤1. 编写Dockerfile文件2. docker build3. docker run脚本文件的样式,以centos为例脚本文件内容FROM scratchADD centos-7...
2019-12-26 15:40:55 2884
原创 Docker之快速搞定容器数据卷
前面我们介绍了镜像和容器,通过镜像我们可以启动多个容器,但是我们发现当我们的容器停止获取删除后,我们在容器中的应用的一些数据也丢失了,这时为了解决容器的数据持久化,我们需要通过容器数据卷来解决这个问题,本文我们就来介绍下容器数据卷。1.是什么 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有...
2019-12-26 12:20:04 8335
原创 Docker入门简介
1.什么是Docker Docker是基于Go语言实现的云开源项目。 Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。 Linux 容器技术的出现就解决了这样一个问题,而 Docker...
2019-12-25 22:21:52 2988
原创 Docker镜像超详细介绍
本文我们详细给大家来介绍下Docker中的镜像.1. 镜像是什么? 首先我们来看看镜像到底是什么?虽然前面有介绍过镜像和容器,但也不是特别的深入。镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。1.1 UnionFS UnionFS(联合文件系统): Union文...
2019-12-25 21:58:31 3937
原创 Docker常用命令超细介绍
工欲善其事必先利其器,本文我们首先来给大家介绍下docker中的常用命令,只用对这些常用命令非常熟悉我们才能更好的来使用docker。1.帮助命令 首先我们来看看docker中的帮助命令命令说明docker version查看docker的版本信息docker info查看docker详细的信息docker --helpdocker的帮助命令,可以...
2019-12-25 20:33:56 10173 1
原创 Docker安装篇(CentOS7安装)
本文记录下在CentOS7上安装docker的过程1.首先确认版本 首先确认我们的环境是centOS7cat /etc/redhat-release2.yum安装gcc相关 前提是能上外网,上篇文章介绍了相关的网络配置,不清楚的key参考下。yum -y install gcc gcc-c++3.卸载旧的版本 防止其他版本的干扰,我们先执行删除旧版本的命令yum...
2019-12-25 14:18:24 10016 2
原创 Linux系列-快速搞定CentOS7.0网络配置
因为最近要使用docker,所以打算在centOS7上操作,本文记录下centOS7上的网络配置的内容。首先需要安装好centOS7的虚拟机,我这安装的是CentOS-7-x86_64-Minimal-1810.iso精简版的。话不多说,直接开始1.虚拟机配置信息 首先了解下VMware中 net8的相关信息点击NAT设置进入2.具体配置 然后我们就可以来具体设置静态IP...
2019-12-25 12:32:19 2867
原创 详细介绍OAuth2.0及实现和SpringSecurity的整合应用
一、OAuth2.0介绍GitHub地址案例代码地址1.概念说明 先说OAuth,OAuth是Open Authorization的简写。 OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全...
2019-12-12 23:20:30 15087 7
原创 单点登录SSO解决方案之SpringSecurity+JWT实现
通过前面几天文章我们详细的介绍了SpringSecurity的使用,本文我们来看下,结合JWT来实现单点登录操作。一、什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统二、简单的运行机制 单点登录的机制其实是比较简单的,用一个现实中的...
2019-12-05 18:20:57 26736 35
原创 详细介绍SpringBoot整合SpringSecurity
本文我们来详细给小伙伴们介绍下SpringBoot整合SpringSecurity的过程,用到的技术为:SpringBoot2.2.1+SpringSecurity+SpringDataJPA+jsp来整合。一、环境准备1.创建SpringBoot项目 创建一个SpringBoot项目2.导入基础依赖 导入基础的依赖<parent> <groupId&...
2019-12-05 17:25:51 5725
原创 SpringSecurity授权管理介绍
权限管理的两大核心是:认证和授权,前面我们已经介绍完了认证的内容,本文就给大家来介绍下SpringSecurity的授权管理一、注解操作 我们在控制器或者service中实现授权操作比较理想的方式就是通过相应的注解来实现。SpringSecurity可以通过注解的方式来控制类或者方法的访问权限。注解需要对应的注解支持,若注解放在controller类中,对应注解支持应该放在mvc配置文件...
2019-12-05 17:07:11 4699
原创 SpringSecurity详细介绍RememberMe功能
本文我们来实现下SpringSecurity的RememberMe功能一、rememberMe功能实现接下来我们看看具体怎么实现rememberMe功能1.表单记住我选项<%-- Created by IntelliJ IDEA. User: dengp Date: 2019/12/1 Time: 20:40 To change this template u...
2019-12-05 16:53:46 5380
原创 SpringSecurity详细介绍RememberMe源码流程
本文我们来详细看看rememberMe的源码流程rememberMe源码分析 首先我们要搞清楚rememberMe功能应该是在认证成功后才能具有的,所以我们应该从UsernamepasswordAuthenticationFilter中去分析找到对应的doFilter方法认证成功后开始rememberMe的处理进入AbstractRememberMeServices中查看...
2019-12-05 16:41:45 4062
原创 SpringSecurity实现数据库认证
上篇文章我们介绍了SpringSecurity系统认证的流程,我们发现系统认证其实是通过一个UserDetailService的实现类来实现的,所以我们就可以使用相同的方式将认证的业务改成和数据库的对比。此案例持久层我们通过Mybatis来实现一、mybatis准备1.导入相关依赖<dependency> <groupId>org.mybatis</gr...
2019-12-05 16:27:22 3939
原创 SpringSecurity认证流程分析
我们前面实现了使用自定义认证界面的功能,但是后台认证校验还是使用的’/login’来处理的,对比的账号密码还是我们写在内存的数据,那我们如果想要实现和数据库中的数据比较,那么我们就必须要实现自定义认证逻辑的实现,本文我们就先来分析下系统自带的认证是怎么走的。一、UsernamePasswordAuthenticationFilter 系统认证是通过UsernamePasswordAuth...
2019-12-05 12:14:17 2998 1
原创 SpringSecurity实现自定义登录界面
前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用自定义的登录界面,本文我们就来介绍下如何实现该操作。注意:本文是在入门案例代码的基础上演示的!一、页面准备我们准备如下相关的jsp页面1.login.jsp页面<%-- Created by...
2019-12-05 11:58:59 7040
原创 SpringSecurity常用过滤器介绍
本文我们来介绍下SpringSecurity中常用的过滤器及其加载的过程。一、常用的过滤器 常用的过滤器有15个,分别如下:1.org.springframework.security.web.context.SecurityContextPersistenceFilter 首当其冲的一个过滤器,非常重要主要是使用SecurityContextRepository在session...
2019-12-05 11:47:21 4710
原创 SpringSecurity超详细入门介绍
权限管理是我们项目中必不可少的一环,实际项目中我们可以自己设计权限管理模块,也可以使用市面上成熟的权限管理框架,比如 shiro或者 SpringSecurity等,前面已经详细的介绍过了 shiro 的使用,本文开始就给大家详细的来介绍下SpringSecurity的使用。内容包括spring+springmvc基于配置的方式详细介绍SpringSecurityspringboot整...
2019-12-02 12:06:54 27502 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人