`
文章列表
一、pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apac ...
 spring-batch 应用:从csv读取数据写入到数据库   一、spring配置文件   applicationContext.xml     <?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:con ...

ACLs

s

Watches

Zookeeper的读操作:getData()、getChildren()、exists(),都有可选参数watch。   Definition watch是一次性事件,当watch监视的数据发生变化时就会被触发。   One-time trigger 当znode数据发生变化时,客户端会接收到一个watch事件。只有客户端读操作后,数据变化时服务端才会发送watch事件。后续服务端数据发生变化,客户端不会接收到watch事件,除非客户端第二次发起读操作。   Sent to client 这意味着事件可能不会到成功到达客户端,可能只在路上。watch是异步发送的,客户端在接 ...

Time in ZooKeeper

 
Zxid zookeeper状态的每次改变都会接收zxid形式的标记。这能够统计出zookeeper所有的变更。每一次变更都会有惟一的zxid。假如:zxid1小于zxid2,则zxid1比zxid2发生的时间要早。   Version numbers node的每一次变更都会导致node的版本号递 ...

ZNodes

         Znodes是一个数据结构,包含了数据变更和acl的版本号、时间戳。          版本号和时间戳可以被用来验证缓存和控制更新。               每次znodes的数据发生变更,版本号就递增。例如,当一个客户端获取数据时,同时会获取数据的版本号。若客户端发生更新或删除操作时,需要同时提供变更node数据的版本号。如果这个版本号与实际的版本号不相同,此次操作将失败。                   在分布式系统中,Node就是指通用主机、服务器、集群中的一个成员、一个客户端进程等。         在zookeeper世界中,znodes指dat ...

Data Model

除了下面的约束外,其他任何unicode字符都能作为node的名字: 1、空字符串(\u0000),因为c客户端不支持。 2、显示不友好或容易混淆:\u0001 - \u0019 and \u007F - \u009F 3、没有原因,就是不允许: \ud800 -uF8FFF, \uFFF0-uFFFF, \uXFFFE - \uXFFFF (where X is a digit 1 - E), \uF0000 - \uFFFFF. 4、"."可以作为名称的一部分,但是不能单独使用,因为zookeeper不使用相对路径。 5、当然"zookeeper&q ...
转自:http://www.java3z.com/cwbwebhome/article/article20/200030.html?id=4852   本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。  本例实现一个篮子程序,不过这个篮子中最多能放得苹果数不是1,可以随意指定。当 ...
hannel.queueDeclareNoWait(queue_name, false, true, true, null); 声明队列,但是无序broker返回任何消息。   同时exchange声明时,也可以使用no-wait: channel.queueDeclareNoWait(q, false, true, true, null);   绑定时也可以no-wait: channel.queueBindNoWait(q, "amq.fanout", "", null);

AtomicReference

转自:http://www.cnblogs.com/skywang12345/p/3514623.html   概要 本章对AtomicReference引用类型的原子类进行介绍。内容包括:AtomicReference介绍和函数列表AtomicReference源码分析(基于JDK1.7.0_40)AtomicReference示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3514623.html   AtomicReference介绍和函数列表 AtomicReference是作用是对"对象"进行原 ...
DeclareOk a = channel.queueDeclarePassive(q); 申明队列时,如果q在broker不存在,则会报错: reply-code=404,reply-text=NOT_FOUND   如果存在则会返回ok
如果设置了ifunused=true,此时再去删除exchange,则会报错: channel.queueBind(queueName, EXCHANGE_NAME, ROUTING_KEY); channel.exchangeDelete(EXCHANGE_NAME, true); fail("Exception expected if exchange in use");
QueueingConsumer consumer = new QueueingConsumer(channel); 声明一个消费者,然后接收消息。   如果我们直接用这种方式:consumer.nextDelivery() 那么当这个consumer没有消息时,线程会阻塞。因为consumer内部是blockqueue,没有数据却取数据时,就会阻塞,知道有数据放进此blockqueue中。   除非你知道这个consumer会接收到多少条消息,就调用多少次的consumer.nextDelivery(),不过这总是不可靠的。 那么你可以这样用: consumer.nextD ...
queue可以与exchange绑定   exchange之间也可以互相绑定,但是当queue与互相绑定的exchange都存在绑定关系时,不会重复接收消息。     /* pre (eN --> qN) for N in [0..2]     * add binding (e0 --> q1)     * test (e0 --> {q0, q1})     * add binding (e1 --> e0)     * resulting in: (e1 --> {q1, e0 --> {q0, q1}})     * test (e1 --&g ...
如果一个excahnge被定义成Internal,那么consumer是不能给它发消息的,会报错; //// Functional test demonstrating use of an internal exchange in an exchange to// exchange routing scenario.  The routing topology is:////            -------            -------//          -/       \-        -/       \-//         /           \      ...
Global site tag (gtag.js) - Google Analytics