其他开源框架
文章平均质量分 95
hebeind100
这个作者很懒,什么都没留下…
展开
-
现代网络负载均衡和代理技术
作者:Matt Klein译者:杨泽原题:Introduction to modern network load balancing and proxying关于现代网络负载均衡和代理(proxy)的介绍性资料很少,这件事引起了我的注意。为什么会这样呢?构建一个可靠的分布式系统时,负载均衡是一个非常核心的概念。但可惜的是,搜索发现关于负载均衡和服务代理的内容很少。维基百科文章只...原创 2018-07-19 09:54:13 · 471 阅读 · 0 评论 -
5分钟了解Mockito
一、什么是mock测试,什么是mock对象? 先来看看下面这个示例:从上图可以看出如果我们要对A进行测试,那么就要先把整个依赖树构建出来,也就是BCDE的实例。 一种替代方案就是使用mocks从图中可以清晰的看出mock对象就是在调试期间用来作为真实对象的替代品。mock测试就是在测试过程中,对那些不容易构建的对象用一个虚拟对象来代替测试的方法就叫mock...原创 2016-03-21 13:36:37 · 106 阅读 · 0 评论 -
PropertiesConfiguration--配置文件加载工具类
PropertiesConfiguration是一个配置文件的加载工具类,封装了从配置文件里获取值并转化为基本数据类型的方法。它来自commons-configuration-1.6.jar。直接上代码:[java] view plain copypublic class Config { private static PropertiesConfigur...原创 2016-03-21 12:42:01 · 184 阅读 · 0 评论 -
ESAPI学习笔记
ESAPI是owasp提供的一套API级别的web应用解决方案,本人通过对ESAPI和其提供的demo源码学习发现,关键的不是对其所提供的API的使用,而是其web应用安全防御体系的构建的思想。比如,您不一定要使用ESAPI去实现日志系统,而是应该明白,一套好的日志系统应该是怎么样子的,应具备什么样的特性等。此外,在引入使用时可能会遇到不少麻烦,所以读者应根据自身的业务特性和需求...原创 2016-03-19 09:31:08 · 633 阅读 · 0 评论 -
JAVA 使用Dom4j 解析XML
解析XML的方式有很多,本文介绍使用dom4j解析xml。1、环境准备(1)下载dom4j-1.6.1.jar(2)下载junit-4.10.jar2、温馨提示解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来,有三种方式:(1)自己创建Document对象[java] vi...原创 2016-03-18 19:05:32 · 102 阅读 · 0 评论 -
Java JSON总结
常用JSON:Apache JSON、FastJSON、Jackson、Google Gson 1 JSONObject put,accumulate,element的区别 public Object put (Object key, Object value) 将value映射到key下。如果此JSONObject对象之前存在一个value在这个key下,当前的value...原创 2016-03-17 10:28:44 · 176 阅读 · 0 评论 -
数据库锁原理
1 为什么需要锁 数据库通常有大量的用户在同时操作,所以并发的情况下需要控制对临界资源的操作,数据库通过锁来控制对临界资源的访问,从而保证数据的一致性。例如对于同一个账户,操作之前账户余额为1000,同时开始2个事务,一个事务取款100,一个事务往账户中汇入100,那么2个事务结束后,账户的余额必须还是1000,否则要么银行不干,要么个人不干。 2 锁类型 2.1 共享锁(读锁) 读锁是共享的,...原创 2014-12-10 10:38:18 · 192 阅读 · 0 评论 -
Eclipse选中变量名,相同变量都变色显示 的设置
Eclipse选中变量名,相同变量都变色显示 的设置 java文件的设置"Window"-"preferences"-"Java"-"Editor"-"Mark Occurrences"复选框勾选 js文件的设置"Window"-"preferences"-"web"-"javascript"-"Mark原创 2014-12-03 14:22:46 · 119 阅读 · 0 评论 -
IE下载apk ipa有时候会变成zip格式的包
在APP下载页面时,其他浏览器都没有发生这样的事情,目前只发现IE浏览器下载apk包时会变成zip文件原因——存放apk的服务器端mime类型中没有支持apk格式解决办法——进入 /usr/local/nginx/conf,编辑mime.types文件,添加对apk和ipa的支持——添加对apk和ipa的支持application/vnd.android.package-ar...原创 2014-11-21 17:17:07 · 754 阅读 · 0 评论 -
Git 传输字节限制
使用git error: RPC failed; result=22, HTTP code = 411 用git提交比较大的文件的时候可能会出现这个错误 error: RPC failed; result=22, HTTP code = 411fatal: The remote end hung up unexpectedlyfatal: The remote end hu...原创 2014-11-17 17:04:32 · 555 阅读 · 0 评论 -
MySql日期操作
Mysql获取当前日期时间函数1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ ...原创 2014-11-10 17:21:02 · 132 阅读 · 0 评论 -
【技术贴】9个基于Java的搜索引擎框架
9个基于Java的搜索引擎框架 1.Java全文搜索引擎框架Lucene 毫 无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引 擎。Lucene为开发人员提供了相当完整的工具包,可以非常方便地实现强大的全文检索功能。下面有几款搜索引擎框架也是基于Lucene实现的。官方网站:htt...原创 2016-09-21 19:18:15 · 184 阅读 · 0 评论 -
Kafka图文详解
Every write operation goes to all replicas, but only responsesfrom a majority quorum are necessary to commit the write.每一次写操作都分发到所有副本,只有大部分节点应答才能提交写缺点:随着副本数的增加,集群中需要ack的节点数量比较多(n/2-1)存储元数据,数据...原创 2016-09-05 11:16:06 · 104 阅读 · 0 评论 -
Kafka是如何实现高吞吐率的
Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失 kafka主要使用了以下几个方式实现了超高的吞吐率 顺序读写 kafka的消息是不断追加到文件中的,这个特性使kafka可以充分利用磁盘的顺序读写性能 顺序读写不需要硬盘磁头的寻道时间,...原创 2016-09-05 10:55:50 · 764 阅读 · 0 评论 -
Gradle 简介及Maven 和 Gradle 对比
Gradle https://gradle.org/ Gradle介绍Gradle是一个基于JVM的构建工具,它提供了:像Ant一样,通用灵活的构建工具可以切换的,基于约定的构建框架强大的多工程构建支持基于Apache Ivy的强大的依赖管理支持maven, Ivy仓库支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。...原创 2016-09-03 14:01:56 · 139 阅读 · 0 评论 -
Maven插件之portable-config-maven-plugin(不同环境打包)
大型项目中,分开发环境、测试环境、生产环境等;不同环境,配置不同,或数据源,或服务器,或数据库等; 问题来了,如何使用Maven针对不同的环境来打包呢? Maven提供了Profile的概念,用来解决此类问题,其原理很简单,就是使用变量替换;举个例子来说明,测试项目目录结构如下图所示:比如开发环境和生产环境的数据库不同,db.properties配置文件内容如下:...原创 2016-03-23 12:37:53 · 129 阅读 · 0 评论 -
Twemproxy介绍与安装、使用
1.总论 twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。 redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理。避免每个应用每个客户端管理连接的松散性。同时在一定程度上变得可以控制。 搜索了不少的开源代理项目,知乎实现的python分片客户端。node的代理中间...原创 2016-04-01 22:30:57 · 154 阅读 · 0 评论 -
漏桶算法和令牌桶算法
Google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法来完成限流,非常易于使用 常用的限流算法有两种:漏桶算法和令牌桶算法。 漏桶算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,可以看出漏桶算法能强行限制数据的传输速率。图1 漏桶算法示意图 对于很多应用场景来说,除了要求能...原创 2017-02-27 20:08:22 · 207 阅读 · 0 评论 -
Maven生命周期和阶段详解
maven 生命周期maven 有三个内置的build生命周期:default, clean 、siteJava代码 clean阶段:处理项目的清理工作 default阶段:处理项目的deploy site阶段:处理网站站点的创建 一个build的生命周期是由一些列的阶段(phases) 组成每一个生命周期(default\clean\si...原创 2017-06-23 16:12:14 · 411 阅读 · 0 评论 -
HBase之Java API
几个相关类与HBase数据模型之间的对应关系java类HBase数据模型HBaseAdmin数据库(DataBase)HBaseConfigurationHTable表(Table)HTableDescriptor列族(Column Family)Put列修饰符(Column Qualifier)GetScann...原创 2016-04-10 20:42:23 · 307 阅读 · 0 评论 -
Java API读写HDFS
HDFS是Hadoop生态系统的根基,也是Hadoop生态系统中的重要一员,大部分时候,我们都会使用Linux shell命令来管理HDFS,包括一些文件的创建,删除,修改,上传等等,因为使用shell命令操作HDFS的方式,相对比较简单,方便,但是有时候,我们也需要通过编程的方式来实现对文件系统的管理。 比如有如下的一个小需求,要求我们实现读取HDFS某个文件夹下所有日志,经过加工处理后在写...原创 2016-04-10 20:34:47 · 605 阅读 · 0 评论 -
google的guava工具包
Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库。目前主要包含:com.google.common.annotationscom.google.common.basecom.google.common.collectcom.google.common.iocom.google.common.net...原创 2016-04-10 08:27:59 · 657 阅读 · 0 评论 -
Google Guava Splitter 对比 Apache StringUtils
google的guava库是个很不错的工具库,这次来学习其spliiter的用法,它是一个专门用来 分隔字符串的工具类,其中有四种用法,分别来小结 1 基本用法 [html] view plain copy import com.google.common.base.Splitter; public class GuavaSplitterExamp...原创 2016-04-09 14:52:24 · 262 阅读 · 0 评论 -
MongoDB如何存储数据
深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files。Memeory-Mapped Files下图展示了数据库是如何跟底层系统打交道的。内存映射文件是OS通过mmap在内存中创建一个数据文件,这样就把文件映射到一个虚拟内存的区域。虚拟内存对于进程来说,是一个物理内存的抽象,寻址空间大小为2^64操作系统通过mmap来把进...原创 2016-04-09 10:05:42 · 489 阅读 · 0 评论 -
Mongodb java api操作
主要介绍mongodb对应java的常用增删改查的api,以及和spring集成后mongoTemplate的常用方法使用 1.首先上需要用到的两个实体类User和Home,对应用户和家乡import java.util.List;import org.springframework.data.mongodb.core.mapping.Document;/** * java类转换为m...原创 2016-04-09 10:04:52 · 415 阅读 · 0 评论 -
NoSql数据库MongoDB简介
Mongo是一个高性能,开源,模式自由(schema-free)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值(key-value)存储方式。Mongo使用C++开发,具有以下特性:l 面向集合的存储:适合存储对象及JSON 形式的数据。l 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。l 完整的索引支...原创 2016-04-09 10:03:43 · 356 阅读 · 0 评论 -
剖析淘宝TDDL——Matrix层的分库分表配置与实现
前言在开始讲解淘宝的TDDL(Taobao Distribute Data Layer)技术之前,请允许笔者先吐槽一番。首先要开喷的是淘宝的社区支持做的无比的烂,TaoCode开源社区上面,几乎从来都是有人提问,无人响应。再者版本迭代速度也同样差强人意,就目前而言TDDL5.0的版本已经全线开源(Group、Atom、Matrix)大家可以在Github上下载源码。 目录一、互...原创 2016-04-09 09:53:30 · 130 阅读 · 0 评论 -
Cassandra NOSQL 数据库
Cassandra或许不会因为是NoSQL而得到关注,但是它在完成某些特定工作上,有迷人的魅力,这Netflix和Instagram两家公司一定知道。 过去的这些年,NoSQL的参与者,例如MongoDB已经得到了快速发展,受到了非常多的关注,但是 Apache Cassandra的光环褪去,作为创造了Cassandra的Facebook已经放弃了它,Cassandra的社区也好像过时了快...原创 2016-04-08 22:20:37 · 207 阅读 · 0 评论 -
TestNG:一个超越JUnit和NUnit的新测试框架
TestNG是一个源于JUnit和NUnit但有所超越的新测试框架。TestNG引入的一些新功能使自己更强大和易用: 注解。可以在任意的大线程池中,使用各种策略运行测试(所有方法都可以拥有自己的线程或者每个测试类拥有一个线程等等)。代码多线程安全测试。灵活的测试配置。支持数据驱动测试(@DataProvider)。...原创 2016-04-08 22:13:07 · 248 阅读 · 0 评论 -
JCommander(命令行参数解析工具)
Commander是一个用于解析命令行参数的Java框架,支持解析所有基本的数据类型,也支持将命令行解析成用户自定义的类型,只需要写一个转变函数。1. JCommander用法将用来表示参数的fields用@Parameter标识: [java] view plain copy import com.beust.jcommander.Parameter...原创 2016-04-01 22:49:07 · 1654 阅读 · 0 评论 -
keepalived工作原理和配置、使用
keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。keepalived工作原理keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提...原创 2016-04-01 22:35:58 · 239 阅读 · 0 评论 -
如何构建你自己的 Git 服务器
现在我们开始学习如何构建一个Git服务器,如何编写自定义的Git钩子(hook)来针对某些事件(比如,通知事件)触发特定的动作以及如何将你的代码发布到网站上。直 到现在,我们关注的还是作为一个用户如何与Git交互。本文将对Git管理以及如何设计一个灵活的Git基础设施进行讨论。你可能认为这听起来有点像“高 级Git技术”或“只有学霸才能阅读”的委婉说法,但实际上,这些任务只需要你对Git如何...原创 2016-08-18 09:34:39 · 131 阅读 · 0 评论 -
Redis命令总结回顾
连接操作相关的命令quit:关闭连接(connection)auth:简单密码认证持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务flushdb:清空当前打开的数据库。 远程服务控制info:提供服务器的信息和统计...原创 2015-09-16 15:46:57 · 105 阅读 · 0 评论 -
Invalid embedded descriptor for ".proto".Dependencies passed (Protobufer)解决办法
开发的时候,发现居然出现了Dependencies passed to FileDescriptor.buildFrom() don't match those listed in the FileDescriptorProto.的错误,还有Protocol Buffers Invalid embedded descriptor problem等错误,上网google了很久也没找到解决方法,最终...原创 2016-04-16 15:06:13 · 596 阅读 · 0 评论 -
Maven的仲裁原则
Maven的仲裁原则:最短路径优先原则、第一声明优先原则 最短路径优先原则按照依赖路径的长度,长度最小的优先。A->B->E 2.0D ->E 1.0 同时依赖AD,则E的版本是1.0 第一声明优先原则使用前提是:路径长度一样A->B->E 2.0D->C ->E 1.0 同时依赖AD,则E的版本...原创 2016-04-14 19:59:09 · 546 阅读 · 0 评论 -
eclipse导入Maven项目报错Unsupported IClasspathEntry kind=4
eclipse导入Maven项目报错: An internal error occurred during: "Importing Maven projects". Unsupported IClasspathEntry kind=4 1. Right-click on your project, select Maven -> Remove Maven Nature. 2.O...原创 2015-05-22 10:39:54 · 173 阅读 · 0 评论 -
架构师必知:了解 Git 的工作方式,而不仅仅是了解命令
it 是一种常用的分布式源代码库。它是由 Linux 创作者 Linus Torvalds 创建的,旨在管理 Linux 内核源代码。GitHub 等整体服务都是基于它创建的。甚至 IBM 的 DevOps Services 和 IBM Rational Team Concert™ 源代码库也使用它。因此,如果您想在 Linux 领域中编写程序,或者是结合使用 IBM 的 DevOps Serv...原创 2015-05-21 10:39:27 · 140 阅读 · 0 评论 -
Redis 3.0.1安装部署
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可...原创 2015-05-19 16:49:27 · 116 阅读 · 0 评论 -
Joda-Time 简介
任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库。正如您在本文中了解的那样,Joda-Time 轻松化解了处理日期和时间的痛苦和繁琐。在编写企业应用程序时,我常常需要处理日期。并且在我的最新...原创 2014-09-05 11:49:26 · 132 阅读 · 0 评论 -
Jansi:让控制台输出彩色字符的方法
给政府做项目时我们一般都使用的是Java,服务器一般都是Weblogic或Tomcat(开发环境)。经常使用Java的人都知道,它在后台输出的信息一般都是黑底白字,或在Linux环境中可以改成黑绿字等,反正是很单调。我也从来没想过它能够变成彩色,但今天我发现了一个java类库——Jansi——它能够让你在控制台输出色彩缤纷的文字。先给大家看看效果: Jansi虽然是一个很小的Java包...原创 2014-09-05 11:27:09 · 1214 阅读 · 0 评论