- 博客(41)
- 资源 (5)
- 收藏
- 关注
转载 【参考】RabbitMQ使用场景练习:STOMP plugin
STOMP plugin Stomp是一个简单的消息文本协议(不重点介绍,没仔细研究过)。RabbitMQ中STOMP plugin的集成,实现了由浏览器通过WebSocket协议访问消息队列,SockJS作为后备(旧版的浏览器不支持WebSocket协议)启用stomp plugin命令代码rabbitmq-pluginsenablerabbitmq_web_s...
2016-12-22 15:33:59 7002
转载 【参考】RabbitMQ使用总结:持久化
持久化 RabbitMQ的持久化是为了实现服务从异常状态恢复后恢复之前的状态。RabbitMQ发送消息涉及交换器(exchange)、队列(queue)、消息,因而持久化包括交换器的持久化、队列的持久化、消息文本的持久化。获取消息是从队列中获取的、交换器进行的转发,所以为了确保消息的最终持久化,一般交换器、队列、消息都要进行持久化。 刚开始做练习的时候,一直有两个疑问没想通?...
2016-12-22 15:33:40 3118
转载 【参考】RabbitMQ使用场景练习:Validated User ID、Length Limit(十二 )
Validated User ID发送消息时指定userid,只有是当前conn的用户名才可以发送出去消息(测试发现非当前conn用户名,队列没有也没有创建,可能因为是在同一个channel)。用于消费者consumer需要知道消息是从哪个用户发过来的情况Java代码packagecom.demo.mq.rabbitmq.example12; importjava....
2016-12-22 15:33:06 676 1
转载 【参考】RabbitMQ使用场景练习:消息确认机制(十一)
消息确认机制RabbitMQ提供了transaction、confirm两种消息确认机制。transaction即事务机制,手动提交和回滚;confirm机制提供了Confirmlistener和waitForConfirms两种方式。confirm机制效率明显会高于transaction机制,但后者的优势在于强一致性。如果没有特别的要求,建议使用conrim机制。1、从实验来看,消息的确认...
2016-12-22 15:32:38 8998 2
转载 RabbitMQ使用场景练习:优先级队列(十)
优先级队列 只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效 RabbitMQ3.5以后已经集成了rabbitmq_priority_queue 引用http://www.rabbitmq.com/community-plugins.html验证方式:触发为及时消费场景,常用场景与Qos结合使用 1、可先发送消息,再进行消
2016-12-22 15:32:08 3754
转载 RabbitMQ使用场景练习:监听器Listener(九)
监听器 RabbitMQ中监听器有ReturnListener、ConfirmListener、ShutdownListener,本练习中使用ReturnListener,在发布消息时设置mandatory等于true,监听消息是否有相匹配的队列,没有时ReturnListener将执行handleReturn方法,消息将返给发送者 设置mandatory=true,当路
2016-12-22 15:31:40 15998 2
转载 RabbitMQ使用场景练习:延迟队列(八)
延时队列 在实际业务场景中可能会用到延时消息发送,例如支付场景,准时支付、超过未支付将执行不同的方案,其中超时未支付可以看做一个延时消息。 RabbitMQ本身不具有延时消息队列的功能,但是可以通过TTL(Time To Live)、DLX(Dead Letter Exchanges)特性实现。其原理给消息设置过期时间,在消息队列上为过期消息指定转发器,这样消息过期后会转
2016-12-22 15:31:18 4339
转载 RabbitMQ使用场景练习:RPC(七)
RPC,同步消息 RabbitMQ默认的consumer为异步监听,RPC应用需要实现consumer的同步,可以使用QueueingConsumer(继承与DefaultConsumer,定义了一个堵塞队列LinkedBlockingQueue)实现同步 实际上就是服务端、客户端各定义一个消息队列,相互发送消息,客户端发送消息后同步等待结果返回 注意要点
2016-12-22 15:30:37 2017
翻译 RabbitMQ使用场景练习:Headers(六)
Headers转发器 消息发送时可以在header中定义一些键值对,接收消息队列与headers转发器绑定时可以指定键值对,all、any两种方式(队列绑定转发器时指定的键值对与headers中存储的键值对匹配),匹配上即可接收到消息 注意要点headers转发器:Java代码 //声明headers转发器 channel.exc
2016-12-22 15:30:10 1703
翻译 RabbitMQ使用场景练习:主题Topic(五)
主题转发器(Topic) Topic转发器的功效包含fanout、direct类型的转发器,其特殊的地方在于转发器与队列的绑定时routingkey可以使用通配符*、#,使用*就相当于fanout,不使用通配符就相当于direct,否则就是模糊匹配,匹配上的队列都可以收到消息 注意要点topic转发器:Java代码 channel.ex
2016-12-22 15:28:31 761
翻译 RabbitMQ使用场景练习:路由选择Routing(四)
路由选择(Routing) Routing即按照某条路线把消息发送出去,所有这条路线上的队列都将接收到消息。 使用direct转发器,在转发器上使用同一routingkey绑定多个队列,根据routingkey发送消息,所有绑定的队列都将收到消息 注意要点direct转发器,把消息直接转发到绑定routingkey的队列:Java代码
2016-12-22 15:28:09 533
转载 RabbitMQ使用场景练习:发布/订阅(三)
发布/订阅 即实现单点发送消息,多点接收。使用fanout转发器,广播到所有它知道的队列上 注意要点fanout转发器中不需要routingKey,指定也无效 创建fanout转发器:Java代码 channel.exchangeDeclare("fanout_logs", "fanout"); channel.basic
2016-12-22 15:27:43 819
原创 【38】n!中存在的问题
public class TestJC { public static void main(String[] args) { try{ int n = 100; factorial(n); }catch(Exception e){ ...
2016-12-22 15:26:36 367
转载 关于使用Java实现的简单网络爬虫Demo
我们随便复制一条URL到浏览器中打开。看看效果。比如我们用这条http://i1.sinaimg.cn/dy/deco/2013/0316/arr.png好的。没有任何问题。图片都出来了。说明我们抓取的这个URL是有效的至此我们的一个简单的Demo就展示完成了
2016-12-22 15:22:08 775
转载 RabbitMQ使用场景练习:工作队列(二)
工作队列 工作队列的好处在于多个工作线程共享执行任务队列,使用round-robin的方式分发任务(简单的理解:依次把任务分配给工作进程,一次性分配1..n个任务,平均分配)。 注意要点工作线程的产生,在同一队列上声明多个Consumer:Java代码 channel.basicConsume(queue, false, consume
2016-12-20 13:26:02 544
转载 RabbitMQ使用场景练习:入门实例(一)
注意要点在生产消息和消费消息的时候,我们都习惯先queueDeclare一个队列,但是如果你先后执行下面这两行,会报错。channel.queueDeclare("test", true, false, false, null);channel.queueDeclare("test", false, false, false, null);因为你定义第二个队列的时候,队列名称不一样,...
2016-12-20 13:25:39 2175 1
转载 RabbitMQ的管理与监控
开启management plugin功能1、management plugin默认安装未开启,需要执行以下命令: $ cd /usr/lib/rabbitmq/bin/ $ sudo rabbitmq-plugins enable rabbitmq_management 2、management plugin提供HTTP API来管理和监控RabbitMQ Server,具体...
2016-12-20 13:21:31 2069 2
转载 【16】Propreties使用时路径问题
Propretie概述:一般我们保存一些配置文件,最典型的当属jdbc配置文件. 形如:driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydbuser=rootpassword=******Properties放置位置:1、放置到src的目录下 2、放置到src的子目录下...
2016-12-20 13:15:52 815
转载 Hadoop家族学习路线图
主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。从2011年开始,中国进入大数据风起云...
2016-12-20 13:13:35 797
原创 Java Bean以及xsd相互生成
1.先定义一个Java bean -- Student.java[java] view plain copyimport java.util.List; public class Student { private String name; private String number; pri
2016-12-20 11:37:00 1171
转载 Spring MVC之@RequestParam全面解析
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解一、基本使用,获取提交的参数后端代码:Java代码@RequestMapping("testRequestParam") publicStringfilesUpload...
2016-12-20 11:31:50 714
转载 Spring 类加载详细说明
最简单的配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http:
2016-12-20 11:26:54 1330
原创 Java web.xml session-config 属性配置
在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。设置Session超时时间方式:方式一:在代码工程web.xml中设置sessio...
2016-12-20 11:16:27 603
原创 git 撤销commit
git reset (--mixed):默认方式【同不带任何参数时的效果】,它会回退到某个版本,只保留源码,回退commit和index信息,此时 代码需要add,然后commit。git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可...
2016-12-20 10:59:01 296
转载 PostgreSql 在win7上安装详细步骤
PostgreSQL安装:一、windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1、开始安装:2、选择程序安装目录:注:安装 PostgreSQL 的分区最好是 NTFS 格式的。PostgreSQL 首要任务是要保证数据的完整性,而 FAT 和 FAT32 文件系统不能提供这样的可靠性保障...
2016-12-20 10:45:50 1863
转载 注解@PostConstruct与@PreDestroy讲解及实例
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法 。写法有如下两种方式:@PostConstructPublic void someMethod() {}
2016-12-20 10:39:08 307
转载 restful和http的区别
REST 定义了一组体系架构原则,您可以根据这些,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态。所以在事实上,REST 对 Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。在多年以后的今天,REST的主要框架已经开始雨后春笋般的出现。 个人理解:(一) 首先REST只是一种风格,不是一种标准(二) REST是以资
2016-12-20 10:35:11 505
原创 【37】隐式转换vs强制转换
在定义变量时,有许多要注意的问题,一不小心就会出现损失精度或者不兼容类型等问题。隐式转换特征:从小到大,可以隐式转换,数据类型将自动提升。byte,short,char -->int -->long -->float -->double。注意:long是8个字节,float是4个字节。long是整数,float是浮点型,整数和浮点数的存储规则不一样,记住一点l...
2016-12-13 14:18:47 2202
原创 【36】java中子类覆盖父类方法所必须满足的条件
package tong.yue.day4_264; import java.io.FileNotFoundException; import java.io.IOException; import javax.swing.JButton; import javax.swing.JComponent; /** * 子类重写(覆盖)父类的方法必须满...
2016-12-13 14:05:43 3642
原创 JPA中No entity found for query
EJB: 很久以前一直用EntityManager下getResultList()查询数据,即便一个数据亦是如此,所以要频繁的List.get(0);后来,getSingleResult()出现了。尽管如此,用它时还是要小心,因为你的代码的“可能异常”里从此就多了一个“No entity found for query”,在getSingleResult的源码里有这样一句: @throws ...
2016-12-13 13:38:56 2999
原创 maven dependency中scope=compile 和 provided区别
<dependency> <groupId>com.liferay.portal</groupId> <artifactId>portal-impl</artifactId> <version>6.1.0</version> <scope>
2016-12-12 19:12:12 2325
原创 【35】数组和List性能比较
public class Test { private static int count = 200000000; public static void main(String[] args){ int[] datas = new int[count];// List<Integer> datasList = new ArrayLi...
2016-12-12 17:38:48 1800 1
转载 外键列上是否需要索引
外键列上缺少索引会带来两个问题,限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。其实我认为不需要那么麻烦,与增加一个索引所带来的性能开销和磁盘空间开销相比,缺失索引可能引发的问题要严重得多。因此,我会选择在所有的外键列上添加索引,虽然可能导致创建了部分多余的索引,但是这样排除了外键约束由于缺失索引所带来的性能问题和并发性问题。 如果外键列上缺少...
2016-12-12 16:55:59 790
转载 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP【3】
SQL server 内部实现了三种类型的内连接运算,大多数人从来没有听说过这些连接类型,因为它们不是逻辑连接也很少被用于代码中。那么它们什么时候会被用到呢?答案是要依情况而定。这就意味着要依赖于记录集和索引。查询优化器总是智能的选择最优的物理连接类型。我们知道SQL优化器创建一个计划开销是基于查询开销的,并依据此来选择最佳连接类型。 那查询优化器究竟是怎样从内部选择连接类型
2016-12-12 16:49:47 835
转载 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP【2】
1 nested loop join循环嵌套连接:行源1的每一条记录,依次去匹配行源2的每条记录,将符合连接条件的记录放在结果集中,直到行源1的所有记录都完成这个操作。循环嵌套连接是最基本也是最古老的表连接方式。2 sort merge join排序合并连接:行源1和行源2的数据分别排序,然后将两个排序的源表合并,符合连接条件的记录放到结果集中。由于排序需要内存空间,sort me
2016-12-12 16:45:46 1848
转载 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP【1】
在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图。 从3张图里我们看到了几点信息:1. CBO 使用的ALL_ROWS模式Oracle Optimizer CBO RBOhttp://
2016-12-12 16:43:43 710
转载 Oracle 优化器RBO与CBO介绍总结
RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimization 基于规则的优化器 CBO: Cost-B...
2016-12-12 16:33:01 533
转载 Spring MVC之@RequestMapping 详解
引言:前段时间项目中用到了REST风格来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据。为了找出原因,便对参数绑定(@RequestParam、 @RequestBody、 @Req...
2016-12-06 17:51:12 255
Des前后台加解密
2016-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人