00:00
前面呢,我们整合了rem MQ,接下来我们就来测试它的第一个组件AMQP的in的使用,它呢是一个管理组件,它可以帮我们来创建队列,绑定关系等等,包括销毁这些队列,所有我们后台管理这一块能做的增删感查功能这一块呢也都有,所以我们接下来拿到这个,我们先来测试第一个创建一个交换机exchange,好,假设呢,我们现在创建一个交换机,我们这个交换机的名字,比如我们就叫hello exchange,我们是使用我们这个Java代码创建的,那我们就叫Java exchange,好,这是我们这个交换机的名字,那我们想要创建这个交换机,我们就把这个AMQP并拿过来,来看它有哪些方法,首先呢,我们就看到这一块有非常多的方法,叫declare declare就是声明,还有我们的删除等等,那么可以来声明一个绑定关系,声明一个交换机,声明一个队列,所以我们接下来就是用这个方法叫。
01:00
Clear,好,那现在来,现在想要声明一个交换机,然后这一块呢,它里边要传入一个接口,就是我们这交换机接口,所以我们现在要声明哪个交换机,我们只需要来传入我们这个接口,当然我们这个接口呢,来看一下那们交换机的种类有很多,那我们要声明哪个交换机们点进这个接口,我们可以看一下CTRH,它呢是一个接口,打开它的实现交换机里边呢,有非常多的交换机,诶我们发现我们之前的direct直接类型的交换机,Final删除类型的,还有主题订阅的head,包括自定义的这些文档我们都有,咱们先来创建一个最简单的直接交换机,我们就叫direct exchange。好,来到我们这一块,那我们想要创建什么交换机,我们接下来在这来new一个就行了,New一个我们现在叫direct exchange,好来创建出这么一个交换机,把这个交换机呢,我们直接放进去,好,这是我们创建了一个交换机,但是这个交换机呢,我们注意。
02:00
我们这个交换机它在创建的时候,我们要传入非常多的参数,那最简单的一个参数就传入交换机的名字,我们可以用它全残的这一块,我们来看,如果是全量的情况下,那交换机传的这些参数都是什么?好,那现在用它的这个全残构造器,它将要传入这些参数,第一个name name呢,那就是交换机的名字,比如我们就叫hello Java exchange,我们用这个短横线给它来做一个分割,好我把这一块呢复制过来,这是我们第一个交换机的名字,接下来呢,还有一个叫Du Du呢,就是我们之前在web界面来创建交换机的时候,我们可以来看一下,来点进交换机在里边,我们想要添加我们这个交换机的时候,在这我们可以来指定类型,我们类型呢,现在我们只要new的是direct exchange那类型就是direct,还有我们这个是否交换机是持久化的,就是呢,我们MQ关了再打开,我们还是有的,所以。
03:00
默认呢可以让它持久化好,我们来传一个true,第二个duable参数就是这个意思,然后呢,是否自动删除的,我们在这一块创建也可以来选择no,我们不自动删除,所以我们在这呢就可以来指定false不自动删除,然后呢,包括我们交换机创建的时候,那还可以指定一些参数,它这呢指定一个map X来看,那么这一块的交换机,那么在这创建的时候,还可以指定一些参数,参数的名,参数的值,包括这个值的类型我们都可以指定,那现在呢,我们这一块我们就没有任何参数,我们就创建好了,那默认就用这三个参数的这个构造器好是否持久化,是否自动删除,以及交换机的名字,我们把这个写好以后们在这来创建了交换机来测试,只要创建完,我们在日志这一块来打印一下at cell for街、cell fo街,我们在这儿log info来打印一下我们的这个交换机,创建完成好就在这。
04:00
一块,我们就叫exchange exchange。Exchange创建成功,那我们exchange的名字叫什么好,我们可以来把这个变量拿到,那exchange的名字就叫我们这个hello Java exchange,好,这是我们的名字,那我们这个交换机就创建成功了,那我们来测试一下,我们现在先来看我们的交换机里边没有我们那个hello Java的这个交换机,好,我们现在来测试一下,我们把这个单元测试一运行,我们看有没有这个交换机好,我们发现呢,这一块测试成功,那测试成功,我们的这一块也已经打印exchange hello Java exchange创建成功,来看一下我们的界面来刷新。我们发现这一块呢,就会有一个hello Java exchange,而且呢,它是我们指定的direct类型的,所以我们可以使用Java代码也能创建成功,那交换机创建成功了,那么接下来可以创建一个队列,跟它来进行一个绑定,好那么接下来再来写一个测试,我们就是来测试创建队列,Create QS,好,我们就叫create q,然后我们这一块呢,就是来创建队列,这个队列的创建我来at test。
05:14
好,我们先来标上我们的单元测试创建队列,同时一样的也用我们的这个amqp me,它呢有一个方法叫declare,我们的Q,我们来声明队列,那声明队列呢,在这一块我们需要入一个我们的这个队列,我们调这个方法的话,好,我们在这来传入一个这个队列,它呢也是一个类来CTRLH来看,我们想要创建这个队列呢,也无需找到它的什么子类,我们只需要拗一个这个类的对象就行了,它呢不是什么接口,我们对列队列呢是直接来创建的,也不用指定什么类型,咱们现在new一个QS,好,我们创建一个Q,注意我们这个Q呢,不是扎va u q的,是我们的AMQP核心包里边的这个Q,好,我们来点进来,包括我们来看这块类型是什么,刚才类型有很多,我们可以点进来看这一块,我们的这一块的Q是核心包里边的,所以我们创建就创建核心包里边的这个Q,好,我们这个Q呢创建好。
06:15
我们把它拿过来,我们想要创建队列,只需要来调用我们这个方法就创建出来了,来log个in,我们来log个info,我们也来打印一下,好,那就叫队列创建成功。Q,创建成功这个是什么队列呢?比如我们就叫hello Java q,好,我们准备创建这么一个队列,所以接下来我们这一块队列我们要写什么,就得看它的构造器,点进来发现呢,它有一个最简单的构造器词缀,那就传一个队列的名字,我们还是来找它的全残构造器,来最长的构造器,那在这儿,所以呢,队列里边要传这么多的参数,这么多的参数都代表什么意思,来看一下,好,如果我们想要创建队列,我们可能要使用这么多的参数,首先第一个string name,这就是我们队列的名字,那我们的名字就叫hello Java q。
07:08
然后呢,接下来队列里边还有一个布尔类型的durable,我们是否持久化的,包括我们在控制台在这来创建队列的时候,那们在这呢,可以指定队列是否持久化的,比如说一关机,一开机,我们还有所以我们这一块呢,也就是要持久化的处,还有呢,布尔aclusive,我们这个呢,是否排它的,我们来看一下这个排他是什么意思,点进来我们来看它的构造器,这一块呢,也说了排它,排它如果是true,就是说明我们这个队列是一个排它的队列,排它队列指的就是我们的这个Q队列只能被使用,被什么使用呢?相当于我们已经声明了的这个连接使用,相当于只要有一条连接,我们连上了,我们这个队列是我们生命的这条连接,别人呢,就连不上队列,而在我们实际开发中呢,我们这个队列我们都不应该是排单的,我们让所有人都能连到队列,但是谁能接到消息,可能只能只有一个人能接到消息,所以排他我们来写一个。
08:08
Bos,然后呢,布尔类型是否自动删除,那我们来写一个触,那就是自动删除,但是我们常规都是不自动删除的,包括我们在创建队列的时候,还可以指定一些参数,所以我们看这一块,我们也可以在这指定参数,比如快捷的添加,我们可以在这来指定一些参数给一些值,但我们现在呢,没有什么参数,所以我们就可以不用我们这个参数了,我用它的前四个这个参数,这就是我们这一块每一个参数代表的意思,那么在这来创建了这个队列,我们来测试一下我们这个队列能不能创建成功,走现在我们先来看我们的这个队列里边没有我们之前的hello Java的这个队列,那们在这儿呢,等待它来运行完成,好我们单元测试呢,运行成功,我们来看这一块,他说我们的这个q hello Java q已经创建成功,来看一下我们这一块有没有创建成功,来刷新这一块呢,也已经有了hello Java q,好,那这个队列呢,相当于也创建成功了,那创建成功以后,接下来我们要做的事情就是我们可以将。
09:08
那交换机,我们刚创建的这个交换机跟我们这个队列来进行一个绑定,所以我们想要创建绑定,该怎么创建,还是同样的方法好把这个同样的方法我们在这儿再来写一遍public word,好,我们来要创建一个绑定关系绑定,那想要将我们刚才创建的这个交换机跟我们这个队列来做一个绑定操作,我们接下来就可以使用amq p密,然后呢,它里边有一个方法叫D克列帮顶声明一个绑定来点进来。这一块呢,我们要传入一个帮顶这个类型的对象,所以我们接下来就来看这个类型的对象怎么办,那在这呢,想要传什么,我们就来拗一个,这个叫帮顶,来看一下这个帮顶al英特尔来导入这个类,那们这个帮顶呢,还是AMQP核心包的这个帮顶好,来把它创建过来,把这个帮顶呢,我们拿过来,我们还是打印我们这个绑定创建成功,好,我们就叫帮顶创建成功,那么这个创建成功的话,比如我们聚焦hello Java帮定,我们给这个绑定起一个名字,绑定呢,有没有名字这个都无所谓,我们现在呢来看我们这个绑定,它这一块想要创建到底有多少个参数,我们需要传,我们来点进来,发现这一块呢,只有一个构造器,这个构造器呢,会传入非常多的参数,把这个复制过来,来看一下这些参数都来代表什么意思,首先第一个叫destination,叫目的地,那这个目的地就代表好,我们现在来写一个目的地。
10:42
我们先来写一个目的地,然后呢,第二个叫destination type,叫目的地的类型,目的地类型,然后呢,接下来还有一个叫exchange,这个叫交换机,交换机还有我们的这个routine key,这叫路由件,好,我们这个路由件,还有我们的这个map a,这就是我们的参数,一些自定义参数,而我们之前如果在web界面来创建绑定的话,我们来点进来,我们看到我们想要给这个交换机绑定,我们在这儿创建绑定,要指定路由件,这是发布消息绑定,在这儿要指定我们这个路由件,要指定我们要跟谁进行绑定。所以我们这一块的理解应该是这样子的,我们这儿要传一个交换机,意思就是把我们传入的这个交换机跟哪个目的地进行绑定,而且这个目的地呢,也有两种不同的类型,发现绑定呢,我们可以将交换机跟队列绑定。
11:42
也可以将交换机跟交换机再来进行绑定,形成一个复杂的交换网络,所以我们现在要做的就是我们应该将我们指定的这个交换机跟我们这个目的地来进行绑定,而且我们这个目的地应该是一个队列,因为我们想要跟之前创建的队列来进行绑定,绑定用的路由件是什么?所以我们现在要传这四个参数,那我们整个参数的解释就是应该是这样的,将exchange指定的交换机,指定的指定的指定的咱们这个交换机和我们destination就是目的地,目的地进行绑定,然后呢,目的地的类型是什么,你指定好就行了,然后呢,使用我们这个roting key作为路由件,使用RO key作为我们这个指定的路由件。好,那么接下来就来写绑定,里边第一个参数是目的地,我们现在相当于要将交换机跟队列进行绑定目的地。
12:42
就是我们这个hello Java q,我们这个队列的名字,传入队列的名字,然后呢,接下来写一下我们这个绑定的类型,我们这个类型呢,我们来点进来,我发现这个类型呢,点进来,这是一个枚举,把这个类型传过来,所以我们接下来呢,是交换机跟我们队列进行绑定的,所以我们这个类型应该是dination,好,Din type,那么这个类型的我们是一个队列,所以我们接下来是要跟一个队列进行绑定,再来接下来我们是将哪个交换机和这个队列绑定,所以我们再来传入交换机的名字,交换机名字叫hello Java exchange,好,然后呢,继续我们绑定时用的路由件,比如我们就叫hello.java好,这是我们的路由件,我们路由件传完了以后呢,最后一个我们还可以传入我们的map类型的参数,如果我们没有参数,我们就来传一个,那然后呢,我们这就是我们的绑定关系,我们在这来声明了。
13:42
将hello Java exchange这个交换机与hello Java k这个队列使用hello Java这个路由件,我们先来看我们的web界面,我们这个hello Java交换机,我们现在呢没有任何绑定关系,No绑ings,那接下来如果把这个已运行绑定成功来看一下效果走好,我们这个测试呢,运行成功这一块呢,也提示我们的这个帮ing hello Java帮顶也已经创建成功了,我们这个绑定呢,没有什么名字,只是我们自己起到一个名字,我们来看一下我们页面的效果,诶发现我们进入到exchange这个里边,它已经自动显示了们跟hello Java queen这个队列来进行了绑定,它使用的是hello Java我们这个路由件,所以这次我们现在的exchange交换机队列以及我们的绑定关系的创建就可以使用amqp,我的密,包括它里边的其他功能,大家可以来测试使用,比如它里边的删除一些队列,交换机等等各种功能,来下边来进行测试就行。
我来说两句