`
文章列表
最近在做一个数据分析相关的工作,需求是将全国各地idc内的流量信息进行汇总和分析最后吐出一些安全策略,由于对时效性的要求比较高,大概每隔几秒就会有一次几十M的的数据需要传递到汇总服务器上去,而且随着业务的发展数据量还会越来越大,所以使用什么手段来做数据的传输就成为了一个关键的问题。 首先是可扩展性,如果使用标准socket进行传递的话随着数据量的扩大单点肯定会成为瓶颈,而且如果可用性要高的话,异步、缓存、重传等等都是需要考虑的要素,为了开速上线功能就要去几个开源的消息队列里挑选一下合适这个项目的了。 由于团队内的一些推荐和自己以前的经验,初步定下了kafka、rabbitmq、zerom ...
导读:本文是从《Message Queue Shootout!》这篇文章翻译而来,译文来自外刊IT评论《消息队列软件产品大比拼》。 内容如下: 我花了一周的时间评估比较了一下各种消息队列产品,非常的有趣。我做这个事的动机是因为一个客户 ...
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。   第一部分:RabbitMQ,ActiveMq,ZeroMq比较 1、 TPS比较 一 ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。 测试环境:      Model: Dell Studio 1749      CPU: Intel Core i3 @ 2.40 GHz      RAM: 4 Gb      OS: Windows 7 64 bits ...
原文:点击打开链接   1.笛卡尔积(Cartesian product) 顾名思义, 这个概念得名于笛卡儿. 在数学中,两个集合 X 和 Y 的笛卡儿积(Cartesian product),又称直积,表示为 X × Y,是其第一个对象是 X 的成员而第二个对象是 Y 的一个成员的所有可能的有序对. 假设集合A= {a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选 课情况 ...
目前网站架构一般分为网页缓存层、负载均衡层、Web层、数据库层、文件服务器层 。我们可以依次用这五层对网站架构进行讨论,为了增强说服力,我将用如下三个并发较大的生产环境来说明。 q   电子商务网站(并发最大峰值2900,日PV500万左右) q   电子广告网站(并发最大峰值1500,日PV150万左右) q
mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne"就是全部的比较操作符,对应于"<", "<=", ">", ">=","!="。 原子操作符:"$and“, "$or“, "$nor“。 or查询有两种方式:一种是用$in来查询一个键的多个值,另一种是用$or来完成多个键值的任意给定值。$in ...
package com.tocersoft.base.filter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import com.tocersoft.member.entity.Member; //session监听器. // // 在WEB容器的web.xml ...
对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键, 用来指定复杂的操作,比如增加、删除或者调整键,还可能是操作数组或者内嵌文档。   1.$inc -------------------------------------------------------------------------- 这个修改器干什么使的呢?看看下面示例的具体操作后的结果即可知道。   示例文档:{"uid":"201203","type":"1",s ...
Session创建事件发生在每次一个新的session创建的时候,类似地Session失效事件发生在每次一个Session失效的时候。 这个接口也只包含两个方法,分别对应于Session的创建和失效: # public void sessionCreated(HttpSessionEvent se); # public void sess ...
solr是基于 lucence开发的应用,如果query中带有非法字符串,结果很可能是检索出所有内容或者直接报错,所以你对用户的输入必须要先做处理。输入星号,能够检索出所有内容;输入加号,则会报错。 官方的处理办法(Java,因为solr是java开发的):   https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/util/ClientUtils.java public static String esca ...
自定义Appender实际应用   场景一:利用log4j MongoDB插件 向 MongoDB数据库写入数据   1.项目引入 jar 包:spring-data-mongodb-log4j:1.8.0,及 log4j 1.2以上jar包 2.log4j.properties 配置     log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.spring ...
         最初想要在执行一段业务逻辑的时候调用一个外部接口记录审计信息, 一直找不到一个比较优雅的方式,经过讨论觉得log4j自定义的appender或许可以实现此功能。 后来就了解了一下log4j的这部分。 Apache Log4j 架构 Apache Log4j是当前在J2EE和J2SE开发中用得最多的日志框架(几乎所有项目都用它),因为它具有出色的性能、灵活的配置以及丰富的功能,并且在业务有特殊的要求时,可以使用自定义组件来代替框架中已有的组件来满足要求。 log4j组件介绍 Log4j主要有三个组件:       Logger:负责供客户端代码调用,执行debug(O ...
LoggerRepository从字面上理解,它是一个Logger的容器,它会创建并缓存Logger实例,从而具有相同名字的Logger实例不会多次创建,以提高性能。它的这种特性有点类似Spring的IOC概念。Log4J支持两种配置文件:properties文件和xml文件。Configurator解析配置文件,并将解析后的信息添加到LoggerRepository中。LogManager最终将LoggerRepository和Configurator整合在一起。   LoggerRepository接口   LoggerRepository是一个Logger的容器,它负责创建、缓 ...
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。   Log4j配置介绍   1. 配置文件   Log4J配置文件的基本 ...
一.基本查询   q – 查询字符串,必须的。fl – 指定返回那些字段内容,用逗号或空格分隔多个。start – 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。rows – 指定返回结果最多有多少条记录,配合start来实现分页。sort – 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。wt – (write ...
Global site tag (gtag.js) - Google Analytics