- 浏览: 56655 次
- 性别:
- 来自: 北京
最新评论
文章列表
ActiveMQ两种消息模式
- 博客分类:
- ActiveMQ
一、点对点模式(p2p)
二、发布/订阅模式(pub/sub)
示例:
public class Producer {
// 建立connectionFactory工厂对象
private ActiveMQConnectionFactory connectionFactory;
// 连接对象
private Connection connection;
// session对象
private Session session;
// 生产者
private MessageProducer producer;
public Produc ...
ActiveMQ消息选择器与异步接收
- 博客分类:
- ActiveMQ
一、消息选择器
消息选择器:过滤消息属性与设置条件相等的消息进行消费。语义与sql一致。
private final String selector_1 = "sex='w'";
this.consumer = session.createConsumer(destination, selector_1);
二、消息异步接收
消息异步接收 :当消息到达时,ActiveMQ主动通知消费端,可以注册一个MessageListener类实现onMessage方法,监听MQ送达消息
示例:
public class Produ ...
ActiveMQAPI
- 博客分类:
- ActiveMQ
一、connection方法使用
1、创建connection时,它的传输默认是关闭的,必须使用start方法开启。一个connection可以创建多个session。
2、当一个程序执行完成后,必须关闭之前创建的connection,否则ActiveMQ不能释放资源。关闭Connection后,同时也关闭了Session\MessageProducer\MessageConsumer.
Connection connection = connectionFactory.createConnection();
Connection connection = ...
ActiveMQ持久化存储
- 博客分类:
- ActiveMQ
activeMQ的消息可以存储在不同的存储中,(默认是kahaDB,levelDB,mysql,oracle)
1、配置数据库连接
C:\M\apache-activemq-5.14.1\confactivemq.xml添加数据库连接数据。
1、1替换数据库连接
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysqlDB"/>
...
ActiveMQ配置文件及安全验证机制
- 博客分类:
- ActiveMQ
1、修改控制台登录用户密码
activemq的web管理界面:http://127.0.0.1:8161/admin
activemq管控台使用jetty部署,需要修改密码则修改对应的配置文件C:\M\apache-activemq-5.14.1\conf\jetty-realm.properties
引用
admin: admin, admin
user: user, user
2、消息安全机制:只有符合认证的用户才能进行发送和获取消息
2.1 到C:\M\apache-activemq-5.14.1\confactivemq.xml添加安全 ...
ActiveMQ使用之HelloWord
- 博客分类:
- ActiveMQ
一、下载MQ:
官网http://activemq.apache.org/下载,选择windows版本学习,项目当中使用linux版本进行集群。
二、解压目录介绍
Bin:启动脚本.bin/activemq.bat是启动MQ的脚本
Conf:mq核心配置。
activemq.xml核心配置
Jetty:管控 ...
ActiveMQ概述及其它消息中间件对比
- 博客分类:
- ActiveMQ
一、概述
作用:异步消费数据,异步发邮件,异步查询操作
当前远程调用等许多框架rpc技术广泛应用,但面对大规模和复杂度都越来越高的分布式系统,这些技术有以下局限性:
1、同步通信:客户发出调用后,必须 ...
一、ITridentSpout
基于事务
static interface ITridentSpout.BatchCoordinator<X>
static interface ITridentSpout.Emitter<X>
接口类的实现和之前事务ITransactionalSpout 非常类似。
二、调用链用于执行多个聚合
topology.newDRPCStream("top", drpc).each(new Fields("args"), new Split(“ ”), new Fiel ...
Trident实战之计算网站PV
- 博客分类:
- Strom
1、Trident实战之计算网站PV
/**
* Trident实战之计算网站PV
*/
public class TridentPVTopo {
public static StormTopology buildTopology(LocalDRPC drpc) {
Random random = new Random();
String[] hosts = { "www.taobao.com" };
String[] session_id = { "ABYH6Y4V4SCVXTG6DPB4VH9U123", ...
Trident API和概念
- 博客分类:
- Strom
一、Trident API——Spout
ITridentSpout:最通用的Spout,可以支持事务或者不透明事务语义。
IBatchSpout: 一个非事务spout 。
IPartitionedTridentSpout: 分区事务spout,从数据源(比如一个Kafka集群)读分区数据
IOpaquePartitionedTridentSpout:不透明分区事务spout,从数据源读分区数据
接口变动
例如:
简单概括总体流程就是:
trident在执行时每批先调用 getPartitionsForBatch()如果发现返回的Partit ...
英文原址:https://github.com/nathanmarz/storm/wiki/Trident-tutorial
翻译地址1:http://blog.csdn.net/derekjiang/article/details/9126185#t3
翻译地址2:http://www.tuicool.com/articles/B3yA3aI
Trident是完全容错的,拥有有且只有一次处理的语义,其实就是transactional的高级封装。这就让你可以很轻松的使用Trident来进行实时数据处理。Trident会把状态以某种形式保持起来,当有错误发生时,它会根据需要来恢复这些状态。
...
1、spout
public class MyOpaquePtTxSpout implements IOpaquePartitionedTransactionalSpout<MyMata> {
/**
* 将Coordinator发射数据动作下放到emitPartitionBatch类执行。
*/
private static final long serialVersionUID = 1L;
public static int BATCH_NUM = 10;
public Map<Integer, Map<Long, String ...
分布式远程调用drpc实例
- 博客分类:
- Strom
一、DRPC定义
分布式dRPC(distributed RPC,DRPC)用于对Storm上大量的函数调用进行并行计算。
对于每一次函数调用,Storm集群上运行的拓扑接收调用函数的参数信息作为输入流,并将计算结果作为输出流发射出去。
一句话概括:Storm进行计算,根据客户端提交的请求参数,而返回Storm计算的结果。
DRPC通过DRPC Server来实现,DRPC Server的整体工作过程如下:
接收到一个RPC调用请求;
发送请求到Storm上的拓扑;
从Storm上接收计算结果;
将计算结果返回给客户端。
注:在client客户端看来,一个DRPC调用看起来和一般的RPC调用 ...