精华内容
下载资源
问答
  • Java初识RabbitMQ一 首先看看AMQP协议,对RabbitMQ的架构会更了解。 深入理解AMQP协议 创建一个Maven项目,根据自己服务器RabbitMQ的版本导入相应的包。 <dependency> <groupId>.../...

    推荐:消息中间件汇总

    Java初识RabbitMQ一交换机(default exchange)

    首先看看AMQP协议,对RabbitMQ的架构会更了解。

    深入理解AMQP协议

    创建一个Maven项目,根据自己服务器RabbitMQ的版本导入相应的包。
    在这里插入图片描述

    		<dependency>
    			<groupId>com.rabbitmq</groupId>
    			<artifactId>amqp-client</artifactId>
    			<version>3.6.5</version>
    		</dependency>
    

    默认交换机

    默认交换机(default exchange)实际上是一个由消息代理预先声明好的没有名字(名字为空字符串)的直连交换机(direct exchange)。

    它有一个特殊的属性使得它对于简单应用特别有用处:那就是每个新建队列(queue)都会自动绑定到默认交换机上,绑定的路由键(routing key)名称与队列名称相同。

    举个栗子:当你声明了一个名为 “search-indexing-online” 的队列,AMQP 代理会自动将其绑定到默认交换机上,绑定(binding)的路由键名称也是为 “search-indexing-online”。因此,当携带着名为 “search-indexing-online” 的路由键的消息被发送到默认交换机的时候,此消息会被默认交换机路由至名为 “search-indexing-online” 的队列中。换句话说,默认交换机看起来貌似能够直接将消息投递给队列,尽管技术上并没有做相关的操作。

    生产端

    package com.kaven.rabbitmq.exchange.defaultExchange;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    
    import java.io.IOException;
    import java.util.concurrent.TimeoutException;
    
    public class DefaultProducer {
    
        // 自己服务器的IP
        private static String ip = "IP";
        // RabbitMQ启动的默认端口,也是应用程序进行连接RabbitMQ的端口
        private static int port = 5672;
        // RabbitMQ有一个 "/" 的虚拟主机
        private static String virtualHost = "/";
    
        // default exchange
        private static String exchange = "";
        // default exchange 的路由规则: routingKey(test) 将匹配同名的 queue(test)
        private static String routingKey = "test";
    
        public static void main(String[] args) throws IOException, TimeoutException {
            // 1 创建一个连接工厂
            ConnectionFactory connectionFactory = new ConnectionFactory();
            connectionFactory.setHost(ip);
            connectionFactory.setPort(port);
            connectionFactory.setVirtualHost(virtualHost);
    
            // 2 通过连接工厂创建连接
            Connection connection = connectionFactory.newConnection();
    
            // 3 通过连接创建一个Channel
            Channel channel = connection.createChannel();
    
            // 4 通过Channel 发送数据
            for (int i = 0; i < 5; i++) {
                String msg = "Hello RabbitMQ:" + i;
                // 1 default的exchange ,2 routingKey
                channel.basicPublish(exchange,routingKey, null , msg.getBytes());
            }
    
            // 5 关闭相关的连接
            channel.close();
            connection.close();
        }
    }
    

    消费端

    package com.kaven.rabbitmq.exchange.defaultExchange;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    import com.rabbitmq.client.QueueingConsumer;
    
    import java.io.IOException;
    import java.util.concurrent.TimeoutException;
    
    public class DefaultConsumer {
    
        // 自己服务器的IP
        private static String ip = "IP";
        // RabbitMQ启动的默认端口,也是应用程序进行连接RabbitMQ的端口
        private static int port = 5672;
        // RabbitMQ有一个 "/" 的虚拟主机
        private static String virtualHost = "/";
    
        // 定义的队列名
        private static String queueName = "test";
    
        // default exchange
        private static String exchange = "";
    
        public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {
            // 1 创建一个连接工厂
            ConnectionFactory connectionFactory = new ConnectionFactory();
            connectionFactory.setHost(ip);
            connectionFactory.setPort(port);
            connectionFactory.setVirtualHost(virtualHost);
    
            // 2 通过连接工厂创建连接
            Connection connection = connectionFactory.newConnection();
    
            // 3 通过连接创建一个Channel
            Channel channel = connection.createChannel();
    
            // 4 声明(创建)一个队列
            // 队列名、持久化、独占、自动删除、参数
            channel.queueDeclare(queueName , true,false , false , null);
    
            // 5 创建消费者
            QueueingConsumer queueingConsumer = new QueueingConsumer(channel);
    
            // 6 设置Channel
            // 队列名、自动回复ACK(收到消息后)、消费者
            channel.basicConsume(queueName , true , queueingConsumer);
    
            // 7 获取消息
            while(true){
                QueueingConsumer.Delivery delivery = queueingConsumer.nextDelivery();
                String msg = new String(delivery.getBody());
                System.out.println("消费端:" + msg);
            }
        }
    }
    

    测试一

    先启动消费端。
    看看RabbitMQ Management
    有了一个新的ConnectionChannelQueueConsumer

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    队列的Name显然和我们定义的一样。
    在这里插入图片描述
    我们再来启动生产端。
    消费端成功收到消息。

    消费端:Hello RabbitMQ:0
    消费端:Hello RabbitMQ:1
    消费端:Hello RabbitMQ:2
    消费端:Hello RabbitMQ:3
    消费端:Hello RabbitMQ:4
    

    RabbitMQ Management也会有反应,有显示相应的rate
    在这里插入图片描述

    测试二

    先启动生产端。
    RabbitMQ Management也会有反应,有相应的Ready=5等。
    在这里插入图片描述
    再启动消费端。
    也成功收到了消息。

    消费端:Hello RabbitMQ:0
    消费端:Hello RabbitMQ:1
    消费端:Hello RabbitMQ:2
    消费端:Hello RabbitMQ:3
    消费端:Hello RabbitMQ:4
    

    RabbitMQ Management也会有反应,有相应的Ready=0,因为消费端已经全部收到了。
    在这里插入图片描述
    无论先启动生产端还是消费端,消费端都可以收到消息,所以说消费端成功收到消息跟两个应用是否同时在线无关,跟两个应用启动的先后顺序无关,不需要两个应用一直连接,耦合度低。

    展开全文
  • cisco 交换机中ip default-gateway命令

    千次阅读 2015-07-23 13:19:32
    ip default-gateway是指以你的交换机为源到别的子网经过的网关,跟你能不能上网是一点关系也没有的;ip route 0.0.0.0 0.0.0.0 gateway_ip是指到数据到达交换机之后,怎么查找下一跳,两个不同的概念,但有着相似的...
    ip default-gateway是指以你的交换机为源到别的子网经过的网关,跟你能不能上网是一点关系也没有的;ip route 0.0.0.0 0.0.0.0 gateway_ip是指到数据到达交换机之后,怎么查找下一跳,两个不同的概念,但有着相似的意思,造成很多人问了同样的问题!一个是以交换机为源查找 下一跳;另一个以数据进入交换机后怎么查找下一跳!
    
    展开全文
  • Cisco的二层交换机上通常会有一个命令为ip default-gateway,直译就是默认网关的意思。 一直都知道在二层上面敲这个命令,但是对其概念和用途却不是很清楚。 网上有的朋友说这是和默认路由一个意思,今天经过一段...

    Cisco的二层交换机上通常会有一个命令为ip default-gateway,直译就是默认网关的意思。
    一直都知道在二层上面敲这个命令,但是对其概念和用途却不是很清楚。
    网上有的朋友说这是和默认路由一个意思,今天经过一段研究,终于弄懂了其中的意思。
    其实很简单,这个命令是用于远程管理的,也就是vty,通常是在配置了vlan1的接口地址以后,在配置该地址,以指向三层的地址。
    如下:
    conf t
    int vlan 1
    ip add 192.168.0.101 255.255.255.0
    no sh
    exit
    ip default-gateway 192.168.0.254
    以上,192.168.0.254是二层上面的三层的管理地址,通常是三层的vlan1 的地址。而192.168.0.101则是该二层交换机的管理地址。
    配置了管理地址和ip default-gateway就是将该二层交换机看做是一台主机,主机总是要设置默认网关的。
    如果仅设置了valn1 的管理地址,但是没有设置默认网关的地址,是无法用vty进行远程管理连接的。
    同时需要注意的是,二层交换机的vlan1的地址必须与其配置的ip default-gateway的地址在同一个网段。这个很容易理解。

    总结:1、二层交换机上的ip default-gateway的地址总是与管理vlan的地址配合出现,以用于vty远程管理,仅此一个目的而已。如果不需要远程管理,可以不配置,不会影响其他的数据通讯(与什么vlan间通讯====的都没关系)
    2、如果配置了管理vlan的地址,就一定要配置ip default-gateway的地址。否则无法远程管理。管理vlan的地址必须与ip defaulut-gaeway地址在同一网段。

    转载于:https://blog.51cto.com/weber213/525300

    展开全文
  • 在华为交换机上使用混杂端口时报这个错,原因是你之前已经将此端口加入了某个vlan 所以你需要undo之前配置的命令 解决方法 sys int G 0/0/1 #替换为报错的端口 undo port default vlan undo port link-type 然后...

    场景

    在华为交换机上使用混杂端口时报这个错,原因是你之前已经将此端口加入了某个vlan
    所以你需要undo之前配置的命令

    解决方法

    sys
    int G 0/0/1		#替换为报错的端口
    undo port default vlan
    undo port link-type
    

    然后你就可以愉快地进行端口配置啦

    展开全文
  • [S9306-GigabitEthernet2/0/42]dis this # interface GigabitEthernet2/0/42 原先的为trunk, port link-type trunk ...port default vlan 10 转载于:https://blog.51cto.com/1772951/1844471
  • 关于ip default-gateway理论都懂,没什么讲的,就是不会用或者不知道什么时候用,视频通过3个案例的讲解,带大家领会二层交换机默认网关的作用。
  • [Huawei-GigabitEthernet0/0/1]port link-type hybrid ...华为交换机 变更端口link-type时报错Error: Please renew the default configurations. 需要先删除端口其他配置后再重新变更端口类型。 比如: ...
  • 交换机原理

    2021-05-10 12:58:34
    交换机原理
  • 2960交换机配置

    2018-09-26 16:34:57
    交换机配置文档。
  • 华为交换机配置

    万次阅读 多人点赞 2018-06-23 16:36:23
    在部署云环境中,需要配置交换机,现在总结自己学习到交换机的知识。1 华为交换机型号左侧:右侧:2 配置3 命令操作4 常见功能参考: http://network.51cto.com/art/201001/177448.htm史上最全华为路由器交换机...
  • 像crt或者ssh、甚至是cmd命令中使用window的telnet命令连接交换机。都可以起到控制交换机的作用。 telnet说白了就是一个tcp的长连接。你向交换机输入一组命令,其实就是你使用socket连接上交换机,把你的命令out...
  • 交换机相关

    2017-02-26 20:51:53
    交换机指令show 命令show version: //显示交换机版本信息 show flash: //显示保存在flash中的文件及大小 show history: //显示用户最近的命令历史 show arp: //显示arp映射表 show running-config: //显示当前运行...
  • Rabbitmq交换机详解

    2020-07-26 11:42:37
    rabbitmq交换机 1.作用: 接受生产者的消息,然后根据路由键routingKey把消息投递到跟交换机绑定的对应的队列上 2.属性 Name: 交换机的名称 Type: 交换机的类型,direct,topic,fanout,headers Durability :是否...
  • 交换机telnet配置

    2021-05-28 10:51:01
    交换机telnet配置 网络拓扑 配置命令 查看交换机mac地址表 # 查看 交换机mac 地址表 [sw1]display mac-address 配置交换机的远程管理IP地址 <Huawei>system-view [Huawei]sysname sw1 #配置交换机的远程...
  • 通过华为交换机配置vpn实例,把华为交换机一分为二,通过ip配置路由走三层 配置如下 新建vpn实例 ip vpn-instance test ipv4-family route-distinguisher 100:1 配置vlan ip interface Vlanif151 ip address 161.1...
  • 交换机端口聚合

    2021-06-29 23:20:25
    交换机端口聚合,可实现交换机之间的链路具有较高的带宽和可靠性,并在交换机之间实现数据流量的负载分担。 相关命令: 创建Eth-Trunk system-view [Quidway] sysname S-switch-A [S-switch-A] interface eth-...
  • 关于ip default-gateway理论都懂,没什么讲的,就是不会用或者不知道什么时候用,视频通过3个案例的讲解,带大家领会二层交换机默认网关的作用。
  • 华为交换机常用命令

    万次阅读 多人点赞 2015-09-19 15:26:56
    总结了一下常用的华为交换机常用命令如下:1.查看Linux下查看端口状态root@root:~# netstat -an|grep -E "6002|6003"2.华为交换机显示当前配置display current-configuration 或者简写 display cur 3.显示端口信息 ...
  • 交换机级联

    千次阅读 2018-11-03 00:56:49
    级联是交换机组网的一种结构,级联技术可以实现两台或两台以上交换机之间的互联,在多种网络中被广泛应用 二、简单实验 实验拓扑: 1-1,1-2,1-3三台交换机级联至1-3;2-1,2-2两台级联至2-2;1-3和2-2上联至HX,...
  • 交换机练习

    千次阅读 2017-04-26 20:41:38
    1、 交换机模式介绍 用户模式:主要用于查看系统信息和一些基本的测试功能,如ping trraceroute等 switch> 特权模式:执行enable进入特权模式,该模式下啊用户可以执行IOS提供的所有命令,键入?可以获得提示。Exit...
  • rabbitMQ的交换机类型

    2017-05-11 17:02:04
    1、默认交换机default exchange)实际上是一个由消息代理预先声明好的没有名字(名字为空字符串)的直连交换机(direct exchange)。它有一个特殊的属性使得它对于简单应用特别有用处:那就是每个新建队列(queue...
  • 这个是锐捷交换机上MSTP生成树防环的命令,只要参加了生成树选举的交换机都需要配置。 Cisco 交换机STP增强特性与环路保护机制 一.STP增强特性: 传统的802.1d标准的STP,有一些缺陷,比如当一个交换机检测到...
  • 关于RabbitMQ 的默认交换机 的问题

    千次阅读 2019-10-16 14:58:31
    关于RabbitMQ 的默认交换机 的问题 有4个默认的交换机 Name Default pre-declared names Direct exchange (Empty string) and amq.direct Fanout exchange ...
  • 1.修改交换机名称为S1,路由器名称为R1 2.在AR1上配置子接口G0/0/0.1G0/0/0.2G0/0/0.3 3.分别在子接口上做适当配置,使得3个VLAN之间能够通信 (二)在右侧拓扑完成: 1.修改交换机名称为S2S3 2.在S2S3上做适当配置,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,467
精华内容 12,586
关键字:

交换机default