当前位置: 首页 > article >正文

麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置

麦芯是构建在windows系统上的设备应用操作系统,利用该系统可以快速高效的开发一款设备专用软件。希望进一步了解请email: acloud@163.com

黄国强 2025/02/03

在麦芯(MachCore)应用开发过程中,多机协同工作的场景十分常见,一台设备连接多台电脑并设置主从机模式,能有效实现资源整合与高效协作。以下是详细的设置步骤及相关要点:

一、确保网段一致

  • 原理:同一网段是网络通信的基础,就如同住在同一个小区里,大家才能方便地相互串门。在网络中,处于同一网段的主从机,它们的网络地址的网络位相同,这样数据在传输时就能准确找到彼此,实现顺畅的数据传输和指令交互。
  • 操作:查看主从机的网络配置,确保子网掩码相同,且 IP 地址的前几位(网络位)一致。例如,常见的 192.168.1.x 网段,只要主机是 192.168.1.1 ,从机是 192.168.1.2 - 192.168.1.254 之间的任意合法地址,且子网掩码都为 255.255.255.0 ,就处于同一网段。
  • 常见问题及解决:若发现主从机不在同一网段,可能是网络管理员分配错误,或者设备的网络配置被误修改。这时需要重新检查网络配置,向管理员确认正确的网络参数后,手动修改 IP 地址和子网掩码。

二、设置从机固定 IP

  • 稳定性意义:网络连接就像寄信,固定 IP 就如同固定的收件地址。如果从机的 IP 地址随意变动,主机就像寄信时找不到收件地址一样,无法与从机建立稳定有效的连接。这会导致在麦芯应用运行时,从机无法及时接收主机的指令,或者主机无法获取从机的数据,严重影响整个系统的运行。
  • 操作步骤:以 Windows 系统为例,打开 “控制面板”,找到 “网络和 Internet”,进入 “网络连接”,右键点击正在使用的网络连接(如以太网或 Wi - Fi),选择 “属性”。在弹出的窗口中,找到 “Internet 协议版本 4(TCP/IPv4)”,点击 “属性”,选择 “使用下面的 IP 地址”,然后填写固定的 IP 地址、子网掩码、默认网关和 DNS 服务器地址。
  • 注意事项:设置固定 IP 时,要确保所选的 IP 地址在当前网段内未被其他设备占用,否则会产生 IP 冲突,导致网络连接异常。

如图是本机IP地址。

三、检查网络连通性

  • ping 命令使用:ping 命令是网络诊断的常用工具,通过向目标主机发送 ICMP(Internet 控制消息协议)回显请求数据包,来测试两台电脑之间的连通性。在 Windows 系统中,按下 Win + R 键,输入 “cmd” 打开命令提示符,在命令提示符中输入 “ping + 目标 IP 地址”,例如 “ping 192.168.1.10”(假设从机 IP 是 192.168.1.10 )。
  • 连通性影响:如果无法 ping 通,不仅文件和打印机共享功能无法正常使用,麦芯应用中主从机之间的数据共享和协同工作也会受到严重阻碍。比如从机采集的数据无法及时传输到主机进行分析处理,主机的控制指令也无法传达给从机。
  • 故障排查思路:若 ping 不通,首先检查网络线缆是否连接正常,路由器或交换机是否工作正常。然后查看防火墙设置,是否限制了 ICMP 协议的数据包通过。如果是无线连接,还要检查无线信号强度和密码是否正确。

四、统一 redis 版本

  • 版本一致的重要性:redis 是麦芯应用中常用的数据库,不同版本的 redis 可能在数据结构、命令语法、性能优化等方面存在差异。例如,新版本可能增加了某些新的命令,而旧版本不支持,这就会导致主从机之间的数据同步和交互出现故障,无法实现预期的功能。
  • 检查和安装:在主从机上分别打开命令行工具,输入 “redis - cli --version” 查看当前安装的 redis 版本。如果版本不一致,需要卸载低版本或不匹配的版本,然后从 redis 官方网站下载 5.0.14.1 版本的安装包进行安装。安装过程中,按照安装向导的提示进行操作,注意选择正确的安装路径和配置选项。
  • 兼容性问题预防:在安装新版本 redis 之前,备份好原有的数据,以防安装过程中出现问题导致数据丢失。同时,查阅 redis 官方文档,了解该版本的特性和已知问题,提前做好应对措施。

五、修改从机 redis 配置

  • 修改 bind 配置

目的:默认情况下,redis 的 bind 配置可能限制了连接的 IP 地址范围。将bind配置修改为bind 0.0.0.0,可以让从机的 redis 服务接受来自任何 IP 地址的连接请求,这样主机就能顺利连接到从机的 redis 服务。

操作:使用文本编辑器(如 Notepad++、Sublime Text 等)打开从机的 redis.windows.conf(或 redis.windows - service.conf)文件,找到bind配置项,将其值修改为bind 0.0.0.0 。修改完成后,保存文件。

  • protected - mode 配置调整

是否修改判断:protected - mode是 redis 的一种安全保护模式。当设置为yes时,redis 只允许本地连接,在一定程度上提高了安全性。但在主从机设置中,可能会影响主机与从机的 redis 连接。如果当前配置下主从机能够正常连通,说明不需要修改;若存在连接问题,可尝试修改为no。

风险提示:将protected - mode设置为no会使 redis 暴露在网络中,增加了被攻击的风险。所以在修改之前,要确保网络环境安全,或者采取其他安全措施,如设置 redis 密码等。

六、配置从机防火墙规则

  • 端口放行原因:redis 默认使用 6379 端口进行通信,防火墙就像网络的门卫,若未放行 6379 端口规则,主机发送到从机 6379 端口的请求就会被防火墙拦截,导致主机无法与从机的 redis 服务建立连接。
  • 操作示例(Windows 防火墙):打开 “控制面板”,找到 “系统和安全”,进入 “Windows 防火墙”,点击 “高级设置”。在左侧选择 “入站规则”,然后在右侧点击 “新建规则”。在弹出的向导中,选择 “端口”,点击 “下一步”,选择 “TCP”,特定本地端口输入 “6379”,再按照向导提示,选择 “允许连接”,并设置应用此规则的程序和作用域等选项,最后完成规则创建。
  • 注意事项:不同的防火墙软件设置方法可能不同,但基本原理都是放行 6379 端口。在设置防火墙规则时,要仔细确认规则的生效范围和条件,避免误操作导致其他网络服务受到影响。

七、配置主机信息

  • Station.json 文件作用:主机的 Station.json 文件用于存储设备的相关配置信息,包括各个检测站的设置。当检测站位于从机上时,就需要在该文件中写入从机(slave)信息,以便主机能够正确识别和连接从机上的检测站。
  • 具体配置示例
{
    "CN" : "检测站",
    "EN" : "Inspection",
    "fields" : [
        {
            "CN" : "-2 已处理 -1 处理错误 0 空 1 有 2 未知",
            "name" : "item",
            "value" : 0
        },
        {}
    ],
    "emulate_time_ms" : 0,
    "def_proc_id" : 2,
    "name" : "st_inspection",
    "slave" : {
        "ip" : "192.168.1.14",
        "port" : 6379,
        "station" : "st_inspection"
    }
}

其中,“slave” 字段下的 “ip” 填写从机的 IP 地址,“port” 填写从机 redis 服务的端口号(默认为 6379),“station” 填写检测站的名称。

  • 注意事项:在修改 Station.json 文件时,要注意语法格式的正确性,避免因格式错误导致配置文件无法正常读取。修改完成后,保存文件并重启相关服务,使配置生效。

八、配置从机信息

  • machine.json 文件作用:从机的 machine.json 文件用于存储从机自身的一些配置信息,添加 “slave” 字段并设置为 “true”,表示该设备作为从机运行,告知系统按照从机的模式进行工作。
  • 示例配置
{
    "Language" : "CN",
    "slave": true,
    "array" : []
}
  • 配置后操作:修改完成后,同样要保存 machine.json 文件,并根据实际情况,重启从机上的相关服务或应用,确保新的配置生效。

        通过以上步骤,能够完成一台设备中多台电脑主从机的设置,确保麦芯(MachCore)应用在多机环境下稳定运行。在实际操作过程中,若遇到任何问题,可根据具体错误提示进行排查和解决。同时,要注意备份重要数据,避免因操作失误导致数据丢失。如果对某些步骤不确定或遇到复杂问题,建议查阅麦芯官方文档或咨询专业技术人员。


http://www.kler.cn/a/531337.html

相关文章:

  • LeetCode 3105. Longest Strictly Increasing or Strictly Decreasing Subarray
  • Kamailio、MySQL、Redis、Gin后端、Vue.js前端等基于容器化部署
  • 享元模式——C++实现
  • 【数据结构】_链表经典算法OJ(力扣/牛客第二弹)
  • 快速提升网站收录:利用网站用户反馈机制
  • w186格障碍诊断系统spring boot设计与实现
  • PentesterLab 24周学习计划
  • 【游戏设计原理】97 - 空间感知
  • 【翻译】OpenAI Deep Research (2025年2月2日OpenAI发布)
  • Spring中@Conditional注解详解:条件装配的终极指南
  • 8、面向对象:类、封装、构造方法
  • pandas中的关系型连接操作
  • 1.5 Go切片使用
  • 浅谈量化感知训练(QAT)
  • 机器学习--学习计划
  • Intel 与 Yocto 项目的深度融合:全面解析与平台对比
  • 变形金刚多元宇宙
  • 【汽车电子软件架构】AutoSAR从放弃到入门专栏导读
  • 【探索篇】探索部署离线AI在Android的实际体验
  • ChatGPT提问技巧:行业热门应用提示词案例--办公应用
  • SpringAI 人工智能
  • Pandas基础08(分箱操作/时间序列/画图)
  • [SAP ABAP] 性能优化
  • 解决注入线程池的栈溢出问题
  • [LeetCode] 字符串完整版 — 双指针法 | KMP
  • 【Python】容器