首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Netty总结

你对netty的理解? Netty是封装了JDK的NIO,是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能服务端和客户端。 Nio编程 Nio编程的概念是由io编程引发出来的,在传统的io模型中,每个连接创建成功之后都需要一个线程来维护,每个线程都会创建一个死循环去监听这个连接,这样线程资源十分受限,如果同一时刻有大量线程处于阻塞状态,资源严重浪费,操作系统消耗不起。这样线程频繁切换线程效率会急剧下降。为了解决这些问题引出了Nio模型。 NIo模型就是有一个Selector的作用,一个连接来了之后,不去创建死循环线程去监听这个连接,而是直接把这个连接注册到Selector上,然后通过Selector批量检测出连接线程的数据。 为什么使用netty而不使用jdk原生的? 1.原生的编程复杂,不易维护 2、Netty底层IO模型随意切换,只需要很少改动就可以切换到其他模型。 3、Netty自带的异常检测机制可以让我们只关心业务逻辑。 4、Netty社区活跃,遇到问题比较容易解决。 5、Netty自带的Selector线程模型可以非常高效的并发处理。 6、Netty已经经历过各大RPC框架、消息中间件的广泛验证,健壮性无比强大。 Netty的启动流程 先创建ServerBootStrap实例,然后定义线程池,之后创建CHannel,之后把channel和线程池和ServerBootStrap实例绑定注册,然后绑定端口启动,最终调度并执行新连接

02

mysql各个内存参数的介绍,分线程独享和全局共享两大类

mysql的内存参数分别有两大类,一类是线程独享的内存,一类是全局共享的内存 线程独享内存:join_buffer_size、sort_buffer_size、read_buffer_size顺序读取数据缓冲区、read_rnd_buffer_size随机读取数据缓冲区、bulk_insert_buffer_size批量插入暂存使用内存、tmp_table_size内部临时表使用内存、max_heap_table_size内存表使用内存 join_buffer_size:The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans.When Batched Key Access is used, the value of join_buffer_size defines how large the batch of keys is in each request to the storage engine用于普通索引扫描、范围索引扫描和不使用索引因而执行全表扫描的联接的缓冲区的最小大小。当使用批处理密钥访问时,join_buffer_size的值定义了向存储引擎发出的每个请求中的批处理密钥的大小 sort_buffer_size:Each session that must perform a sort allocates a buffer of this size每个必须执行排序的会话都会分配一个这种大小的缓冲区 read_buffer_size:Each thread that does a sequential scan for a MyISAM table allocates a buffer of this size (in bytes) for each table it scans对MyISAM表进行顺序扫描的每个线程为其扫描的每个表分配一个这种大小(以字节为单位)的缓冲区 tmp_table_size:The maximum size of internal in-memory temporary tables. 内存中内部临时表的最大大小。mysql临时表分为两种,一种是使用create temporary table创建的,称为为外部临时表,一种是因union、order by、group by、distinct等语句产生的,称为内部临时表 max_heap_table_size:This variable sets the maximum size to which user-created MEMORY tables are permitted to grow此变量设置允许用户创建的内存表增长的最大大小

02
领券