自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL的基本概念与操作

数据库的基本概念 什么是数据库? *用于存储和管理数据的仓库。 数据库的特点: *持久化存储数据的。其实数据库就是一个文件系统 *方便存储和管理数据 *使用了统一的方式操作数据库 – SQL MySQL数据库软件 安装 链接: [https://blog.csdn.net/zhujialiang18/article/details/79780131] 卸载 推荐使用Total Unin...

2019-05-28 14:44:40 1172 5

原创 Netty由浅到深_第六章_Netty编解码器

编码和解码介绍 1)编写网络应用程序时,因为数据在网络中传输的都是二进制字节码,在发送数据时就需要编码,接收数据时就需要解码 2)codec(编解码器)的组成:decoder(解码器)和encode(编码器)。encoder负责把业务数据转换成字节码数据,decoder负责把字节码数据转换成业务数据 3)Netty自身提供了一些coder(编解码器) 编码器 StringEncoder,对字符串数据进行编码 ObjectEncoder,对java对象进行编码 解码器 StringDecoder

2020-09-23 21:54:15 170

原创 Netty由浅到深_第五章_Netty通过WebSocket实现服务器和客户端长连接

1)Http协议是无状态的,浏览器和服务器间的请求响应一次,下一次会重新创建连接 2)要求:实现基于WebSocket的长连接的全双工交互 3)改变Http协议多次请求的约束,实现长连接,服务器可以发送消息给浏览器 4)客户端浏览器和服务器端会相互感知,比如服务器关闭了,浏览器会感知,同样浏览器关闭了,服务器会感知 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &l

2020-05-30 13:07:07 288

原创 Netty由浅到深_第五章_Netty实现群聊系统和私聊系统

应用实例-群聊系统 1)编写一个Netty群聊系统,实现服务器和客户端之间的数据简单通讯 2)客户端:通过Channel可以无阻塞发送消息给其他所有用户,同时可以接受其他用户发送的消息(由服务器转发得到) 3)服务器端:可以检测用户上线、离线,并实现消息的转发功能 package com.dd.netty.groupchat; import com.dd.nio.groupchat.GroupChatClient; import io.netty.bootstrap.ServerBootstrap;

2020-05-30 13:01:37 596 2

原创 Netty由浅到深_第五章_Netty心跳检测机制案例

应用实例-群聊系统 1)编写一个Netty群聊系统,实现服务器和客户端之间的数据简单通讯 2)客户端:通过Channel可以无阻塞发送消息给其他所有用户,同时可以接受其他用户发送的消息(由服务器转发得到) 3)服务器端:可以检测用户上线、离线,并实现消息的转发功能 package com.dd.netty.groupchat; import com.dd.nio.groupchat.GroupChatClient; import io.netty.bootstrap.ServerBootstrap;

2020-05-30 12:54:52 148

原创 Netty由浅到深_第五章_ Netty核心组件EventLoop

Bootstrap、ServerBootstrap 1)Bootstrap意思是引导,一个Netty应用通常有一个Bootstrap开始,主要作用是配置整个Netty程序,串联各个组件,Netty中Bootstrap类是客户端程序的启动引导类,ServerBootstrap是服务端启动引导类 2)常见的方法有 说明:handler()方法 该handler对应bossGroup Chil...

2020-05-30 12:42:43 157

原创 Netty由浅到深_第四章_ Netty异步模型

基本介绍 1)异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的组件完成后,通过状态、通知和回调来通知调用者 2)netty中的I/O操作是异步的,包括Bind、Write、Connect等操作会简单的返回一个ChannelFuture 3)调用者不能立刻获得结果。而是通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制...

2020-05-30 12:20:48 138

原创 Netty由浅到深_第四章_ Netty模型

1 Netty模型(简单版) 1) BossGroup线程维护selector,只关注Accept 2) 当接受到Accept事件,获取到对应的socketChannel,封装成NIOScoketChannel并注册到Worker线程(事件循环),并进行维护 3) 当Worker线程监听到selector中通道发生自己感兴趣的事件后,就进行处理 2 Netty模型(进阶版) 3 Netty...

2020-03-15 15:42:49 168

原创 Netty由浅到深_第四章_ Netty模型之Reactor

1 原生NIO存在问题 NIO的类库和API繁杂,使用麻烦;需要熟练掌握Selector、ServerSocketChannel、SocketChannek、ByteBuffer等 需要具备其他的额外技能:要熟悉java多线程编程,因为NIO涉及到Reactor模式,必须熟悉多线程和网路编程,才能写出高质量的NIO代码 开发工作量和难度非常大:列如客户端面临断连重连、网络闪断、半包读写、失败缓存...

2020-03-15 13:31:11 169

原创 Netty由浅到深_第三章_ NIO与零拷贝

在java程序中,常用的零拷贝有mmap(内存映射)和sendFile。先看一下java传统IO和网络编程的一段代码 上述代码: 1) 首先先把Hard Driver(硬件)数据进行DMA(direct memory acces 直接内存拷贝,不使用CPU)copy 到 kernel Buffer(内核缓冲区中) 2) 接下来从kernel Buffer 通过 CPU copy 到 user...

2020-03-03 17:53:35 135

原创 Netty由浅到深_第三章_NIO网络编程实列-群聊系统

要求 1)编写一个NIO群聊系统,实现服务器端和客户端之间的数据简单通讯 2)实现多人聊天 3)服务器端:可以检测用户上线,离线,并实现消息转发功能 4)客户端:通过channel可以无阻塞发送消息给其他所有用户,同时可以接受其他用户发送的消息 服务端 package com.dd.nio.groupchat; import java.io.IOException; import java....

2020-03-03 17:47:44 145

原创 Netty由浅到深_第三章_NIO模型3大组件详细介绍

NIO三大核心原理示意图 每个channel(通道)都会对应一个buffer(缓冲区) Selector(选择器)对应一个线程,一个线程对应多个channel(连接) 程序切换到那个channel是由事件决定的,==Event(事件)==是一个非常重要概念 Selector会根据不同的事件,在各个通道上切换 Buffer就是一个内存块,底层是一个数组 数据的读写是通过Buffer,这个和BIO...

2020-03-01 16:22:35 184

原创 Netty由浅到深_第二章_NIO模型简单介绍

I/O模型基本说明 Java NIO全称java non-blocking IO。从JDK1.4开始,java提供一系列改进的输入/输出的新特性,被统称为NIO(New IO),是同步非阻塞的。 NIO相关类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写 NIO有三大核心部分:Channel(通道),Buffer(缓冲区),Selector(选择器) NIO是面向...

2020-02-25 23:09:05 155

原创 Netty由浅到深_第二章_BIO模型

BIO模型 I/O模型基本说明 Java共支持3中网络编程I/O模型:BIO,NIO,AIO java BIO : 同步阻塞(传统阻塞型),服务器实现模式为:一个连接对应一个线程,即客户端有连接请求时,服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销 java NIO : 同步非阻塞。服务器实现模式为:一个线程处理多个请求(连接),即客户端发送的请求连接都会注册...

2020-02-25 21:52:22 153

原创 Netty由浅到深_第一章_Netty介绍和应用场景

Netty介绍和应用场景 Netty介绍 Netty是由jboss提供的一个java开源框架 Netty是一个异步的,基于事件驱动的网络应用架构,用以开发高性能,高可靠性的网络IO程序 Netty主要是针对TCP协议下,面向Clients端的高并发应用,或者peer-to-peer场景下的大量数据持续传输的应用 Netty本质时一个NIO框架,适用于服务器通讯相关的多种应用场景 Netty应用...

2020-02-25 20:59:24 848

原创 redis由浅入深,业务场景和面试总结

为什么需要redis? CRUD百分之80为查询,数据不会频繁变更,目前项目都是分布式项目,所以使用分布式缓存数据库–redis redis是单线程NIO模型,多个请求按先后顺序排队,按个执行,吞吐量大概10w/s,它的核心配置文件redis.config,默认端口号6379,默认有16个数据库,编号0-15,值的数据类型有string,hash,list,set四种 redis的基本命令 ...

2019-09-09 23:32:41 223

原创 支付宝支付功能(沙箱)+springboot+jsp

从零搭建支付宝支付案例 1.注册开发者账号,获取【公钥】和【私钥】,对支付宝提供给开发者的账号进行充值,请参考“ 会吐泡的鱼”的博客一到六步:https://blog.csdn.net/suprezheng/article/details/84931225 (注:该文档复制粘贴就能跑,如对里面参数不懂地方,欢迎留言,博主一一回应) 2.Sprin...

2019-08-01 17:33:32 1424 3

空空如也

空空如也

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

TA关注的人

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