RabbitMQ消息队列(一)

1.背景 RabbitMQ是由erlang语言开发的AMQP(Advanced Message Queuing Protocol)开源实现。 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件和短信,以上三个任务全部完成后才返回给客户端。但是邮件和短信并不是必须的,它
阅读本文

使用RabbitMQ打造消息队列(一)

介绍 RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, RabbitMQ 就是一个邮筒, 同时也是邮局和邮递员 . 和邮局的主要不同点在于RabbitMQ不处理纸质信件, 而是 接收(accepts), 存储(stores) 和转发(forward
阅读本文

存储过程+调用存储过程+无/带参的存储过程+in参数+out参数+int out参数+为参数设置默认值

存储过程 1存储过程是一组为了完成特定功能的SQL语句集 2存储过程编译后存储在数据库中 3执行存储过程比执行存储过程封装的SQl语句集更有效率 4不能指定declare关键字 5: OUT 和 IN OUT 的形参不能有默认表达式,只有in参数可以设置默认值 语法 create 【or replace】procedure procedure_name 【(parameter 【in
阅读本文

最长递减子序列 最简单描述

package someLearn; //写快排的时候犯了个愚蠢的错误 就是 让交换值通过一个函数 来交换,只是Exchange(int i,int j);这种错误还是不犯为好。其实可以写为exchange(int[]A,int i,int j); //问题描述:如何求出一个数列的最长递减子数列的长度 比如输入含有 5 4 3 7 的数组 输出3 这里用动态规划 // F(a[i]) = ma
阅读本文

浅析AQS中的state属性

分析一下AbstractQueuedSynchronizer的state属性:/** * The synchronization state. */ private volatile int state;ReentrantLock对象加锁时的部分调用栈:ReentrantLock/lock()  -> NonfairSync/lock()    -> AbstractQueuedSynchro
阅读本文

Flink JOIN 执行计划

Flink JOIN 执行计划 代码: val table1 = env.fromElements((1, “hello“)).toTable(tEnv, ‘a, ‘b) val table2 = env.fromElements((1, “hello“)).toTable(tEnv, ‘c, ‘d) val table = table1.join(table2).wher
阅读本文

rabbitMq-TTL、DLX实现延时队列

在第一篇rabbitMq的交换机博客里穿插了许多api介绍,在声明队列时可以指定x-message-ttl消息过期时间、x-dead-letter-exchange死信交换机和x-dead-letter-routing-key死信路由键,在发送消息时也可以指定消息的过期时间。rabbitMq没有提供延时队列功能,但是我们可以利用TTL(过期时间)和(DLX)死信交换机来实现延时队列功能。 消息和队
阅读本文

理解消息通道

生产者(producer)创建消息,然后发布到代理服务器(RabbitMQ)。消息包含两部分内容:有效载荷(payload)和标签(label)。有效载荷就是你想要传输的数据,它可以是任何内容,标签描述了有效载荷,并且RabbitMQ用它来决定谁将获得消息的拷贝。  在应用程序和Rabbit代理服务器之间创建一条TCP连接,一旦TCP连接打开,应用程序就可以创建一条AMQP信道。信道是建立在“
阅读本文

spring整合rabbitMQ过程

最近使用了spring整合rabbitMQ技术,对两者都有了更深的理解,之前一直没怎么用过,这次使用中间出了好多的小的细节问题,现在整理出实现过程。安装rabbitMQ的步骤以及如何使用百度就会百度到,就不详细说明了1、首先配置web.xml文件  contextConfigLocation classpath*:applicationContext.xml org.springframe
阅读本文

一天时间用OpenFire打造自己的IM聊天工具

Openfire采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。好友界面功能界面聊天界面服务端可以用本服务器测试,地址:www.ithtw.com。如果想自己搭可在本博客其它XMPP文章找到相关搭建资料。实现了用户注册,登录,添加好友,聊天核心功能。可正常聊天!核心通讯代码:
阅读本文

Java并发工具类(四):线程间交换数据的Exchanger

简介Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执行exchange,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。Exchange
阅读本文

经典排序算法--冒泡排序

冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大 的数往下沉 ,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。关于程序中4中冒泡排序写法的说明:bubble_sort1:基本的冒泡排序的写法。bubble_sort2:基本冒泡排序的不同写法,基本的冒泡排序是每次遍历,每次缩小范围1,这种
阅读本文

redis 持久化共享 Session

添加引用 webconfig 配置<configuration> <system.web> <sessionState mode=“Custom“ customProvider=“RedisSessionProvider“> <providers> <add name=“RedisSessionProvider“ type=“RedisSessionProvider.RedisSessio
阅读本文

Exchanger

http://cmsblogs.com/?p=2269Java 并发 API 提供了一种允许2个并发任务间相互交换数据的同步应用。更具体的说,Exchanger 类允许在2个线程间定义同步点,当2个线程到达这个点,他们相互交换数据类型,使用第一个线程的数据类型变成第二个的,然后第二个线程的数据类型变成第一个的。package com; import java.util.ArrayList; imp
阅读本文

Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件(原创)

对于redis-sentinel我在之前的文章中已经说过,它是一个仲裁者,当主master挂了后,它将在所有slave服务器中进行选举,选举的原则当然可以看它的官方文章,这与我们使用者没有什么关系,而对于sentinel来说,它在进行主从切换时,会触发相关事件,这是和我们开发人员有关系的,如当+switch-master事件被触发时,说明当前Sentinal已经完成了一次主从的切换,并所有服务已经
阅读本文

001-概述

一、程序语言基础第一代语言、机器语言  示例:0000 0001 1101 10000第二代语言、汇编语言  示例:ADD AX,BX第三代语言【高级语言】、结构化语言,Fortran、Basic、C、Pascal  面向对象(OO):Algo、Simula67、Ada、SmallTalk、C++、java、C#  示例:a+b第四代语言、命令式语言,SQL二、语言时序图三、发展历史五、解释执行环
阅读本文

简单算法

二分查找 1 # Author:AlwaysLive 2 #!/usr/bin/env python 3 #_*_ coding:utf-8 _*_ 4 5 6 print(“算法总结“) 7 “““ 8 递归 9 1.调用自身 10 2.结束条件 11 “““ 12 def func1(x): 13 if x > 0: 14 print
阅读本文

JDK各个版本的新特性

JDK各个版本的新特性   对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自
阅读本文

各种数字证书区别

cer后缀的证书文件有两种编码-->DER二进制编码或者BASE64编码(也就是.pem)p7b一般是证书链,里面包括1到多个证书pfx是指以pkcs#12格式存储的证书和相应私钥。在Security编程中,有几种典型的密码交换信息文件格式:DER-encoded certificate: .cer, .crtPEM-encoded message: .pemPKCS#12 Personal In
阅读本文

web端 复合控件 响应回发

AutoPostback=“true“;   自动提交 RdiobuttonList                               selected 是否选中                               Text  显示的文本                               value 隐藏的值                             }排
阅读本文