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

JetLinks物联网平台微服务化系列文章介绍

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、AI知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。

橙蜂智农的智慧农业产品涵盖了多方面的功能,如智能化推荐、数据分析、远程监控和决策支持系统。用户可以通过应用获得个性化的作物种植建议、实时的生长状态监控以及精确的灌溉和施肥指导,提升农业生产效率。

        JetLinks物联网平台是国内开源(JetLinks提供开源的社区版和付费的企业版两个版本,下面的描述都是针对JetLinks社区版进行)的一款企业级的物联网平台,在国内开源的物联网平台中,star数和活跃度均名列前茅。JetLinks物联网平台的功能齐全,设备接入方面支持多种网络协议和私有协议;采用全异步的设计,从模块级到方法级都采用了异步通讯,web层和db层也都是异步化的;支持多种时序数据库,如ElasticSearch、ClickHouse、InfluxDB、TDengine、Cassandra。

        JetLinks物联网平台功能齐全,足够应对小设备量或者业务简单的场景,但是如果设备量比较大,或者业务复杂,需要做一些定制化开发时,其单体架构将会是一大限制因素。

  1. 因为JetLinks是单体架构,而其功能又比较多,必然造成代码量大而且复杂,开发者在不了解整体代码的前提下开发容易引入bug,系统可用性降低。

  2. 同样由于项目庞大,启动缓慢,使得开发、测试的流程很长,开发效率低,且由于测试不充分导致引入bug。

  3. 单体项目只能横向扩容,会浪费一定服务器资源。

  4. JetLinks整体采用基于Project Reactor的响应式编程,虽然方便构建异步非阻塞的应用,但是它也有着生态不完善(支持响应式的数据库和orm框架不多,无法进行复杂的多表查询),学习成本高,调试复杂等缺点。因此,重业务的模块如设备管理、数据查询等,并不适合采用响应式框架,但是由于是单体架构,我们不得已所有模块都采用这同一种技术。

        本系列的目的就是带着大家一步步地将JetLinks物联网平台重构为微服务架构,重构后的系统能够解决以上问题:

  1. 微服务拆分后,各服务的代码量较小,功能单一,代码更容易理解和维护,测试可以更充分,引入bug的概率小,可用性提高。

  2. 各微服务可以独立扩容,相对更加节省服务器资源。

  3. 各微服务可以采用不同的技术栈,如设备管理模块可以不同响应式,这样就可以使用MyBatis框架,进行复杂sql的查询。

通过本系列文档,希望和大家一起掌握如下技能:

  • 遗留系统重构的方法论和实操;

  • 微服务设计的方法论,包括领域驱动设计的应用;

  • 微服务的测试;

  • 微服务的集群部署。

相关文章:

JetLinks物联网平台微服务化系列文章介绍

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、AI知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&#x…...

【QT Quick】基础语法:导入外部QML文件

在实际项目中,代码通常分为多个文件进行模块化管理,这样可以方便代码重用,例如统一风格或共享功能模块。我们将在此部分学习如何创建 QML 项目,并演示如何访问外部代码,包括其他 QML 文件、库文件以及 JS 代码。 准备…...

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集:模型训练数据集使用的都是开源的数据集,总共 1.4T token 模型结构:原始的 Transformer 由编码器&#xff08…...

【AIGC】ChatGPT提示词助力自媒体内容创作升级

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯高效仿写专家级文章提示词使用方法 💯CSDN博主账号分析提示词使用方法 💯自媒体爆款文案优化助手提示词使用方法 💯小结 &#x1f4af…...

SSTI基础

<aside> &#x1f4a1; 简介 </aside> 原理 又名&#xff1a;Flask模版注入 模版种类 **Twig{{7*7}}结果49 jinja2{{7*7}}结果为7777777 //jinja2的常见参数是name smarty7{*comment*}7为77**<aside> &#x1f4a1; flask实例 </aside> **from …...

10.1软件工程知识详解上

软件工程概述 软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的总目标&#xff0c;具体可分成问题定义、可行性研究、需求分析等。软件开发时期&#xff1a;就是软件的设计与实现&#xff0c;可分成…...

03Frenet与Cardesian坐标系(Frenet转Cardesian公式推导)

Frenet转Cardesian 1 明确目标 已知车辆质点在Frenet坐标系下的状态&#xff1a; Frenet 坐标系下的纵向坐标&#xff1a; s s s纵向速度&#xff1a; s ˙ \dot{s} s˙纵向加速度&#xff1a; s \ddot{s} s横向坐标&#xff1a; l l l横向速度&#xff1a; l ˙ \dot{l} l…...

knowLedge-Vue I18n 是 Vue.js 的国际化插件

1.简介 Vue I18n 是 Vue.js 的国际化插件&#xff0c;它允许开发者根据不同的语言环境显示不同的文本&#xff0c;支持多语言。 Vue I18n主要有两个版本&#xff1a;v8和v9。v8版本适用于Vue2框架。v9版本适用于Vue3框架。 2. 翻译实现原理 Vue I18n 插件通过在 Vue 实例中注…...

【开源免费】基于SpringBoot+Vue.JS微服务在线教育系统(JAVA毕业设计)

本文项目编号 T 060 &#xff0c;文末自助获取源码 \color{red}{T060&#xff0c;文末自助获取源码} T060&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

expressjs 中的mysql.createConnection,execute 怎么使用

在 Express.js 应用中使用 MySQL 数据库&#xff0c;你通常会使用 mysql 或 mysql2 这样的库来创建和管理数据库连接&#xff0c;并执行查询。然而&#xff0c;mysql.createConnection 并不直接提供 execute 方法。相反&#xff0c;你可以使用 query 方法来执行 SQL 语句。 以…...

每日一题|983. 最低票价|动态规划、记忆化递归

本题求解最小值&#xff0c;思路是动态规划&#xff0c;但是遇到的问题是&#xff1a;动态规划更新的顺序和步长&#xff0c;以及可能存在的递归溢出问题。 1、确定dp数组含义 dp[i]表示第i天到最后一天&#xff08;可能不在需要出行的天数里&#xff09;&#xff0c;需要花费…...

oracle 正则 匹配 身份正 手机号

1.正则匹配身份证号: regexp_like(card_id,^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$) ^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$ ^[1-9]&#xff1a;第一位数字不能为0。 \d{5}&#xff1a;接下来…...

在树莓派上部署开源监控系统 ZoneMinder

原文&#xff1a;https://blog.iyatt.com/?p17425 前言 自己搭建&#xff0c;可以用手里已有的设备&#xff0c;不需要额外买。这套系统的源码是公开的&#xff0c;录像数据也掌握在自己手里&#xff0c;不经过不可控的三方。 支持设置访问账号 可以保存录像&#xff0c;启…...

2022年6月 Frontier 获得性能第一的论文翻译

为百万兆级加速架构做高性能 Linpack 优化 摘要 我们详细叙述了在 rocHPL 中做的性能优化&#xff0c;rocHPL 是 AMD 对 HPL 基准的开源实现&#xff0c;主要是针对节点进行优化的架构&#xff0c;是为百万兆级系统而设计的&#xff0c;比如&#xff1a;Frontier suppercomput…...

B2B商城交易解决方案:赋能企业有效重塑采购与销售新生态

在电商零售领域&#xff0c;商城系统始终是企业搭建商城的关键利器。 伴随着电商行业的蓬勃发展&#xff0c;各类新模式层出不穷&#xff0c;各种商城系统也应运而生&#xff0c;其中B2B商城更是最为常见的一种。 近年来&#xff0c;得益于电子商务的迅猛发展&#xff0c;B2B商…...

初始C语言(五)

前言 本文章就代表C语言介绍以及了解正式完成&#xff0c;后续进行具体分析和详细解析学习。知识根深蒂固才可以应付后来的学习&#xff0c;地基要打好&#xff0c;后续才会轻松。 十四、结构体 结构体是C语言中最最重要的知识点&#xff0c;使得C语言有能力描述复杂的类型。 …...

mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)

1、SQL 修改表&#xff08;ALTER TABLE 语句&#xff09; 在编写一个SQL的ALTER TABLE语句时&#xff0c;你需要明确你的目标是什么。ALTER TABLE语句用于在已存在的表上添加、删除或修改列和约束等。以下是一些常见的ALTER TABLE语句示例&#xff0c;这些示例展示了如何修改表…...

【网络基础】网络常识快速入门知识清单,看这篇文章就够了

&#x1f490;个人主页&#xff1a;初晴~ 在现在这个高度智能化的时代&#xff0c;网络几乎已经成为了空气一般无处不在。移动支付、网上购物、网络游戏、视频网站都离不开网络。你能想象如果没有网络的生活将会变成什么样吗&#x1f914; 然而如此对于如此重要的网络&#xf…...

OceanBase 关于一号表笔记与ERROR 1060(42S21)问题

OceanBase 关于客户端访问OceanBase 的表数据的过程说明 1.OBserver中的location cache 会保存observer 曾经访问过的实体表的位置信息(meta table 主要包括 __all_core_table、__all_root_table、__all_tenant_meta_table 三张内部表。OB 集群中所有实体表的 location&#x…...

【四】Spring Cloud OpenFeign原理分析

Spring Cloud OpenFeign原理分析 概述 Spring Cloud 微服务实践也有挺多年了&#xff0c;一直想着总结一下这系列的知识点&#xff0c;最近终于下定决心来出一个Spring Cloud 系列文章了。本文主要围绕fegin组件来进行讲解&#xff0c;文中将会给出基础使用的示例&#xff0c;还…...

EDM平台大比拼 用户体验与营销效果双重测评

本文评测了ZohoCampaigns、Mailchimp、Sendinblue、AWeber四款EDM平台&#xff0c;分别适合中小企业、多平台集成、多功能集成、初学者等需求。建议企业根据自身规模、技术水平和功能需求选择最适合的平台。 一、Zoho Campaigns 功能概述 Zoho Campaigns是Zoho旗下的一款专注…...

开卷可扩展自动驾驶(OpenDriveLab)

一种通用的视觉点云预测预训练方法 开卷可扩展自动驾驶&#xff08;OpenDriveLab&#xff09; 自动驾驶新方向&#xff1f;ViDAR&#xff1a;开卷可扩展自动驾驶&#xff08;OpenDriveLab&#xff09;-CSDN博客 创新点 在这项工作中&#xff0c;本文探索了专为端到端视觉自动…...

基于大数据的二手电子产品需求分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

SpringBoot——基础配置

但是还需要删除pom.xml中的标签——模板的文件也同样操作 banner的选项——关闭 控制台 日志 banner图片的位置——还会分辨颜色 在 Java 的日志框架&#xff08;如 Logback、Log4j2 等&#xff09;中&#xff0c;logging.level.root主要用于设置根日志记录器的日志级别…...

Android OpenGLES2.0开发(三):绘制一个三角形

我们总是对陌生人太客气&#xff0c;而对亲密的人太苛刻 上一篇文章中&#xff0c;我们已经将OpenGL ES环境搭建完成。接下来我们就可以开始我们的绘图之旅了。该篇我们讲解最基本图形三角形的绘制&#xff0c;这是一切绘制的基础。在OpenGL ES的世界里一切图形都可以由三角形拼…...

数据清洗的重要性与方法

在数据分析和机器学习的世界中&#xff0c;数据清洗是一个不可或缺的步骤。 它涉及到对原始数据进行处理&#xff0c;以便使其适合进一步的分析和建模。 数据清洗的重要性 提高数据质量 数据质量直接影响分析结果的准确性。 脏数据&#xff08;包含错误、重复、不完整的数据&a…...

AI与大数据的结合:如何从海量数据中提取价值

引言 在当今数字化时代&#xff0c;数据如同新石油&#xff0c;成为推动社会与商业进步的重要资源。随着物联网、社交媒体和企业运营中数据生成的激增&#xff0c;我们正处在一个数据爆炸的时代。然而&#xff0c;面对海量且复杂的数据信息&#xff0c;仅依靠传统的分析方法已经…...

【漏洞复现】孚盟云oa AjaxSendDingdingMessage接口 存在sql注入漏洞

》》》产品描述《《《 孚盟与阿里强强联手将最受青睐的经典C系列产品打造成全新的孚盟云产品&#xff0c;让用户可以用云模式实现信息化管理&#xff0c;让用户的异地办公更加流畅&#xff0c;大大降低中小企业在信息化上成本&#xff0c;用最小的投入享受大型企业级别的信息化…...

【VUE】案例:商场会员管理系统

编写vuedfr实现对会员进行基本增删改查 1. drf项目初始化 请求&#xff1a; POST http://127/0.0.0.1:8000/api/auth/ {"username":"cqn", "password":"123"}返回&#xff1a; {"username":"cqn", "token&q…...

IDEA 最新版创建 Sping Boot 项目没有 JDK8 选项的解决方案

问题 今天新建一个 Java 项目写 demo 时&#xff0c;发现 Idea 上只能勾选 Java 17、21、23 三个版本 解决方案 IDEA 页面创建 Spring 项目&#xff0c;其实是访问 spring initializr 去创建项目。我们可以通过阿里云国服去间接创建 Spring 项目。服务器 URL 地址替换为 ht…...

微信公众号采集插件wordpress/seo查询工具网站

像排序这种事情&#xff0c;用C/C可以写&#xff0c;但很麻烦&#xff0c;交给sort就好了&#xff0c;功能很强大的。1、按照多个列排序(列间空格分开)&#xff1a;测试数据&#xff1a;先按照第1列排序&#xff0c;再第2列的命令&#xff1a;2011-11-20补充&#xff1a;必须加…...

网站多条件筛选 html/营销型企业网站建设的内容

增加或减少数据节点的数量和NoOfReplicas&#xff08;即副本数&#xff0c;通过管理节点的config.ini配置文件来设置&#xff09;有关&#xff0c;一般来说NoOfReplicas是2&#xff0c;那么增加或减少的数量也应该是成对的&#xff0c;否则要设置另外的NoOfReplicas。首先必须确…...

网站设计的字体/社群营销的方法和技巧

本文的目的在于使用npm进行js类库依赖管理&#xff0c;同时精简html中繁杂的<script>导入。 目前类库加载器(如requirejs/seajs等)可以解决script加载的问题。但对依赖处理不好&#xff0c;还需要开发者一个一个去下载js库&#xff0c;根据个人喜好把js堆砌在项目中。 no…...

百度云附件 wordpress/东莞seo外包平台

关于如何架设PT请参考&#xff1a;NexusPHP架设PT服务站点教程 安装完成后发现可以局域网内可以做种&#xff0c;但是外网就不行了&#xff0c;查看种子下载地址列表会显示可连接性为否&#xff0c;查看了announce.php文件&#xff0c;可连接性由这段代码决定 $sockres pfsock…...

盐城市规划建设局网站/百度爱采购优化

公众号关注 「奇妙的 Linux 世界」设为「星标」&#xff0c;每天带你玩转 Linux &#xff01;据BleepingComputer 2月10日消息&#xff0c;Clop 勒索软件组织最近利用 GoAnywhere MFT 安全文件传输工具中的零日漏洞&#xff0c;从 130 多个企业组织中窃取了数据。该安全漏洞被追…...

wordpress评论不显示头像/网络营销核心要素

1.7 Linux Control groups Linux Cgroups的全称是Linux Control Groups,是Linux内核的一个功能.最早是由Google的工程师(主要是Paul Menage和Rohit Seth)在2006年发起,最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名…...