自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GarfieldEr007的专栏

勤奋治学 深度思考 静心钻研 先苦后甜

  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 分布式消息系统:Kafka

Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消

2017-08-29 23:14:07 1096

转载 java提高篇(九)-----实现多重继承

多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的

2017-08-28 21:25:32 883

转载 java提高篇(七)-----关键字static

一、 static代表着什么      在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。      Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在JVM加载一个类的

2017-08-28 21:13:25 829

转载 Java字符串中常见的10个问题

阅读目录怎样比较字符串?使用==还是equals()对于敏感信息优先使用字符数组而不是字符串switch语句是否可以用string怎样将字符串转成整型怎样按空白字符(可能多个)分割字符串substring()方法在做什么String vs StringBuilder vs StringBuffer怎样创建重复字符串如何将字符串转成date类型统计字符在某个字符串中出现的次数留给读者:如何检

2017-08-28 21:11:54 995

转载 Java内部类的一些总结

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类分为: 成员内部类、局部内部类、静态嵌套类、匿名内部类 。1.成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:123456789101112

2017-08-28 21:10:48 920

转载 java提高篇(八)----详解内部类

可以将一个类的定义放在另一个类的定义内部,这就是内部类。      内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面      内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private Strin

2017-08-28 21:08:54 827

转载 分布式开放消息系统(RocketMQ)的原理与实践

分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的?关键特性以及其实现原理一、顺序消息消息有序指的是可以按照消息

2017-08-27 21:12:39 1129

转载 RabbitMQ Tutorials简介

RabbitMQ TutorialsThese tutorials cover the basics of creating messaging applications using RabbitMQ. You need to have the RabbitMQ server installed to go through the tutorials, please see the ins

2017-08-22 23:09:51 1060

转载 消息队列MQ技术介绍

一、 消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ等。二、 消息队列应用场景下面详细介绍一下消息队列在实际应用中常用的使用场景

2017-08-22 23:09:01 1386

转载 Dubbo分布式服务框架简介

概览Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:      自开源后,已有不少非阿里系公司在使用Dubbo,参见已知用户那么,Dubbo是什么?Dubbo |ˈdʌbəʊ| 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调

2017-08-22 23:06:55 923 1

转载 Dubbo架构设计详解

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。

2017-08-22 23:05:43 941

转载 Spring MVC - 拦截器实现 和 用户登陆例子

1.拦截器  SpringMvc中的拦截器实现了HandlerInterceptor接口,通常使用与身份认证,授权和校验,模板视图,统一处理等;   [java] view plain copypublic class HanderInterceptor1 implements HandlerInterceptor {    

2017-08-21 23:12:08 1001

转载 Struts 2的基石——拦截器(Interceptor)

言归正传,Interceptor(以下译为拦截器)是Struts 2的一个强有力的工具,有许多功能(feature)都是构建于它之上,如国际化、转换器,校验等。什么是拦截器拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。在Webwork的中文文档的解

2017-08-21 23:11:03 848

转载 第五章 处理器拦截器详解——跟着开涛学SpringMVC

5.1、处理器拦截器简介Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 5.1.1、常见应用场景1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。2、权限检查:如登录检测,进入处理器检测检测

2017-08-21 23:09:40 851

转载 消息中间件收录集

原文出处: 朱小厮的博客本篇主要整理工作中遇到的一些消息中间件的相关知识,包括Kafka、RabbitMQ、RocketMQ、ActiveMQ等,不排除收录其他消息中间件的可能。这里会持续收录相关知识,包括安装、部署、使用示例、监控、运维、原理等。所有新撰写的与中间件有关的文章都会收录与此,注意保存本文链接。Last Update Time: 2017-04-17 19

2017-08-21 22:59:48 927

转载 RabbitMQ指南(下)

原文出处: Listen在上一小节中我们改进了log系统,由于使用fanout类型的exchange只能进行全局的广播,因此我们使用direct类型的exchange做了代替, 使得我们可以选择性的接收消息。尽管使用fanout exchange改进了log系统,但它仍然有限制——不能基于多个条件做路由。Topics在log系统中可能不只是基于不同的日志级别作订阅,也可

2017-08-21 22:59:06 848

转载 RabbitMQ指南(中)

原文出处: Listen在上一篇文章中,介绍了使用RabbitMQ的Hello World例子, 以及如何创建一个work queue。在work queue的例子中每条消息都只会被传递到一个work queue中。 在这篇文章中我们将会学习另一种完全不同的传递消息的方式——每条消息将会被传递给所有的consumer,这种模式一般被称为“发布/订阅”。发布/订阅(Publish

2017-08-21 22:58:16 847

转载 RabbitMQ指南(上)

原文出处: ListenRabbitMQ是一个消息中间件,在一些需要异步处理、发布/订阅等场景的时候,使用RabbitMQ可以完成我们的需求。 下面是我在学习RabbitMQ的过程中的一些记录,内容主要翻译自RabbitMQ官网的Tutorials, 再加上我的一些个人理解。我将会用三篇文章来从RabbitMQ的Hello World介绍起,到最后的通过RabbitMQ实现RPC调用,

2017-08-21 22:57:19 854

转载 Java 中 Comparable 和 Comparator 比较

本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明。 Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List

2017-08-21 22:25:50 888

转载 Java 解惑:Comparable 和 Comparator 的区别

原文出处: 张拭心Java 中为我们提供了两种比较机制:Comparable 和 Comparator,他们之间有什么区别呢?今天来了解一下。Comparable 自然排序Comparable 在 java.lang 包下,是一个接口,内部只有一个方法 compareTo():123publicin

2017-08-21 22:24:54 829

转载 Comparable与Comparator的区别

原文出处: MageShuaiComparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.u

2017-08-21 22:24:04 667

转载 IntelliJ IDEA导航特性Top20

在前面的文章里,我介绍了IntelliJ IDEA(以下称IntelliJ)中与代码补全及重构相关的特性。今天我将介绍另外一个利器——IntelliJ的导航(Navigation),只要运用得当,它将节约你大把的时间。作为一个IntelliJ的用户,你应先明确一点——IntelliJ是用来让你专注于代码的工具。只有这样我们才能充分利用并享受它的魔力。因此,大部分的时间里你应该专心工作于代码

2017-08-10 22:27:16 1078

转载 IntelliJ Idea 常用快捷键列表

Alt+回车 导入包,自动修正Ctrl+N   查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L  格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C  最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动

2017-08-10 22:26:04 871

转载 TCP报文段首部格式详解

TCP首部格式格式字段详解源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个。序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的

2017-08-07 23:13:09 1482

转载 TCP 滑动窗口协议

什么是滑动窗口协议?     一图胜千言,看下面的图。简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到关联的ACK,7,8,9帧则是等待发送。可以看出发送端的窗口大小为6,这是由接受端告知的(事实上必

2017-08-07 23:12:15 1515

转载 UDP 组播---你需要了解这些

先来了解下UDPUDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP和TCP的区别:http://blo

2017-08-07 23:11:27 2934

转载 TCP三次握手四次挥手详解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。因此在这里详细解释一下这两个过程。TCP三次握手

2017-08-07 23:10:41 902

转载 图解TCP协议中的三次握手和四次挥手

最近在复习计算机网络,看到TCP这一章,总结一下。建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:1.jpg先来看看如何建立连接的:2.png首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发送报文,并分配资源,这样TCP连接就建

2017-08-07 23:09:42 3240

转载 浅谈Java的Fork/Join并发框架

1. Fork/Join是什么  Oracle的官方给出的定义是:Fork/Join框架是一个实现了ExecutorService接口的多线程处理器。它可以把一个大的任务划分为若干个小的任务并发执行,充分利用可用的资源,进而提高应用的执行效率。  Fork/Join实现了ExecutorService,所以它的任务也需要放在线程池中执行。它的不同在于它使用了工作窃取算法,空闲的线程

2017-08-07 23:08:39 1059

转载 wireshark抓包图解 TCP三次握手/四次挥手详解

一. TCP/IP协议族      TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2. 网络层,也称作互联网层,处理分组在网络中的活动,例如

2017-08-07 23:07:30 1382

转载 通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就把看过的一些比较好的东西和自己的一些理解二次加工组织一下然后交流分享,一起学习进步,对了这个面试好像经常问到。原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,

2017-08-07 23:04:45 1022

搜索引擎以及网上免费学术资源的检索

介绍了一下搜索引擎的工作原理和组成部分,以Google和百度为代表介绍了搜索引擎的高级检索功能,以及搜索引擎非常强大的最常用的八条高级检索命令,最后对网上免费学术资源网站进行了介绍。

2015-09-22

空空如也

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

TA关注的人

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