2022-03-15-带着问题看源码6-NodeRed中的日志模块

NodeRed 日志模块是基础的模块,负责运行期的信息打印,支持日志等级,同时提供了扩展机制,支持远程打印,打印另存等功能

1. 日志系统的意义#

让我们回到计算机世界的远古时期或者我们刚刚接触计算机世界的时期,那个时候我们有两种调试程序的办法:1)单步调试,一步步地跟踪,查看代码中变量的值。2) 是 printf 大法 —— 在特定的地方打印日志, 通过日志的输出,帮助快速定位。
单步调试方法费时费力,但能准确定位问题。printf 大法简单粗暴,需要尝试,大部分情况能快速找到问题。单步调试和 printf 方法搭配使用,相得益彰。但是单步调试止步于 gdb 等调试工具,而 printf 大法最终发展出了一系列的日志系统。原因就在于单步调试在程序员调试才能用,而 printf 大法可以在调试和生产线上都能用,并且输出的日志被各方面的人利用和解读。

printf 大法是很简陋的。在调试过程中,有可能日志打到很细粒度,比如每条数据的第三个字段是什么都打印出来了,但是真正运行又要把这些细粒度的日志删除。等到下次调试,我们又要知道每条数据的第三个字段是什么了。为此,我们希望日志打印是智能:调试或者线上出问题的时候,各种细粒度的日志全部打印出来,正常运行的时候输出一些最简单的信息就可以了。

阅读更多

2022-03-11-带着问题看源码5-NodeRed系统数据存储

NodeRed 系统相关的配置文件会以 JONS 格式存储在本地,同时也提供了插件机制实现系统数据的自定义存储,本文从 Storage 模块出发,从源码分析下如何以插件形式实现自定义存储,也对这种方式的可能的用途进行分析。

1. NodeRed 系统数据有哪些#

文件名称 说明
package.json nodered npm 信息
.sessions.json 维护会话信息,每一个建立的会话都会记录
flows_[hostname].json NodeRed 流程文件
flows_[hostname]_cred.json 用以保存节点中以.credentials 保存的信息,加密与否可使用配置文件中 credentialSecret 参数配置
.config.runtime.json 运行时配置
.config.users.json 用户配置
.config.nodes.json 节点配置
.config.projects.json Git 配置

2. NodeRed 中系统数据存储机制#

阅读更多

2022-03-09-带着问题看源码4-NodeRed中消息路由实现

NodeRed 提供了一个 Hook 模块,此模块向消息生命周期的节点注册,控制消息的流转。

1. 消息路由是什么? 有几种实现方式 ?#

消息路由即通过路由规则动态规划消息的传输路径,使消息按照过滤条件,从消息源路由到目标节点。通过消息路由,可实现对数据路由的灵活控制和提高数据安全性。

主要有两种方式:

阅读更多

Debian 使用 Iptables 配置防火墙

1. 引用文章#

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2. 防火墙相关概念#

从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。

阅读更多

2021-10-21-debian10 卸载openjdk11并安装 openjdk8

1. debian10 卸载openjdk11并安装 openjdk8#

1.1. 卸载openjdk11#

1
2
3
4
5
apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove

sudo apt-get -y autoremove

sudo apt-get update

1.2. 安装 openjdk8#

1
2
3
4
5
6
7
8
apt-get update
apt-get install software-properties-common

apt-add-repository 'http://mirrors.ustc.edu.cn/AdoptOpenJDK/deb buster main'
apt-get update

sudo apt-get install adoptopenjdk-8-hotspot

2021-08-23-linux 安装与卸载 miniKube

  1. 确保禁止掉 swap 分区
1
2
3
4
sudo swapoff -a

#修改/etc/fstab,注释掉swap那行,持久化生效
sudo vi /etc/fstab
  1. 安装 kubelet kubeadm kubectl
1
2
3
4
5
6
7
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
  1. 安装 minikube
阅读更多

2021-08-17-linux 4G模块打电话发短信

1. minicom#

1.1. 与串口助手区别#

首先需要明确 minicom 和串口调试助手的区别:
   串口调试助手是输入内容到输入框中,按“发送”,内容才会一次性发送出去。
   minicom 是输入一个字符就自动发送,不能发送字符串。因此使用 minicom 发送 AT,如果输错了一个字符,就只能先把本条命令发送出去,然后重新输入命令。

因此一般情况下 minicom 是和 shell 配合使用的,shell 提供字符的回显和删除等操作。

1.2. 安装#

阅读更多

2021-08-13-IP 地址与子网掩码划分的心得

转载地址: https://www.sohu.com/a/457050748_594016

来源: sohu

著作权归作者所有,任何形式的转载都请联系作者

IP 地址与子网掩码划分的心得#

首先,不要管这个 IP 是 A 类还是 B 类还是 C 类,IP 是哪一类对于解题是没有任何意义的,因为在很多题中 B 类掩码和 A 类或是 C 类网络一起出现,不要把这认为是一个错误,很多时候都是这样出题的。
在这里插入图片描述

阅读更多