自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路漫漫,水迢迢

八十一难拦路七十二变制敌

  • 博客(19)
  • 收藏
  • 关注

原创 NIO学习笔记——选择器(selectors)

选择器(Selector) 选择器类管理着一个被注册的通道集合的信息和它们的就绪状态。通道是和选择器一起被注册的,并且使用选择器来更新通道的就绪状态。当这么做的时候,可以选择将被激发的线程挂起,直到有就绪的的通道。 可选择通道(SelectableChannel) 这个抽象类提供了实现通道的可选择性所需要的公共方法。它是所有支持就绪检查的通道类的父类。 FileChannel 对象不是可选择的

2017-06-26 22:26:23 1715

原创 NIO学习笔记——通道(channel)详解

通道可以形象地比喻为银行出纳窗口使用的气动导管。您的薪水支票就是您要传送的信息,载体(Carrier)就好比一个缓冲区。您先填充缓冲区(将您的支票放到载体上),接着将缓冲“写”到通道中(将载体丢进导管中),然后信息负载就被传递到通道另一侧的 I/O 服务(银行出纳员)。该过程的回应是:出纳员填充缓冲区(将您的收据放到载体上),接着开始一个反方向的通道传输(将载体丢回到导管中)。载体就到了通道的您这一

2017-06-25 00:50:16 13108 1

原创 NIO学习笔记——Buffer的创建与复制

Buffer的创建新的缓冲区是由分配或包装操作创建的。分配操作创建一个缓冲区对象并分配一个私有的空间来储存容量大小的数据元素。包装操作创建一个缓冲区对象但是不分配任何空间来储存数据元素。它使用您所提供的数组作为存储空间来储存缓冲区中的数据元素,例如CharBuffer charBuffer = CharBuffer.allocate (100);这段代码隐含地从堆空间中分配了一个 char 型数组作

2017-06-21 21:07:21 1717

原创 NIO学习笔记——缓冲区(Buffer)详解

缓冲区是包在一个对象内的基本数据元素数组,Buffer类相比一个简单的数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer的属性容量(capacity):缓冲区能够容纳的数据元素的最大数量。这一容量在缓冲区创建时被设定,并且永远不能被改变 上界(limit):缓冲区的第一个不能被读或写的元素。或者说,缓冲区中现存元素的计数 位置(position):下一个要被读或写的元素

2017-06-20 21:40:06 8238 2

原创 NIO学习笔记——操作系统与I/O交互简介

为什么使用NIO  在前一段时间我在看dubbo和kafka的源码时发现他们底层很多都是借助于NIO实现的,这些优秀的开源框架为什么使用NIO,相信NIO是一种高效的程序处理方式,从今天我们开始踏入NIO学习的殿堂。作为程序员我们要知道我们代码中的I/O操作相比其他代码要耗时的多的,我们在做I/O操作时要特别注意I/O的优化。现在 JVM 运行字节码的速率已经接近本地编译代码,借助动态运行时优化。这

2017-06-18 18:28:05 2324 2

原创 Kafka学习笔记——centos7下kafka安装配置与验证

简介我们先看看官方给出的kafka分布式架构图 多个 broker 协同合作,producer 和 consumer 部署在各个业务逡辑中被频繁的调用,三者通过 zookeeper管理协调请求和转収。返样一个高怅能的分布式消息収布不订阅系统就完成了。 我们以一个broker为例介绍下整个消息系统的启动过程 整个系统运行的顺序: 1.启劢 zookeeper 的 server 2.

2017-06-17 12:32:45 9040

原创 Centos7下安装zookeeper以及配置文件详解

先去官网下载zookeeper,这里以3.46版本为例[root@bogon software]# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz--2017-06-13 07:19:41-- http://mirrors.hust.edu.cn/apache/zook

2017-06-15 22:17:11 4897 5

原创 Linux下如何定位Java进程CPU利用率过高原因

首先通过Top命令查看占用CPU较高的进程PID,执行Top之后按1可以查看每个核占用比例top 这里由于我是用的虚拟机,即使我的Java进程占用CPU很高也只是占的虚拟机的,而对整个机器的CPU来说占的并不高。这里我们找到了pid=7957 然后我们在根据pid找出占用CPU过高的线程top -H -p 7957 然后根据线程id=7958使用strace -p命令查看调用情况 发

2017-06-14 23:04:39 7231 1

原创 Centos7下安装与卸载Jdk1.8

卸载查看已经安装的jdk[root@bogon jre]# rpm -qa|grep jdkjava-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_

2017-06-13 22:07:03 50704 4

原创 Json转List时,字符串多次toJson出现异常

代码如下String str = "[{\"amount\":\"1.00\",\"contracts\":\"6000000018911\",\"serialNo\":\"6280329951969281\"}]";List<TransferSubAccountInfo> list = JSON.parseArray(JsonUtil.toJson(str),TransferSubAccoun

2017-06-13 21:09:40 3822

原创 Kafka学习笔记——使用Kafka记录APP的操作日志

上一篇文章我们讲到了Kafka的工作原理和如何使用Kafka的代码示例,这里我们开始讲解Kafka的实战,在实际的应用中我们如何使用kafka的。下面将介绍前台的操作日志定时推送到kafka,然后通过kafka将消息日志进行保存,方便大数据的统计分析形成运营报表。 我们先看看工程的目录结构: kafka的版本是: <dependency> <groupId>

2017-06-10 23:25:08 6419 1

原创 程序员——高考的第二春

就在我们一如既往的在上下班路上翻阅新闻的时候,发现有关高考的信息充斥在各大新闻头条,原来是一年一度的高考又悄悄到来。 还是那个时间,那些事情,那些科目,只是人不同,现在回想起自己高考心中不免有些伤感,伤感不是自己的成绩,而是时间过得太快,快得让你不敢轻易回忆。    曾记得那是2008年高考的前一天,我们坐大巴赶到了考试地点,虽然第二天才考试,但是我却足足在考场外转了好多圈,因为这里也许就是决定我

2017-06-09 15:49:53 1493 10

原创 Kafka学习笔记——Kafka原理与使用详解

Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家公司作为多种类型的数据管道和消息系统使用。活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通

2017-06-08 23:29:11 25566 2

原创 Kafka学习笔记——Kafka简介与使用场景介绍

IntroductionKafka 是 linkedin 用于日志处理的分布式消息队列,同时支持离线和在线日志处理。kafka 对消息保存时根据 Topic 进行归类,发送消息者成为 Producer,消息接受者成为 Consumer,此外 kafka 集群有多个 kafka 实例组成,每个实例(server)称为 broker。无论是 kafka集群,还是 producer 和 consumer

2017-06-07 21:19:55 4240

原创 精通Dubbo——dubbo2.0源码中Spring Bean的加载

感觉Dubbo涉及的知识点非常多,在这里我们以学习为目的,遇到相关知识点都展开来详细介绍,这也是一个学习的过程。 由于Dubbo的启动注册都是依赖Spring的加载来实现的,我们先来分析下Spring Bean的加载过程。在Dubbo的源码中有个dubbo-demo工程 #Spring 可扩展Schema 在继续之前我们先学习下如何通过配置文件生成实现类对象基于 Spring 可扩展 S

2017-06-05 22:15:26 3124 1

原创 如何利用Redis分布式锁实现控制并发

redis命令解释说道Redis的分布式锁都是通过setNx命令结合getset来实现的,在讲之前我们先了解下setNx和getset的意思,在redis官网是这样解释的 注:redis的命令都是原子操作SETNX key value将 key 的值设为 value ,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是『SET if Not

2017-06-05 18:39:33 14214 2

原创 精通Dubbo——dubbo2.0源码中的设计模式与SPI介绍

Dubbo源码包介绍当我们从github把Dubbo源码下载下来之后有如下源码包 下面来说明每个包的作用,以便我们有目的的阅读代码 dubbo-admin dubbo管理平台源码包,用来管理dubbo服务的启动、禁用、降权、接口测试等,操作界面如下 dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的

2017-06-04 10:53:57 8127 2

原创 精通Dubbo——Dubbo支持的协议的详解

Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。dubbo协议缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方式:长连接 传输协议

2017-06-02 22:26:57 66308 4

原创 精通Dubbo——Dubbo配置文件详解

依赖的jar理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策略。缺省依赖(系统默认)通过mvn dependency:tree > dep.log命令(Eclipse或Linux命令行)分析,Dubbo缺省依赖以下三方库:[INFO] +- com.alibaba:dubbo:jar:2.1.2:compile[INFO] | +- log4j:log4j:

2017-06-01 22:44:35 47564 3

空空如也

空空如也

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

TA关注的人

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