- 博客(8)
- 资源 (4)
- 收藏
- 关注
原创 Netty 核心模块组件
Netty 核心模块组件Bootstrap、ServerBootstrapFuture、ChannelFutureChannelSelectorChannelHandler 及其实现类Pipeline /ChannelPipelineChannelHandlerContextBootstrap、ServerBootstrapBootstrap是客户端的引导类,用于配置客户端的一些启动信息,而ServerBootstrap就是服务端的了Future、ChannelFutureNetty 中所有的 IO
2021-06-30 23:02:50 136
原创 Netty 高性能架构设计
Netty 高性能架构设计线程模型基本介绍传统阻塞 I/O 服务模型Reactor 模式(笼统概念版并未具体到三种实现)线程模型基本介绍目前存在的线程模型有:传统阻塞 I/O 服务模型Reactor 模式根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现单 Reactor 单线程;单 Reactor 多线程;主从 Reactor 多线程Netty 线程模式(Netty 主要基于主从 Reactor 多线程模型做了一定的改进,其中主从 Reactor 多线
2021-06-27 17:18:02 357 1
原创 Netty概述
Netty概述为什么会产生Netty?Netty的优点Netty 版本说明为什么会产生Netty?因为原生io存在巨多问题:NIO 的类库和 API 繁杂,使用麻烦。需要一些额外的技能,比如要熟悉Java多线程、网络编程开发难度大有一定的BUG,比如selector空轮询导致cpu100%负载Netty的优点设计优雅:适用于各种传输类型的统一 API 阻塞和非阻塞 Socket;基于灵活且可扩展的事件模型,可以清晰地分离关注点;高度可定制的线程模型 - 单线程,一个或多个线程池.使用
2021-06-27 16:38:10 144
原创 基于MySQL实现分布式锁
基于MySQL实现分布式锁适用场景基于唯一索引实现实现方式优点缺点适用场景基于Mysql实现分布式锁,适用于对性能要求不高(用mysql实现性能肯定不如用redis、zookeeper实现),并且不希望因为要使用分布式锁而引入新组件。基于唯一索引实现实现方式获取锁时在数据库中insert一条数据,包括id、方法名(唯一索引)、线程名(用于重入)、重入计数获取锁如果成功则返回true获取锁的动作放在while循环中,周期性尝试获取锁直到结束或者可以定义方法来限定时间内获取锁释放锁的时候,de
2021-06-23 14:57:11 652
原创 BIO、NIO、AIO
BIO、NIO、AIOBIO基本概念NIO基本概念AIO(目前并未广泛应用)关于三种IO的一些细节可以看看Linux的IO模型这篇文章,有些内容更加详细,这两篇文章加起来学习三种IO更好~BIO基本概念同步并阻塞(传统阻塞型),客户端的每一个请求服务端都要开一个线程来对应它,如果这个连接不做任何事情会造成不必要的线程开销。NIO基本概念同步非阻塞:服务器会开启一个线程,线程会维护一个Selector,一个Selector可以处理多个连接,它会在内部不断轮循,然后去处理那些有IO请求的连接(因
2021-06-22 23:56:49 248 1
原创 MySQL主从复制、读写分离
MySQL主从复制、读写分离为什么要用主从复制、读写分离?主从复制原理读写分离读写分离的实现方式为什么要用主从复制、读写分离?为了提高数据库的可用性、并发性能。你想如果是一台单机数据库,所有请求都打在它上面,那么就会导致I/O频率过高。假如有三台,一台主负责写,两台从负责读,那就会大幅提高性能。主从复制原理Relay log,我们翻译成中文,一般叫做中继日志,一般情况下它在MySQL主从同步读写分离集群的从节点才开启。主节点一般不需要这个日志。当master进行改动数据的操作时,会按照顺序记
2021-06-16 17:47:23 212
原创 从公司GitLab拉代码总是显示有些依赖无法导入
解决:在终端输入以下命令后重新导入依赖mvn clean package -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
2021-06-11 15:47:12 728 3
FTP服务器配置步骤详解.pdf
2020-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人