自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java异步NIO框架Netty实现高性能高并发

1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高性能的压缩二...

2018-09-10 23:36:28 218

转载 Netty学习笔记

转载:https://segmentfault.com/a/1190000016072310#articleHeader9 (非搜狗浏览器)一. Java Blocking I/O ExecutorService executor = Excutors.newFixedThreadPollExecutor(100);//线程池 ServerSocket serverS...

2018-09-09 20:05:38 217

转载 Redis与Memcached的区别

Redis与Memcached的区别 传统MySQL+ Memcached架构遇到的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占...

2018-09-06 00:22:00 142

转载 netty源码分析之揭开reactor线程的面纱(三)

上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下:reactor线程三部曲简单总结一下reactor线程三部曲轮询出IO事件 处理IO事件 处理任务队列今天,我们要进行的是三部曲中的最后一曲【处理任务队列】...

2018-09-11 00:03:16 222

转载 netty源码分析之揭开reactor线程的面纱(一)

netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty reactor线程的真相[源码基于4.1.6.Final]reactor 线程的启动NioE...

2018-09-10 23:45:42 205

转载 netty常见知识点

Java读源码之Netty深入剖析解析netty各大组件细节/百万级性能调优/设计模式实际运用前言:这是一门对Java开发人员非常重要的课程,源码的学习方式是不可逃避的。Netty也是大型互联网公司面试必备的问题,如果没有分布式开发经验,在面试时提出自己阅读过Netty源码,并能清晰表达的话。这部分内容会是很重要的加分项nettynettty里面的任务分为定时任务(优先级队列)和普通任...

2018-09-10 23:44:13 2048

转载 源码之下无秘密 ── 做最好的 Netty 源码分析教程

背景在工作中, 虽然我经常使用到 Netty 库, 但是很多时候对 Netty 的一些概念还是处于知其然, 不知其所以然的状态, 因此就萌生了学习 Netty 源码的想法.刚开始看源码的时候, 自然是比较痛苦的, 主要原因有两个: 第一, 网上没有找到让我满意的详尽的 Netty 源码分析的教程; 第二, 我也是第一次系统地学习这么大代码量的源码. 由于这两个原因, 最开始时, 看代码的进度...

2018-09-10 23:41:22 199

转载 Netty高性能开发备忘录

工作中使用netty,还都是解决小打小闹的问题,还没有遇到超过10k连接情况下,数据高性能分发及连接管理问题。无意中看到这篇文章,先转载一下,以后工作中遇到相关问题可以及时查阅,也希望更多人看到,并从中获取netty优化灵感。       原文链接如下:http://www.10tiao.com/html/321/201611/2659763226/5.html 1. 连接篇1.1...

2018-09-10 23:40:21 317

转载 Netty源码—三、select

NioEventLoop功能前面channel已经准备好了,可以接收来自客户端的请求了,NioEventLoop作为一个线程池,只有一个线程,但是有一个queue存储了待执行的task,由于只有一个线程,所以run方法是死循环,除非线程池shutdown。这个run方法的主要作用:执行selector.select,监听IO事件,并处理IO事件 由于NioEventLoop兼有线程池...

2018-09-10 23:39:04 218

转载 剖析Netty4的高性能

1、Netty简介                     Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏...

2018-09-10 23:37:43 145

转载 Netty-内存管理

通过NIO传输数据时需要一个内存地址,并且在数据传输过程中这个地址不可发生变化。但是,GC为了减少内存碎片会压缩内存,也就是说对象的实际内存地址会发生变化,所以Java就引入了不受GC控制的堆外内存来进行IO操作。那么数据传输就变成了这样但是内存拷贝对性能有可能影响比较大,所以Java中可以绕开堆内存直接操作堆外内存,问题是创建堆外内存的速度比堆内存慢了10到20倍,为了解决这个问题Net...

2018-09-10 23:35:14 164

转载 Java高并发之锁优化

本文主要讲并行优化的几种方式, 其结构如下: 锁优化减少锁的持有时间例如避免给整个方法加锁1 public synchronized void syncMethod(){ 2 othercode1(); 3 mutextMethod(); 4 othercode2(); 5 }改进后1 ...

2018-09-10 23:33:54 219

转载 netty设计模式-责任链模式

责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。首先来看看责任链模式的四个要素:1、责任处理器接口2、创建链,添加删除责任处理器接口3、上下文4、责任链终止机制。在netty里面,很明显channelHandler和Pipeline构成了责任链模式。让我们通过...

2018-09-10 23:32:15 215

转载 MySQL双主(主主)架构方案

MySQL双主(主主)架构方案在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加mysql入口,增加高可用。不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。...

2018-09-08 12:34:51 518

转载 POJO和JavaBean的区别

POJO(Plain Ordinary Java Object)即普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO。实际意义就是普通的JavaBeans(简单的实体类),特点就是支持业务逻辑的协助类。POJO类的作用是方便程序员使用数据库中的数据表,对于程序员来说,可以很方便的将POJO类当作对象来进行使用,也可以方便的调用其get,set方法。但不允...

2018-09-02 17:40:08 134

空空如也

空空如也

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

TA关注的人

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