前言

mqtt背景图

MQTT消息队列遥测传输(Message Queuing Telemetry Transport)是ISO 标准(ISO/IEC PRF 20922)下基于发布(Publish)/订阅(Subscribe)范式的消息协议,可视为”资料传递的桥梁”它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。

MQTT相较于HTTP,能节省更多的资源,带来较多的传输负担,也因为这样,在制造业中,让更多人发现IoT在设备、厂房的无限可能,发现原来要取机台的温度这么容易,要了解厂区的产量这么方便…等。

官网: http://mqtt.org/

MQTT 3.1.1 协议(中文) : https://mcxiaoke.gitbook.io/mqtt/

阅读全文 »

MQTT概述

MQTT是一种轻量级的发布-订阅消息传递协议,它可能最适合各种物联网设备。你可以在此处找到有关MQTT的更多信息。

ThingsBoard服务器节点充当支持QoS级别0(最多一次)和QoS级别1(至少一次)以及一组预定义主题的MQTT主题。

ThingsBoard基于MQTT协议提供给设备的API是非常”灵活”的。

例如,目前提供了四种API:

  • 遥测数据上传API
  • 属性API
  • RPC API
  • 声明设备所有权API

用上述四种的API,用户可以动态调整设备监控属性,例如原先采集设备的温度,湿度及材料大小调整为温度,湿度和材料是否合格;并可以获取设备历史遥测数据和最新遥测数据;通过RPC API, 设备和服务器可以实时获取对方相应属性的变化和通过API用户可以对设备进行转让,租赁和回收操作。

关联模块一览

和MQTT设备传输协议关联的模块有Thingsboard MQTT Transport ServiceThingsboard MQTT Transport CommonThingsboard Server Queue components。前面这些名称大家可以看IDEA maven模块名称。

阅读全文 »

前言

2019/12/21 分布式事务Seata1.0.0 GA

什么是分布式事务

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。

本质上来说,分布式事务就是为了保证不同数据库的数据一致性

阅读全文 »

背景图

前言

引用自: 《重构 改善既有代码的设计》

重构是在不改变软件可观察行为的前提下改善其内部结构。当你面对一个最需要重构的遗留系统时,其规模之大、历史之久、代码质量之差,常会使得添加单元测试或者理解其逻辑都成为不可能的任务。此时你唯一能依靠的就是那些已经被证明是行为保持的重构手法: 用绝对安全的手法从焦油坑中整理出可测试的接口,给它添加测试,以此作为继续重构的立足点。

因为我们部门内容平台的文章系统之前遗留了很多问题,急需解决这些具有”坏味道”的代码。最后因为其他人手头里都有其他工作,最后这些任务就交给了我。以下是急需解决的问题。

  1. 内容平台新增/更新/取消/删除文章,同步各集团下文章行为状态,消息链路过长的问题。
  2. article分享表停止规模新增,之前未做插入前的记录判断,通过新增的操作来进行记录留存。
  3. 文章表拆除大字段到分表,如content、content_draft等字段。
阅读全文 »

confusion.jpg

前言

循环依赖分为2类:

  • RPC服务间(dubbo、http)循环依赖
  • 应用间循环依赖
  1. Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,防止Spring初始化完成。这种情况我们就叫做RPC服务间循环依赖。出现了循环依赖,必须有一方先启动。所以这种问题是一定需要解决的。
  1. 应用间循环依赖大致情况如下: A应用调用B应用的服务,B应用也会调用A应用的服务,无论是间接调用还是直接调用。 这种循环依赖刚开始不会出现问题 ,但随着代码变更,有可能会发展为RPC服务间循环依赖。

可以通过check=”false”关闭检查来避免 Dubbo的循环依赖的报错,但是我认为这个只是权益之计。

阅读全文 »