2017年阿里巴巴三面经验
摘要:2017年3月24日,好激动,阿里巴巴三面的面试官电话打来,叮...叮...叮... 上来还以为可以自我介绍一波,没想到上来直接问问题,还没缓过神来。。。。感觉是个p9,声音十分成熟稳重。 官:给你10亿个url和网页内容,如何去重? 答:1.插入非重复到一个新集合、 2.插入到set, 3.匹配h
阅读全文
Spring Boot:在Spring Boot中使用Mysql和JPA
摘要:本文向你展示如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置)。数据访问层我们将使用Spring Data JPA和Hibernate(JPA的实现之一)。 1.Maven pom.xml文件 在你的项目中增加如下依赖文件 2
阅读全文
Flume架构以及应用介绍
摘要:在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的主角—Flume。本文将围绕Flume的架构、Flume的应用(日志采集)进行详细的介绍。
阅读全文
2分钟理解文件IO -我对文件IO的理解与实验对比
摘要:本文介绍了不同的IO方式以及他们之间的效率比较 1.一次读取写入单个字节(读取400M的文件浪费了很久,等了很久没读取完成,证明其效率很差) 2.一次读取写入多个字节(读取400M的文件700ms) 3.文件流输入输出(读取400M的文件5000ms,为什么更慢呢,猜测是readline这里,大神可
阅读全文
java IO流
摘要:今天刚刚看完Java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板、内存、键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InPutStream和O
阅读全文
Netty权威指南(笔记一)
摘要:转载:http://blog.csdn.net/clarkkentyang/article/details/52529785 第一章(略) 第二章 NIO入门 2.1传统的BIO编程(同步阻塞I/O服务端通信模型【一客户一线程】) 网络编程的基本模型:Client/Server模型,也就是2个进程之
阅读全文
linux命令学习
摘要:搜索命令: locate 可以根据文件名快速查找 使用updatedb立即更新数据库。 路径配置过滤(/etc/updatedb.conf) whereis -b 可执行文件名 which 可执行文件名 可以看到别名 find 范围 匹配条件 find / -name a.txt 精确匹配a.txt
阅读全文
linux sar命令详解
摘要:sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.
阅读全文
消息中间件设计
摘要:1.最简单的设计 一般来讲,设计消息队列的整体思路是先build一个整体的数据流, 例如producer发送给broker,broker发送给consumer,consumer回复消费确认,broker删除/备份消息等。 2.如何承载消息堆积 之后考虑如何承载消息堆积,然后在合适的时机投递消息,而处
阅读全文
google三驾马车
摘要:⒈GFS(Google File System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。GFS把文件分成64MB的
阅读全文
Apache ZooKeeper 服务启动源码解释
摘要:转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper-code/ 本文首先讲解了 Apache ZooKeeper 服务启动的三种方式,即 Standalone、伪分布式、分布式。然后针对分布式模式启动步骤进行逐步介绍
阅读全文
性能优化方法
摘要:性能优化方法 前端优化 前端优化主要包括动态内容静态化,增加前端缓存。页面静态化是指将指含有大量动态元素的动态网页,如jsp、php等,转换为html静态页面,静态页面由于不用加载动态元素,其访问速度要比动态页面快得多,可以增加访问速度,减小数据库压力;前端页面缓存在系统前端对Web服务器上的页面进
阅读全文
JSM的topic和queue的区别
摘要:在JMS(Java消息服务)中,Topic实现publish和subscribe语义。一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个 subscriber(电脑词汇中解释为“用户“)将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消
阅读全文
关于分布式事务、两阶段提交协议、三阶提交协议
摘要:随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。 为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。
阅读全文
大型网站系统与Java中间件实践读书笔记
摘要:转载:http://blog.csdn.net/ioscodelover/article/details/45047869 1.分布式系统相对集中式而言,是指多台计算机互相通过消息通信进行协作而对外提供服务;可解决大型机的伸缩性和单点等问题; 2.网络i/o有bio/nio,还有aio,aio是指线
阅读全文
Kafka设计解析:Kafka High Availability
摘要:Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,
阅读全文
kafka安装和部署
摘要:阅读目录 一、环境配置 二、操作过程 Kafka介绍 阅读目录 一、环境配置 二、操作过程 Kafka介绍 安装及部署 回到顶部 一、环境配置 操作系统:Cent OS 7 Kafka版本:0.9.0.0 Kafka官网下载:请点击 JDK版本:1.7.0_51 SSH Secure Shell版本
阅读全文
String和intern()浅析
摘要:String a = new String("aa"),代表在堆内存中,创建了一个字符串对象,变量a指向该对象,而该对象又指向在常量池中的字符串常量。而String a = "aa"代表直接由变量a指向常量池中的字符串,省去了中间的堆内存中的对象,因为new对象时,都会在堆中创建对象。这就像如果有:
阅读全文
JAVA中native方法调用
摘要:在Java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:1)native与访问控制符前后的关系不受限制。2)必须在返回类型之前。3)它一般为非抽象类方法。4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束。如下列5种声明: nativ
阅读全文
Java的native方法
摘要:第一篇: 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解。一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方
阅读全文
happens-before俗解
摘要:happens-before俗解 学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。 synchronized、大部分锁,众所周知的一个功能就是使多个
阅读全文
volatile关键字的作用
摘要:volatile关键字的作用 保证内存的可见性 防止指令重排 注意:volatile 并不保证原子性 内存可见性 volatile保证可见性的原理是在每次访问变量时都会进行一次刷新,因此每次访问都是主内存中最新的版本。所以volatile关键字的作用之一就是保证变量修改的实时可见性。 当且仅当满足以
阅读全文