包含标签:Java 的文章
  • RabbitMQ 中的交换机学习

    一、直接交换机(Direct Exchange) 1. 介绍 Direct 交换机将消息路由到绑定了指定 Routing Key 的队列中。每条消息都有一个 Routing Key,当队列绑定到 Direct 交换机时,它需要一个指定的 Routing Key。只有消息的 Routing Key 与队列绑定的 Routing Key 完全匹配时,消息才会路由到该队列中。 2. 代码示例 - 发送消息 public class DirectLogs { public static final String exchange_name = "direct_logs"; public static void main(String[] args) throws Exception { Channel channel = RabbitMqUtils.getChannel(); Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String message = sc.next(); channel.basicPublish(exchange_name, "error", null, message.getBytes("UTF-8")); System.out.println("生产者发送消息:" + message); } } } - 接收消息 public class ReceiveLogsTopic01 { public static final String EXCHANGE_NAME = "direct_logs"; public static final String QUEUE_NAME = "console"; public static void main(String[] args) throws Exception { Channel channel = RabbitMqUtils.getChannel(); channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT); channel.queueDeclare(QUEUE_NAME, false, false, false, null); channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "info"); channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "warning"); DeliverCallback deliverCallback = (consumerTag, message) -> { System.out.println("ReceiveLogsTopic01接收到的消息:" + new String(message.getBody(), "UTF-8")); }; channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {}); } } - 结果 消息通过 Direct 交换机路由到对应队列:……

    SE_Yang 2024-10-28
    8 0 0
  • Arm64处理器Linux系统上Java集成KVM无法启动

    问题描述 在arm64架构Linux操作系统的客户端上,点击Java集成远程控制台,下载kvm.jnlp文件后,点击无反应 处理过程 arm64版本的OpenJDK中,未集成启动jnlp文件用的javaws,导致jnlp文件无法启动。BMC规格中并未支持在arm64架构的客户端上运行Java集成远程控制台,但此问题可以通过替代工具解决。 解决方案 使用IcedTea Web替代javaws启动jnlp文件。以UOS为例: 1. 在有网络的前提下,打开命令行,并输入 apt-get install icedtea-netx 2. 可能提示需要安装依赖,此时按提示输入 apt-get install –fix-broken 下载依赖,包括JRE 11等,共计大概200MB 3. 下载kvm.jnlp,右击 –> 打开方式 -> IcedTea Web Start,或使用命令行cd到kvm.jnlp所在目录后运行 javaws kvm.jnlp 免责声明:本案例仅供参考不提供专业意见。

    SE_Meng 2023-02-03
    4 0 0