使用Xshell连接Ubuntu

2023-11-14

1.6.1 使用Xshell连接Ubuntu

    使用命令ifconfig查看虚拟机IP地址,如图1-xx所示。

图1-xx

使用如下命令安装ssh,以让Xshell软件远程连接到Ubuntu系统中:

sudo apt-get install openssh-server

如果出现如下错误:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

    解决办法如下:

ghy@ghy-VirtualBox:~$ sudo apt-get install openssh-server

[sudo] ghy 的密码:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

ghy@ghy-VirtualBox:~$ sudo rm /var/lib/dpkg/lock-frontend

ghy@ghy-VirtualBox:~$ sudo apt-get install openssh-server

E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

ghy@ghy-VirtualBox:~$ sudo rm /var/lib/dpkg/lock

ghy@ghy-VirtualBox:~$

错误解决后再执行如下命令:

sudo apt-get install openssh-server

重新安装ssh。

安装成功效果如图1-xx所示。

图1-xx

在Xshell中配置主机IP地址,如图1-xx所示。

图1-xx

配置登陆账号及密码,如图1-xx所示。

图1-xx

连接成功效果如图1-xx所示。

图1-xx

使用ls命令查看文件夹,效果如图1-xx所示。

图1-xx

文件夹名称是中文的,在虚拟机中执行如下2条命令将文件夹名称改成英文版本:

export LANG=en_US

xdg-user-dirs-gtk-update

弹出界面如图1-xx所示。

图1-xx

点击“Update Names”按钮后再使用ls命令可以发现文件夹名称变成英文,效果如图1-xx所示。

图1-xx

至此使用Xshell工具成功连接到Ubuntu操作系统。


 1.6.11 使用Java代码生产与消费消息

使用RocketMQ有三种方式发送消息:

(1)可靠同步

(2)可靠异步

(3)单向传输。

本章节使用“(1)可靠同步”的方式发送消息,也是最传统的方式。


1.6.11.1 创建消息生产者

    (1)在IntelliJ IDEA中创建消息生产者项目Producer1。

    (2)添加Maven依赖配置:

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.3.0</version>
</dependency>

    (3)生产者代码如下:

package com.ghy.www;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

public class Producer {
    public static void main(String[] args) throws Exception {
        //指定ProducerGroupName实例化DefaultMQProducer对象。
        DefaultMQProducer producer = new
                DefaultMQProducer("my_group_name");
        //指定NameServer地址。
        producer.setNamesrvAddr("192.168.1.114:9876");
        //启动DefaultMQProducer实例.
        producer.start();
        //for循环开始发送100条消息。
        for (int i = 1; i <= 100; i++) {
            //创建1Message对象,指定主题topic,标记tag和消息主体message body
            Message msg = new Message("TopicTest",
                    "TagA",
                    ("你好 RocketMQ! 消息ID为:" +
                            i).getBytes(RemotingHelper.DEFAULT_CHARSET)
            );
            //使用producer向其中一个Broker发送消息。
            SendResult sendResult = producer.send(msg);
            //打印发送结果
            System.out.println((i) + " sendResult=" + sendResult);
        }
        //一旦DefaultMQProducer实例不再使用,请关闭。
        producer.shutdown();
    }
}

    (4)程序运行后控制台输出部分结果如下:

99 sendResult=SendResult [sendStatus=SEND_OK, msgId=C0A801683A7418B4AAC2559EF2AF0062, offsetMsgId=C0A8017200002A9F0000000000030A13, messageQueue=MessageQueue [topic=TopicTest, brokerName=ghy-VirtualBox, queueId=3], queueOffset=274]

100 sendResult=SendResult [sendStatus=SEND_OK, msgId=C0A801683A7418B4AAC2559EF2AF0063, offsetMsgId=C0A8017200002A9F0000000000030AD8, messageQueue=MessageQueue [topic=TopicTest, brokerName=ghy-VirtualBox, queueId=0], queueOffset=274]


1.6.11.2 创建消息消费者

    (1)在IntelliJ IDEA中创建消息消费者项目Consumer1。

    (2)添加Maven依赖配置:

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.3.0</version>
</dependency>

    (3)消费者代码如下:

package com.ghy.www;

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.MessageExt;

import java.util.List;

public class Consumer {
    public static void main(String[] args) throws InterruptedException, MQClientException {
        //指定ProducerGroupName实例化DefaultMQPushConsumer对象。
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("my_group_name");
        //指定NameServer地址。
        consumer.setNamesrvAddr("192.168.1.114:9876");
        //订阅主题。
        consumer.subscribe("TopicTest", "*");
        //注册回调,从Broker获取消息时执行。
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
                                                            ConsumeConcurrentlyContext context) {
                System.out.println("当前线程:" + Thread.currentThread().getName() + " 接收消息为:" + msgs);
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        //启动消费者
        consumer.start();
        System.out.printf("消息消费者启动了!");
    }
}

    (4)程序运行后控制台输出部分结果如下:

99 sendResult=SendResult [sendStatus=SEND_OK, msgId=C0A801683A7418B4AAC2559EF2AF0062, offsetMsgId=C0A8017200002A9F0000000000030A13, messageQueue=MessageQueue [topic=TopicTest, brokerName=ghy-VirtualBox, queueId=3], queueOffset=274]

100 sendResult=SendResult [sendStatus=SEND_OK, msgId=C0A801683A7418B4AAC2559EF2AF0063, offsetMsgId=C0A8017200002A9F0000000000030AD8, messageQueue=MessageQueue [topic=TopicTest, brokerName=ghy-VirtualBox, queueId=0], queueOffset=274]


1.6.12 配置并运行rocketmq-console

rocketmq-console是RocketMQ基于Web的监控平台,网址如下:

https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console

rocketmq-console是rocketmq-externals的子项目,下载rocketmq-console需要到如下网址:

https://github.com/apache/rocketmq-externals

下载zip源代码压缩包并解压,编辑文件:

rocketmq-console\src\main\resources\application.properties

指定NameServer服务器地址:

rocketmq.config.namesrvAddr=192.168.1.114:9876

进入rocketmq-console项目根文件夹执行如下命令:

mvn clean package -Dmaven.test.skip=true

使用Maven进行编译,生成jar文件,如图1-xx所示。

图1-xx

使用如下命令启动Web监控服务:

java -jar rocketmq-console-ng-1.0.1.jar

运行成功的效果如图1-xx所示。

 

图1-xx

执行网址:

http://localhost:8080/

显示界面如图1-xx所示。

图1-xx

成功显示Web监控界面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Xshell连接Ubuntu 的相关文章

  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • 什么是 TTY?如何在 Ubuntu 上启用它?

    我目前正在设置一个 Node js 服务器 并且在这里使用调试模块https github com visionmedia debug https github com visionmedia debug 我正在尝试启用它 以便我可以在输出
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he

随机推荐

  • 【笔试强训选择题】Day43.习题(错题)解析

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 笔试强训选择题 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 文章目录 前言 一 Day43习题 错题 解析 总结 前言 一 Day43习题 错题 解析 1 解析
  • Elasticsearch笔记4 基础入门

    执行分布式检索 一个查询操作 在ES分布式环境中分为两步 查询与合并 查询阶段 ES集群向所有分片传递查询语句 分片接收到请求后 执行搜索并建立一个长度为top n的优先队列 存储结果 top n 的大小取决于分页参数 top n from
  • 链表c语言stl,C++STL之List容器

    1 再谈链表 List链表的概念再度出现了 作为线性表的一员 C 的STL提供了快速进行构建的方法 为此 在前文的基础上通过STL进行直接使用 这对于程序设计中快速构建原型是相当有必要的 这里的STL链表是单链表的形式 2 头文件 头文件
  • Vue3+Vite项目配置Eslint+Prettier+Husky+Lint-Staged+Commitlint

    Eslint 配置 ESLint 是一个插件化并且可配置的 JavaScript 语法规则和代码风格的检查工具 ESLint 能够帮你轻松写出高质量的 JavaScript 代码 1 建议 vscode 安装 Eslint 的插件 这个插件
  • 用JAVASCRIPT从弹出的窗口中获取值

    设三个页面 Father aspx SubOpen aspx SubModalDialog aspx 在Father aspx中
  • Excel构建决策分析模型

    特点 探讨使用 Excel 构建决策模型的价值和重要性 以及对 Excel 复杂性的非常详细和深入的解释 使用 Excel 的图形功能来有效地呈现定量数据 比率和间隔 来通知和影响目标对象 利用 Excel 的内置数据可视化和操作功能准备数
  • kubernetes session保持等设置

    session保持 如何在service内部实现session保持呢 当然是在service的yaml里进行设置啦 在service的yaml的sepc里加入以下代码 sessionAffinity ClientIP sessionAffi
  • matplotlib怎么在一张图上画多条曲线?

    问题 多个plot画不到一张图上 解决方法 多个plot用一个plt show 即可 一次plt show 就会有一次输出 如何让函数画在同一张画布上 for i in range 1 15 3 train score test score
  • bh1750c语言程序,BH1750FVI数字光线强度传感器 51单片机源程序

    BH1750FVI IIC测试程序 使用单片机STC89C51 晶振 11 0592M 显示 LCD1602 编译环境 Keil uVision2 参考宏晶网站24c04通信程序 时间 2011年4月20日 include include
  • vue3表格导出excel

    下载依赖 npm install xlsx 引入依赖 import as XLSX from xlsx 使用
  • Python内置类型转换函数

    chr i chr 函数返回ASCII码对应的字符串 gt gt gt print chr 65 A gt gt gt print chr 66 B gt gt gt print chr 65 chr 66 AB complex real
  • stm32f103zet6移植标准库的sdio驱动

    sdio移植 st官网给的标准库有给一个用于st出的评估板的sdio外设实现 但一是文件结构有点复杂 二是相比于国内正点原子和野火的板子也有点不同 因此还是需要移植下才能使用 当然也可以直接使用正点原子或野火提供的实例 但为了熟悉下sdio
  • C#委托、C++委托实现、C回调函数

    C 委托 C 中的委托 Delegate 定义了方法的类型 使得可以将方法当作另一个方法的参数来进行传递 这种将方法动态地赋给参数的做法 可以避免在程序中大量使用if else switch 语句 同时使得程序具有更好的可扩展性 委托特别用
  • 从NSGA到 NSGA II

    NSGA 非支配排序遗传算法 NSGAII 带精英策略的非支配排序的遗传算法 都是基于遗传算法的多目标优化算法 都是基于pareto最优解讨论的多目标优化 遗传算法已经做过笔记 下面介绍pareto 帕累托 最优解的相关概念 本文是基于参考
  • Qt实现俄罗斯方块

    在经过基础内容的学习和简单的小示例练习后 这节我们用Qt做个俄罗斯方块小游戏 本文会描述实现俄罗斯方块的部分思路 代码开源 详细可见代码 链接获取方式 开源代码已上传gitee 关注 程序媛讲QT 公众号 回复 俄罗斯方块 获取链接 俄罗斯
  • 三分钟理解Java中字符串(String)的存储和赋值原理

    可能很多Java的初学者对String的存储和赋值有迷惑 以下是一个很简单的测试用例 你只需要花几分钟时间便可理解 1 在看例子之前 确保你理解以下几个术语 栈 由JVM分配区域 用于保存线程执行的动作和数据引用 栈是一个运行的单位 Jav
  • react中的export什么函数能导出_esModuleInterop 到底做了什么?

    问题引入 很多 react 使用者在从 JS 迁移到 TS 时 可能会遇到这样一个问题 JS 引入 react 是这样的 js import React from react 而 TS 却是这样的 ts import as React fr
  • 个人号微信二次开发,微信ipad协议

    E云是什么 E云API 是一套完整的的微信第三方服务平台 包含个微API服务与企微API服务模块 本文档主要讲述个微API服务相关 以下简称API 它能处理用户微信中的各种事件 并辅助微信执行各种操作 提供了开发者与个人号对接的能力 技术上
  • 黑盒测试用例设计方法--场景法

    8 场景法 8 1定义 场景法是通过运用场景来对系统的功能点或业务流程的描述 从而提高测试效果的一种方法 场景法一般包含基本流和备用流 从一个流程开始 通过描述经过的路径来确定的过程 经过遍历所有的基本流和备用流来完成整个场景 场景主要包括
  • 使用Xshell连接Ubuntu

    1 6 1 使用Xshell连接Ubuntu 使用命令ifconfig查看虚拟机IP地址 如图1 xx所示 图1 xx 使用如下命令安装ssh 以让Xshell软件远程连接到Ubuntu系统中 sudo apt get install op