2017年4月28日
摘要:
目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》-
阅读全文
posted @ 2017-04-28 18:11
duanxz
阅读(2352)
推荐(0)
摘要:
多路复用器Selector是Java NIO编程的基础,熟练地掌握Selector对于掌握NIO编程至关重要。多路复用器提供选择已经就绪的任务的能力。简单来讲,Selector会不断地轮询注册在其上的Channel,如果某个Channel上面有新的TCP连接接入、读和写事件,这个Channel就处于
阅读全文
posted @ 2017-04-28 18:08
duanxz
阅读(4985)
推荐(0)
2017年4月24日
摘要:
Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。交互图如下: 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。缓冲区实际上是一个容器对象
阅读全文
posted @ 2017-04-24 23:51
duanxz
阅读(1467)
推荐(0)
摘要:
Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chann
阅读全文
posted @ 2017-04-24 23:47
duanxz
阅读(1403)
推荐(0)
摘要:
目录: 《Java NIO系列教程(二) Channel》 《Java NIO系列教程(三) Channel之Socket通道》 在《Java NIO系列教程(二) Channel》介绍了FileChannel,本章节介绍socket通道类。 一、Socket通道 新的socket通道类可以运行非阻
阅读全文
posted @ 2017-04-24 23:46
duanxz
阅读(13375)
推荐(2)
摘要:
目录: 《Java NIO系列教程(二) Channel》 《Java NIO系列教程(三) Channel之Socket通道》 Channel是一个通道,可以通过它读取和写入数据,它就像自来水管一样,网络数据通过Channel读取和写入。通道与流的不同之处在于通道是双向的,流只是在一个方向上移动(
阅读全文
posted @ 2017-04-24 23:44
duanxz
阅读(11483)
推荐(1)
摘要:
《I/O模型之四:Java 浅析I/O模型》 一、阻塞IO与非阻塞IO 阻塞IO: 通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为
阅读全文
posted @ 2017-04-24 23:07
duanxz
阅读(14508)
推荐(2)
摘要:
一、包与类名。 1、所有类和方法严格使用驼峰法命名。例:SSLFilter 更名为 SslFilter。NIO传输类在命名时增加 Nio 前缀。因为NIO 并不是 socket/datagram 传输的实现,NIO 的所有传输类前缀增加 Nio 。之前Java代码: [java] view plai
阅读全文
posted @ 2017-04-24 09:51
duanxz
阅读(425)
推荐(0)
2017年4月23日
摘要:
1、NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪。当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题。 JDK底层在实现nio时,为了能够唤醒等待在i
阅读全文
posted @ 2017-04-23 23:14
duanxz
阅读(461)
推荐(0)
摘要:
1、粘包与段包 粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收 断包:也就是数据不全,比如包太大,就把包分解成多个小包,多次
阅读全文
posted @ 2017-04-23 23:13
duanxz
阅读(765)
推荐(0)
摘要:
一、AOP简介 AOP(Aspect Oriented Programming):是一种面向切面的编程范式,是一种编程思想,旨在通过分离横切关注点,提高模块化,可以跨越对象关注点。Aop的典型应用即spring的事务机制,日志记录。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之
阅读全文
posted @ 2017-04-23 23:13
duanxz
阅读(3622)
推荐(0)
摘要:
简介 session类图 Mina每建立一个连接同时会创建一个session对象,用于保存这次读写需要用到的所有信息。从抽象类AbstractIoSession中可以看出session具有如下功能: 1、从attributes成员可以看出session可以存放用户关心的键值对 2、注意到WriteR
阅读全文
posted @ 2017-04-23 23:12
duanxz
阅读(2672)
推荐(1)
摘要:
processor顾名思义,就是进行IO处理,处理当前session的数据读写,并进行业务处理。 在mina server初始化的时候,会初始化一个processor池,通过NioSocketAcceptor的构造器传入池的大小,默认是当前处理器的个数+1。 processor池里面有一个jdk提供
阅读全文
posted @ 2017-04-23 23:10
duanxz
阅读(367)
推荐(0)
2017年4月18日
摘要:
Spring Cloud整合了各种组件,每个组件往往还有各种参数。本文来详细探讨Spring Cloud各组件的调优参数。 Tomcat配置参数 Hystrix配置参数 如隔离策略是THREAD: 如果想对特定的HystrixThreadPoolKey 进行配置,则将default 改为 Hystr
阅读全文
posted @ 2017-04-18 15:54
duanxz
阅读(1882)
推荐(1)
2017年4月13日
摘要:
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。 四、可重入锁: 本文里面讲的是广义上的可重入锁,而不是单指JAVA下的Reentr
阅读全文
posted @ 2017-04-13 20:30
duanxz
阅读(1120)
推荐(0)
2017年4月7日
摘要:
Round 1:概览 SpringCloud 与Dubbo Round 2:架构完整度 或许很多人会说Spring Cloud和Dubbo的对比有点不公平,Dubbo只是实现了服务治理,而Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一
阅读全文
posted @ 2017-04-07 17:04
duanxz
阅读(856)
推荐(0)
摘要:
《consul之:常用API接口》 spring cloud微服务不定期会出现网络请求失败的错误。于是看了下后台日志,发现有几个请求会报如下的异常: Caused by: feign.RetryableException: Connection refused (Connection refused
阅读全文
posted @ 2017-04-07 16:16
duanxz
阅读(13198)
推荐(0)
摘要:
一、简介 在微服务架构的系统中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来,由于该主题中产生的消息会被所有实例监听和消费,所以我们称它为消息总线。 本期我们来了解下 Spring Cloud 体系中的另外一个组件 Spring Cloud Bus (建议先
阅读全文
posted @ 2017-04-07 15:58
duanxz
阅读(3021)
推荐(0)
2017年4月6日
摘要:
1、项目结构 和上一节一样,没有改变。 2、pom.xml 引入了两个jar。 1 <dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>springfox-swagger2</artifactId> 4 <version>2.2.
阅读全文
posted @ 2017-04-06 16:45
duanxz
阅读(505)
推荐(0)
摘要:
本文主要从一些spring-cloud-config-server 包中的注解和类来分析配置中心是如何对外提供配置。 从@EnableConfigServer开始 为了让一个spring boot应用成为配置中心,我们需要使用@EnableConfigServer注解 @Target(Element
阅读全文
posted @ 2017-04-06 15:09
duanxz
阅读(1282)
推荐(0)
摘要:
Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也可以在
阅读全文
posted @ 2017-04-06 14:24
duanxz
阅读(2312)
推荐(0)
2017年4月5日
摘要:
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包含了
阅读全文
posted @ 2017-04-05 19:42
duanxz
阅读(4073)
推荐(1)
2017年3月31日
摘要:
发现MySQL库的binlog日志出来都是乱码,如下所示: BINLOG ’ IXZqVhNIAAAALQAAAGcBAAAAAHoAAAAAAAEABHRlc3QAAno0AAEDAABUOcnY IXZqVh5IAAAAKAAAAI8BAAAAAHoAAAAAAAEAAgAB//4BAAAAcu
阅读全文
posted @ 2017-03-31 13:57
duanxz
阅读(8874)
推荐(0)
摘要:
mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:
阅读全文
posted @ 2017-03-31 11:25
duanxz
阅读(5350)
推荐(0)
2017年3月10日
摘要:
3、kafka+logstash整合logstash1.5以后已经集成了对kafka的支持扩展,可以在conf配置中直接使用 vim /etc/logstash/conf.d/pay.conf input { kafka{ zk_connect => "your zookeeper address:
阅读全文
posted @ 2017-03-10 18:59
duanxz
阅读(2079)
推荐(0)