自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

转载 心跳机制

心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。大部分CS的应用需要心跳机制。心跳机制一般在Server和Client都要实现,两者实现原理基本一样。Client不关心性能,怎么做都行。如果应用是基于TCP的,可以简单地通过SO_KEEPALIVE实现心跳。TCP在设置的KeepAlive定时器到达时向对端发一个检测TCP segment,如果没收到A

2017-06-16 15:11:51 2779

转载 后台管理UI的选择

目录一、EasyUI二、DWZ JUI三、HUI四、BUI五、Ace Admin六、Metronic七、H+ UI八、Admin LTE九、INSPINIA十、LigerUI十一、其它UI十二、总结最近要做一个企业的OA系统,以前一直使用EasyUI,一切都好,但感觉有点土了,想换成现在流行的Bootstrap为基础的后台UI风格,想满足的条件应该达到如下几个:1、美观

2016-11-16 11:10:38 782

翻译 解析elasticsearch的config下的配置文件

config目录下有2个配置文件:es的配置文件(elasticsearch.yml) 和日志配置文件(logging.yml ) cluster.name: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 node.name: “Franz Kafka” 节点

2016-10-27 14:52:46 1844

原创 Elasticsearch搭建windows环境的集群

1.在官网下载ElasticSearch压缩包 Elasticsearch2.4.1安装包 https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-2.4.1.zip 2.解压下载的包,进入bin目录。运行elasticsearch.bat文件 此时会在bin的同级目录下会生成data和logs文件夹 3.

2016-10-27 14:51:58 3032

原创 cassandra集群搭建

实施Cassandra集群,并连接客户端进行操作验证集群功能正常,抓图实验过程 答: 一、本次作业选两个节点来实验:192.168.244.128、192.168.244.129 二、配置节点192.168.244.128 (1)配置Java环境(略) (2)下载cassandra安装包apache-cassandra-2.1.16-bin.tar.gz (3)创建目录cassandra

2016-10-26 00:57:48 1795 1

原创 Cassandra集群配置

1、基本配置首先需要准备3台或以上的计算机。下面假定有3台运行 Linux 操作系统的计算机,IP地址分别为 192.168.0.100, 192.168.0.101 和 192.168.0.102。 系统需要安装好 Java 运行时环境,然后到这里下载 0.7 版本的 Cassandra 二进制发行包。挑选其中的一台机开始配置,先展开 cassandra 发行包:tar−zxvfapache−ca

2016-10-24 16:04:40 425

原创 Cassandra常用命令

ssh admin@192,168.6.201 cqlsh 192.168.6.202 desc keyspaces; use forseti_fp; ceate index 索引 on device——session(id); 2015-01-04 cassandra 查看表空间describe keyspaces; 查看已有表:describe tables; 查看表结构:d

2016-10-24 15:51:20 1059

原创 android的搜索框架

android

2016-10-15 14:41:00 734

转载 Android ListView

首先我们先来看一下ListView的继承结构,如下图所示:可以看到,ListView的继承结构还是相当复杂的,它是直接继承自的AbsListView,而AbsListView有两个子实现类,一个是ListView,另一个就是GridView,因此我们从这一点就可以猜出来,ListView和GridView在工作原理和实现上都是有很多共同点的。然后AbsListView又继承自AdapterView,

2016-10-12 14:22:15 291

原创 ScrollView用法

理论部分1、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条2、上述两个控件只能有一个孩子,但是它并不是传统意义上的容器3、上述两个控件可以互相嵌套4、滚动条的位置现在的实验结果是:可以由layout_width和layout_height设定5、ScrollView用于设置垂直滚动条,HorizontalScrollView用于设置水平滚动条:需要注意的是,

2016-10-12 10:01:58 2160

原创 Android Layout各种布局

LinearLayout(线性布局)提供了控件水平垂直排列的模型,同时可以通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。水平(vertical)垂直(horizontal)fill-parent:占满整个屏幕,wrap-content:刚好适合控件内容的大小对齐方式gravity取值:top:不改变大小,位置置于容器的顶部bottom:不改变大小,位置置于容器的底部left:不

2016-10-12 09:58:36 361

原创 android的context

在Android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么东东呢? 这里的this指的是Activity.this,是这个语句所在的Activ

2016-10-09 17:04:31 264

原创 Android AsyncTask介绍

一、AsyncTask的基本用法 由于AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它。在继承时我们可以为AsyncTask类指定三个泛型参数,这三个参数的用途如下:Params 在执行AsyncTask时需要传入的参数,可用于在后台任务中使用。Progress 后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为进度单位。Resul

2016-10-09 16:04:54 300

原创 视频地址

Android应用开发视频教程 http://t.cn/R2ePLim unity视频 http://t.cn/RzkZ029 老罗Android开发视频教程 http://t.cn/RzkZ02R mars Android开发视频教程 http://t.cn/RzkZ02N ios开发视频教程 http://t.cn/R2ePLin Android实战教程资料 http://

2016-10-08 17:27:04 325

原创 JAVA设计模式之抽象工厂模式

例子背景: 随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和发动机。宝马320系列配置A型号空调和A型号发动机,宝马230系列配置B型号空调和B型号发动机。概念: 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。比如宝马320系列使用空调型号A和发动机型号A,而宝马

2016-10-08 09:57:58 240

原创 WebSocket入门

一.WebSocket简单介绍  WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。 传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回response结果,而服务端很难主动向客户端发送数据;这种客户端是主动方,服务端是被动方的传统Web模式 对

2016-10-01 23:31:11 299

原创 Java SPI机制

有这样的一个应用场景,在某个JAR包内,有一个接口IA,然后有3个IA接口的具体实现类,分别是AIA,BIA,CIA。那么如果在该JAR包内其他的类中使用接口IA的时候,硬编码IA对象对应的具体实现类,就会导致非常不灵活。这就是SPI机制产生的场景由来。一、SPI机制概念SPI的全称是Service Provider Interface。简单来说,SPI机制提供

2016-09-30 14:55:48 317

原创 JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部

2016-09-30 11:02:37 293

转载 Spring Bean后处理器以及容器后处理器

Bean后处理器:即当Spring容器实例化Bean实例之后进行的增强处理。容器后处理器:对容器本身进行处理,并总是在容器实例化其他任何Bean之前读取配置文件的元数据并可能修改这些数据。一、Bean后处理器      实现了BeanPostProcessor接口的类即可作为一个Bean后处理器,以下是一个Bean后处理器的范例      1、编写一个实

2016-09-29 22:21:11 3662

原创 JAVA设计模式之单例模式

概念:  Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、

2016-09-29 14:46:55 203

原创 Classload

Java 运行时环境(JRE)是如何加载类的呢? 这玩意水太深,就谈谈一个类是怎么加载的,jvm是怎么工作的。JVM启动后有三个基本层次的类加载器,先上图:其中bootstap classloader 是c++写的,jvm启动后,它加载java环境运行所需要的一些class文件(java.* javax.*等包),例如rt.jar,但还有其他的,大家

2016-09-29 14:14:19 302

转载 JAVA CAS原理深度分析

看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedrefe

2016-09-28 22:50:57 258

转载 JAVA并发编程学习笔记之Unsafe类

java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可以修改对象的

2016-09-28 21:59:21 793

转载 Java之CountDownLatch使用

CountDownLatch1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重

2016-09-24 21:31:52 219

原创 Java设计模式之观察者模式

本文继续介绍23种设计模式系列之观察者模式。观察者模式中,一个被观察者管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常通过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。角色抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增

2016-09-24 20:35:40 206

转载 分布式锁机制

前言:      由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。 ===========================================

2016-09-06 18:07:49 1253

转载 Java线程池架构原理和源码解析(ThreadPoolExecutor)

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  在Java中可以通过线程池

2016-09-01 23:54:46 1373 1

原创 Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cass

2016-04-19 10:01:25 3468

转载 java中线程队列BlockingQueue的用法

在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。[@more@]认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数

2016-03-13 13:00:50 242

转载 Java线程池使用说明

一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执行线程的数量。

2016-03-13 12:26:17 225

转载 redis事务处理

Redis事务的分析及改进Redis的事务特性数据ACID特性满足了几条? 为了保持简单,redis事务保证了其中的一致性和隔离性; 不满足原子性和持久性;原子性redis事务在执行的中途遇到错误,不会回滚,而是继续执行后续命令;(违反原子性)事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作; 中间某条指令的失败不会导致前面已做指令的

2016-03-02 16:00:52 650

转载 基于Redis实现分布式锁

背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍

2016-03-02 15:58:28 249

转载 Java中的ReentrantLock和synchronized两种锁定机制的对比

原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造

2016-02-23 11:42:42 212

转载 Redis与Memcached的区别

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

2016-02-21 15:09:18 212

转载 Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间

2016-01-05 10:55:32 428

转载 Kafka 对比 ActiveMQ

Kafka 是LinkedIn 开发的一个高性能、分布式的消息系统,广泛用于日志收集、流式数据处理、在线和离线消息分发等场景。虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先ActiveMQ 等传统的消息系统。Kafka 将消息流按Topic 组织,保存消息的服务器称为Broker,消费者可以订阅一个或者多个Topic。为了均衡负载,一个Topic 的消息又可以划分

2015-12-24 14:44:08 342

转载 分布式消息系统 Kafka 简介

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

2015-12-24 14:42:38 535

转载 DDOS攻击原理及防护方法论

从 07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟。 DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形势十分严峻,超过1G的攻击流量频频出现,CNCERT/CC掌握的数据表明,最高时达到了 12G,这样流量,甚至连专业的机房都无法抵挡。更为严峻的是:利用DDOS攻击手段敲诈勒索已经形成了一条完整的产业链!

2015-12-22 18:19:32 599

转载 构建高并发高可用的电商平台架构实践

一、 设计理念  1.      空间换时间1)      多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存

2015-12-17 10:20:38 546

转载 Netty-Mina深入学习与对比

Netty-Mina深入学习与对比(一)感谢支付宝同事[易鸿伟]在本站发布此文。这博文的系列主要是为了更好的了解一个完整的nio框架的编程细节以及演进过程,我选了同父(Trustin Lee)的两个框架netty与mina做对比。版本涉及了netty3.x、netty4.x、mina1.x、mina2.x、mina3.x。这里并没有写netty5.x的细节,看了netty5的修

2015-05-12 17:19:36 711

1_5_0-API_CN.CHM

中文版 JAVA API

2008-03-07

空空如也

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

TA关注的人

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