docker版jxTMS使用指南:使用命令行参数定制启动

本文讲解4.6版jxTMS中的命令行开关,整个系列的文章请查看:4.6版升级内容

docker版本的使用,请查看:docker版jxTMS使用指南

4.0版jxTMS的说明,请查看:4.0版升级内容

4.2版jxTMS的说明,请查看:4.2版升级内容

4.4版jxTMS的说明,请查看:4.4版升级内容

分布式构型有一个最简单的也是最基本的需求:当需要时可以临时启动一个进程来增加算力。自然的,这些临时启动的进程可能就需要不同的功能配置。

此前的jxTMS都是通过main.py结合配置文件进行定制化的启动与功能配置,面对这种临时启动的、可按需要灵活配置的需求就无法满足了。

所以,4.6版jxTMS中就改用了命令行开关与参数的方式来启动与配置。其开关包括:

optional arguments:-h, --help            show this help message and exit-n NAME, --name NAME  本程序的主机名-id HOSTID, --hostID HOSTID本程序的主机ID--dingding            启用钉钉--auth                初始化安全认证--site                加载站点信息--obtainDeviceData    开启根据配置递交设备数据--web                 启动web--restPort RESTPORT   rest服务端口--dataBus             启用系统数据总线--webSocket           启用webSocket--app                 加载app模块--module              加载module模块--dbName DBNAME       本程序的数据库名,不设则不访问数据库--dbHost DBHOST       本程序的数据库IP--dbPort DBPORT       本程序的数据库端口--dbUser DBUSER       本程序的数据库用户--dbPwd DBPWD         本程序的数据库密码--mqttServerIP MQTTSERVERIPmqtt服务器IP,不设则不启用mqtt--mqttServerUesr MQTTSERVERUESRmqtt服务器用户--mqttServerPasswd MQTTSERVERPASSWDmqtt服务器密码--mqttTopicWildcard MQTTTOPICWILDCARDmqtt订阅主题的通配符--serviceName SERVICENAME服务名,不设则不启动服务--serviceAlone        启动的服务不注册到目录服务中,不设置则注册

这些开关的意义在其说明中已经很清楚了,我们只简略的做个说明。其主要包括两类:

1、参数

用于设置某个参数,具有相应的默认值,如果不设则自动设为相应的默认值:

  • n,默认是:demo。指定主机名,每个jxTMS进程都必须设置自己的主机名,否则无法通过MQ收发数据。针对分布式构型,此参数更为重要,两个同名的进程同时启动的话,会导致消息收发紊乱

  • id,默认是:1001。数据库中各表的主键都是根据id、时间戳、序列号计算出来的,所以需要使用数据库的系统,也就是设置了dbName参数的系统,当需要向数据库中插入新数据时,需要设置与众不同的id,以避免潜在的数据表主键冲突

  • restPort,默认是:10028。对外提供rest服务的TCP端口号,只有同时打开web开关才会生效。此外,如果是如【/module/web.py】中所演示的利用jxTMS提供的基础设施来提供rest服务,则还需要打开auth开关,否则用户无法登入。应当注意的是:docker版jxTMS在用docker创建容器时,需要开放restPort参数所指定的端口

  • dbName,默认是:None。需要使用数据库的系统,必须设置dbName参数

  • dbHost,默认是:127.0.0.1。即默认是连接到docker版jxTMS自带的mysql服务

  • dbPort,默认是:3306

  • dbUser,默认是:root

  • dbPwd,默认是:123456

  • mqttServerIP,默认是:None。即不连接mqtt服务,指定127.0.0.1则连接到docker版jxTMS自带的mqtt服务

  • mqttServerUesr,默认是:None

  • mqttServerPasswd,默认是:None

  • mqttTopicWildcard,默认是:*

  • serviceName,默认是:None,如果设置了serviceName,就会启动一个服务,服务名是pyService.{serviceName},服务的全名是:pyService.{主机名,即n参数}.{serviceName}

注1:如果在设置了serviceName的同时又开启了serviceAlone,则serviceName服务不会注册到jxTMS主系统的catalogService中

注2:如果多个服务设置了相同的serviceName【未开启serviceAlone】,那么只有一个会注册到catalogService中,其它的同名服务都会被要求等待。如果这些服务都是无状态的,那这就相当于实现了在线热备,当已经注册的服务宕机后,在三个保活时间过去后,catalogService会将其删除,然后其它服务就可以顺利注册,接管服务了

其它参数都是见名知意,就不复赘述了。这里需要强调一下参数:mqttTopicWildcard。其定义了mqtt主题的通配符,即需要订阅的都是什么样的主题。默认是【*】,也就是全部订阅。如果设置了相应的通配符,则只有配置了该通配符的主题才会被订阅。

注:这里的通配符不是mqtt通配符,而是数据总线中的通配符,如【*】代表所有主题,【?xm】代表所有以xm两字母开头的主题,【*xm*】代表所有包含了xm两字母的主题等等

由于jxTMS的数据采集系统是以站点名为主题的,所以,如果设置了mqttTopicWildcard参数,则意味着所需加载的站点也会自动执行同样的匹配性过滤

如果说,数据总线是用来纵向拆分数据采集、处理、应用的过程,可以将这些不同环境分散到不同的进程、服务器上来实现负载的合理分配。那么,mqtt通配符就是用来横向切分数据源,使其可以切分为一个个小的系统,从而将整个系统的负载在不同的小系统之间进行了切分。

概要之,mqtt通配符和数据总线,为4.6版jxTMS实现分布式处理,灵活而恰当的规划与调整系统负载,提供了有力的手段。

2、开关

用于启动某项功能。上述开关中没有参数的都是开关,不给出该开关,则意味着不启用;给出则意味着启用。其中需要重点说明的有:

  • dataBus,开启系统的数据总线,即默认的名为【dataBus】的数据总线,安全、钉钉、站点、mqtt订阅的主题等都需要开启系统数据总线,以向jxTMS主系统查询相关的配置

  • auth,开启用户授权与认证,如上所述,需要同时开启dataBus开关。开启后,将完成资源信息的加载、用户信息的加载、权限的加载

  • web,开启web服务,端口由restPort指定

  • webSocket,在开启web服务中支持webSocket功能

  • app和module,分别加载app和module目录下的所有.py文件【应在各自的__init__.py文件中import该模块】

  • site,加载站点信息,如上所述,需要同时开启dataBus开关。按数据采集器目前的处理框架,一般需配置mqtt相应的参数

  • obtainDeviceData,开启根据配置递交设备数据。随着站点越来越多、各种类型的设备越来越多、用户也越来越多,不同用户之间希望获取的数据、使用方式等都有所不同。如果都以编程来处理,会造成代码的臃肿、难以维护。所以4.6版的jxTMS提供了obtainDeviceData功能,即通过配置的方式向一个个的用户针对性的提供所需设备的数据。同样,也需要同时开启dataBus开关

其它功能都已经反复讲述过了,但webSocket和obtainDeviceData开关所涉及的功能都是新增功能,且较为复杂,所以后文将分别专文讲述。

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/106010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云韩国服务器测试IP地址及公网带宽收费价格表

阿里云服务器韩国(首尔)地域公网带宽价格表,1M带宽价格是23.0元/月,按使用流量1GB价格是0.8元,阿里云韩国服务器测试IP地址:149.129.12.20,阿里云百科aliyunbaike.com来详细说下阿里云韩国服务器…

火伞云Web应用防火墙的特点与优势

在前文中,我们已经介绍了Web应用防火墙(WAF)的基本原理和重要性。接下来,我们将深入探讨火伞云Web应用防火墙的特点与优势,了解它如何为企业提供更为完善和专业的网络安全保障。 一、强大的防御能力 火伞云Web应用防火…

基于MindSpore的llama微调在OpenI平台上运行

基于MindSpore的llama微调在OpenI平台上运行 克隆预训练模型 克隆chatglm-6b代码仓,下载分布式的模型文件 git lfs install git clone https://huggingface.co/openlm-research/open_llama_7b准备环境 安装Transformer pip install transformers执行转换脚本 …

参加CSP-J第一轮后的感受

本人现在初二。作为一名学了4年多c的人,我一直都挺想考过CSP。于是,去年我就去考了。 当时初一,感觉自己实力不够,就只报了J组的。果不其然,63分,没过。 经过1年的苦练,今年又去考了。 J组78分&…

SVN报错fail to run the WC Db work queue associated with,清理失败,乱码的解决方式

替换掉 wc.db 文件即可 SVN报错fail to run the WC Db work queue associated with,清理失败,乱码的解决方式_svn failed to run the wc db-CSDN博客

Python滑动窗口算法:滑动窗口算法(4 by 4 sliding window price)

我知道滑动窗口算法的时间复杂度是 o(N),但是可变大小的滑动窗口算法的时间复杂度是多少。 对于 e- 数组 [1,2,3,4,5,6] 当滑动窗口的大小为 1 时窗口-[1],[2],[3],[4],[5],[6] 当滑动窗口的大小为 2 时窗口-[1,2],[2,3],[3,4],[4,5],…

DamiBus v0.51 发布

DamiBus,专为本地多模块之间通讯解耦而设计(尤其是未知模块、隔离模块、领域模块)。零依赖,特适合 DDD。 特点 结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作响应订阅。 支持事务传…

CSS 复杂卡片/导航栏特效运用目录

主要是记录复杂卡片/导航栏相关的特效实践案例和实现思路。 章节名称完成度难度文章地址完整代码下载地址多曲面卡片实现完成复杂文章链接代码下载倒置边框半径卡片完成一般文章链接代码下载

再谈Java泛型

一.类型参数的约束 我们可以对泛型传进来的参数做一些约束,比如说 用extends表明传进来的参数类型必须是必须是某个类型的子类型或者本身 当然也可以用接口约束,也是用extends表明传进来的参数类型必须实现某个接口。用&连接,注意class…

Leetcode 2905. Find Indices With Index and Value Difference II

Leetcode 2905. Find Indices With Index and Value Difference II 1. 解题思路2. 代码实现 题目链接:2905. Find Indices With Index and Value Difference II 1. 解题思路 这一题我一开始思路有点想复杂了,因为这道题显然是要在index相距特定距离以…

python+深度学习+opencv实现植物识别算法系统 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的植物识别算法研究与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:4分 🧿 更多…

论文阅读/写作扫盲

第一节:期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区(Journal Citation Reports):JCR分区是由Clarivate Ana…

虹科方案 | AR助力仓储物流突破困境:规模化运营与成本节约

文章来源:虹科数字化AR 点击阅读原文:https://mp.weixin.qq.com/s/xis_I5orLb6RjgSokEhEOA 虹科方案一览 HongKe DigitalizationAR 当今的客户体验要求企业在人员、流程和产品之间实现全面的连接。为了提升整个组织的效率并提高盈利能力,物流…

一文解读如何应用 REST 对资源进行访问?

文章目录 一、REST 简介二、涉及注解2.1 RequestMapping2.2 PathVariable2.3 RestController2.4 GetMapping、PostMapping、PutMapping、DeleteMapping补充:PathVariable、RequestBody、RequestParam 区别与应用 三、REST风格案例 一、REST 简介 REST (Representat…

【2023】redis-stream配合spring的data-redis详细使用(包括广播和组接收)

目录 一、简介1、介绍2、对比 二、整合spring的data-redis实现1、使用依赖2、配置类2.1、配置RedisTemplate bean2.2、异常类 3、实体类3.1、User3.2、Book 4、发送消息4.1、RedisStreamUtil工具类4.2、通过延时队列线程池模拟发送消息4.3、通过http主动发送消息 5、&#x1f3…

docker network 组件内网

一、docker network指令详情 以下是一些常用的 Docker 网络管理指令: 列出可用的网络: $ docker network ls 该命令将显示所有可用的 Docker 网络,包括网络 ID、名称、驱动程序和范围等信息。 创建一个网络: $ docker network …

UWB承启定位基站

UWB承启定位基站 随着我们使用UWB做超高精度的定位项目越来越多,我们发现之前的定位基站完全站在二维或三维的角度去设计还是存在对应的缺陷,这个时候需要在很短的距离内安装多一个基站,对于用户来说,会觉得设备变多了&#xff0…

多目标鳟海鞘算法(Multi-objective Salp Swarm Algorithm,MSSA)求解微电网优化MATLAB

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标鳟海鞘算法MSSA 多…

多线程并发篇---第十一篇

系列文章目录 文章目录 系列文章目录前言一、CAS的原理二、CAS有什么缺点吗?三、引用类型有哪些?有什么区别?前言 一、CAS的原理 CAS叫做CompareAndSwap,比较并交换,主要是通过处理器的指令来保证操作的原子性,它包含 三个操作数: 变量内存地址,V表示旧的预期值,A表示…

ABB机器人关于重定位移动讲解

关于机器人如何重定位移动,首先来看一下示教器上的重定位移动是在哪。 从图中所示的坐标位置和操纵杆方向得知,重定位的本质是绕X、Y、Z轴的旋转。那么实现跟摇杆一样的操作,就可以通过改变当前位置的欧拉角来实现,参考Rapid指令…