Java使用RabbitMQ(一)--基本用法

关于java使用rabbitMq的基本用法

创建连接


    public static ConnectionFactory factory;
    public static Connection getConnection(String username,String password,String host,int port,String virtualhost) {
        if (factory==null){
            factory=getFactory(username,password,host,port,virtualhost);
        }
        try {
            return factory.newConnection();
        } catch (Exception e) {
            throw new RuntimeException("创建rabbit client 连接失败"+e);
        }
    }

    private synchronized static ConnectionFactory getFactory(String username, String password, String host, int port, String virtualhost) {
        if (factory!=null)
            return factory;
        ConnectionFactory factory=new ConnectionFactory();
        factory.setUsername(username);
        factory.setPassword(password);
        factory.setVirtualHost(virtualhost);
        factory.setHost(host);
        factory.setPort(port);

        return factory;
    }

因为 这个connection是 长连接,所以不建议每个操作都创建一个connection,因为那样会产生很多额外的网络开销。

创建channel:

  Channel channel=connection.createChannel()

通道也是长连接的,但是程序抛出异常时,可能导致通道被关闭,所以它的生命周期要比 connection短点,对每个操作打开和关闭一个通道是可以的(但通常不是必要的)。

尝试消费一个不存在的队列消息,会抛出异常导致channel关闭,channel一旦关闭就不能再使用了,需要创建新的channel。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljz2016/article/details/79957833
文章标签: 消息队列
个人分类: MQ
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭