MXXD

跽











1	1	 88 ҳ



















˳Ƽɷ޹˾
20264



MXXD
跽

ǩҳ


ƣ               
Уԣ               
ˣ               
               
ǩ               
׼               	ڣ               
ڣ               
ڣ               
ڣ               
ڣ               
ڣ               







ļļ¼
	汾	ҳ 	 	 	ļ		 
							
							
							
							
							
							
							
							
							
							
							
							
							
							
							
							
							
							


Ŀ    [1ȱٱ߶ݴЭͬݣ½רŹ½ڲ䣻
2䡰ο֧֡½ݣΪļ߸ϸгرǶ㷨/ģģ俪ϸ]

1.	Ŀ	1
1.1	豳	1
1.2	ԭ	2
1.3	Ŀ	3
2.		5
2.1	ԭ	5
2.1.1	׼	6
2.1.2		6
2.1.3	ȫɿص	7
2.1.4	չ	7
2.1.5	΢	8
2.2	ܹ	9
2.2.1	֪㣺Դ칹ͳһ	9
2.2.2	ԵЭͬ㣺ЭںʵʱԤ	9
2.2.3	ƽ̨Ĳ㣺	9
2.2.4	Ӧ÷㣺ϲӦõ֧	10
2.3	·	10
2.4	Ʒ	19
2.4.1	ܹ	19
2.4.2	ҵܹ	22
2.4.3	ܹ	26
2.4.4	Ʊ߶˹Эͬ	30
2.5	˼·	32
3.		37
3.1	ϵͳ	38
3.1.1	û	38
3.1.2	ܹ֯	38
3.1.3	ɫȨ޹	39
3.1.4	ֵ	39
3.2		40
3.2.1	Ӳ	41
3.2.2		42
3.2.3	Ʒ	42
3.3	־	43
3.3.1	־	44
3.3.2	ϵͳ־	45
3.3.3	־	46
3.4	ָ	47
3.4.1	ݱ	47
3.4.2	ݻָ	51
3.4.3	У	51
3.4.4	ش洢	52
3.5	ϵͳԼ	53
3.5.1	Լ	53
3.5.2	·Լ	54
3.5.3	Լ챨	55
3.6		55
3.6.1	ʵʱչʾ	56
3.6.2	ͨ״̬չʾ	57
3.6.3	ɼչʾ	57
3.7	ù	58
3.7.1	豸	58
3.7.2	ͨ	58
3.7.3	ɼ	59
3.8	Դ	60
3.8.1	״̬	60
3.8.2		61
3.9	ģ͹	63
3.10		65
3.10.1	ûݹӿ	66
3.10.2		67
3.10.3	ʱ	67
3.10.4	ӿڵ	67
3.11	ݼʻ	68
3.12	ݷ	69
3.12.1	Դ	70
3.12.2		74
3.12.3	ݿ	77
3.12.4	ݷ	79
4.	汾ӲҪ	83
4.1	豸ϵͳҪ	83
4.2	豸ϵͳҪ	83
4.3	豸ϵͳҪ	83
4.4	汾ϸ	84


1.Ŀ
1.1豳
һϢ־ʱϰƽǿչ־ãͷҪؼֵ2026꡶ʮ滮ҪҪƽй裬ٽƱ߶Эͬ㹩ȫȫڹƶԴ칹ݱ׼ۡŴ洢תΪ׼ʲ֧ȫڹΪԤ뽡ƽָ̨
ĳƽ̨ʵʱԤϵͳĳϵͳӻϵͳ豸Ԥ뽡ϵͳȶϵͳϵͳɲͬӦϵͳɣԲɼնݣݱظɼͬһ豸ϴڲͬϵͳĲɼ豸ԴĹظ࣬Чʵ¡ڹ涨ͬһʱڸϵͳɼݣڲɼݵʱݲͳһܵݲһ£ܻȡݲݹµϵͳԶݻȡ鿴Ȩ޵ҵӦóȨ޲һ£ҵΧݹȨ޻ҵȷաÿϵͳУƽ̨ݲһԵҵûб׼ݣ޷Ϊҵ쵼ṩ֧ͬʱƽ̨ڵ޷γɱ׼ġеҵʲ
ݣ־ϵͳԤ뽡Ӧƽ̨ͨݡ--洢-ӹ-һ廯ջʵͳһۡ׼Ϲ洢ܼӹӸԴϽƬµ⣬Ϊṩȶݹͳһ֪ն칹ϵͳΪ桢ҵӦáƽ̨ṩ׼ݷ񣬳е ࡢݷ[1ֿЧ][޸]ҵáƽֻ裬ҵˮƽ
1.2ԭ
ڡͳһ滮ͳһ׼ͳһ衢ͳһġͳһԭָ£ظ衢ְܽ桢Ϣµ[1±д½ݣ̼ʵд][޸]滮ƹѭԭ
һͳһ滮ҵ
ҵʵʵҵΪȷ̨Ľ跶Χܹʵʩ衢Դá׶Ŀ꼰ձ׼ȷ滮ϽʵʣܹЧָ蹤滮ѽڡ滮ҵµĹ̷Դ˷ѵ⣬Ϊ̨̽춨ʵĹ滮
һױ׼ȫӦ
ϵͳ׼ҵص㣬ͳһƶݱ׼ӿڱ׼ȫ׼ά׼Уݱ׼ȷݱ롢ݸʽݿھȺҪ󣬱ݻҡݲһ£ӿڱ׼淶ݽʽҵϵͳⲿϵͳ˳Խӣȫ׼ά׼ȷȫҪά̼ηֹϵͳȶСб׼ƶҵ󣬲հճȷ׼ʵԺͿɲԣΪ̽ṩͳһļݡ
ͳｨ裬ȫɿ
Эϸ軷ڡҵϵͳͳһʵʩݲɼݴ洢ݷȺģĽ裬ͳһȹԴȷ̹淶ЭͬЧ֯ؼ̱ϵͳЭͬԣȷ̨ģν˳䣬ɢ赼µĹβ롢ϵͳԲ⣬Ϲ̽Ժϵͳԡ
ģͳһȶȷ
ɺ󣬱ϵͳȶСӹֵ̼ĹؼͳһĹϵݹϵͳάȫԱȸ档ݹȷȫڵḶ́ȷɿأϵͳάͳһļءѲ졢ϴƣʱֲϵͳе⣻ȫʵּȨ޹ܿصҪ󣬱ݺϵͳȫ
1.3Ŀ
Ŀֲʽ㡢ȹؼͳһӦùƽ̨չоǡݲɼݴ洢ݴݷ㷨άϵͳϵܹһḻĳϵͳԤ뽡ϵ,ϵͳ̶ܻȺҵ֧ˮƽ,ΪϲӦõĳºͿɿṩʵϡ
һҵǻϵ֧ҵչ
ʵݴӡɢҡͳһ淶ת䡢ӡԴġʲֵת䡢ӡӦ֧šת䣬ԵԴ֧ҵӦõݵΪĳϵͳṩȶЧŵ֧ţͬʱϵͳάɱҵϵͳʵֽܻøЧҵݻ
ǻӦãʵҵݴЭͬ
ʵʩݹ㷨ݲɼάϵͳȫҵӦãա--ˡIoTЭܹͬ΢ȫDocker̬ʵƽ̨ڸϵͳҵЭͬݹ
ʵȫڹľ
ݡ--洢-ӹ-һ廯ջͨϵͳ״̬ͳһ㷨Դ÷񡢼񡢷ԶάȷʵָϵͳЧЭͬٽϵͳЧ
ʵʩҪơռϵͳáϵͳԡѵ׼лֵ֧ȡ
1.4˼·[1˼·ͳһŵǰȥҪʵ֣][޸]
ƽ̨ԡͳһաй֧ӦáΪ˼·Χƹϡ桢ʵʱҵϵͳʹ󣬽һͳһԴݷ֧ƽ̨Լҵϵͳļݡģݡݺͷݣƽ̨У顢洢Դ֯ӿڷݼ㷨ʹ֧š
ƽ̨ĺĿ꣬ǽϵͳԴɢݸʽͳһظ洢ԲѯáģͲȡ淶չʾάɱߵ⡣ͨͳһݷƽֳ̨ɼݡݡݡݡƵϡĵϡģļͷͳһƽ̨γҵϵͳ֧ŵ
1ͳһݷƽ̨ΪĿչ
ƽ̨Χͳһݷƽ̨չƽ̨ΪԴļйںͳһڡ³нǰءҵϵͳģϵͳļԴ֧ŹϵͳϵͳϵͳʵʱϴݹŻ
2Ա׼ݽΪƽ̨
ƽ̨Ƚ׼ݽԽǰݡҵϵͳӿݡģͷļݡǰ״̬ݡݽƽ̨ƽ̨иʽУ顢ֶУ顢У顢ʱУ¼
ڹϲΡݡݡģ͡ƵĵϺͷļݣƽ̨ṩļϴͽӿڽļƽ̨ϵͳ¼ļơļ͡ļСʱ䷶Χҵǩʹ洢λã֤ļܹѯءԤ͸á
3Էʹ洢֧Ųͬ
ƽ̨ݲͬͲòͬ洢ʽݽ뵥һݿܺά⡣
״̬ݡвʵʱָʷݽʱݿ⣬֧ʵʱߡʷơ״̬طźʹˢ¡豸ϢϢӿáûȨޡݼϢ㷨Ϣʹýϵݿ⣬֧ƽ̨ҵԪάƵģļĵϽ洢֧Ŵļ鵵͸áݱǩ͡͡šļ˵͹ؼϢݲѯԴλЧʡȵݡʵʱ״̬״̬ʱѯ뻺ƽ̨Ӧٶȡ
ͨʱݿ⡢ϵݿ⡢洢ͻϣƽ̨γɼ֧ʵʱݷʣ֧ļ鵵ʷ׷ݺͿټݴ洢ϵ
4Դ֯ݿ
ƽ̨Ŀ¼ݱǩʹü¼תΪɹɲѯɸõԴƽ̨豸󡢲͡ҵϵͳ̡͡泡ʱ䷶Χά֯ݣγͳһԴͼ
ÿݡÿļÿ¼Դʱ䡢󡢴״̬״̬洢λúʹûܹƽ̨а豸㡢ʱ䡢񡢹ͺͽϲѯٶλݡͨԴ֯ƽ̨ɢݱɿɲ顢ɿá׷ݵʲ
5ݼ֧ģͺͷӦ
ƽ̨ϡ״̬Ԥ⡢Ӧãݼûɴʷݡ״̬ݡݡݡϽݡĵаȡγɲͬ;ݼ
ݼִ֧ѯ鿴ݱעǩά汾뵼ʹü¼ÿݼ¼ԴΧע״̬Աʱ䡢汾Ϣóݼģѵ㷨֤úƽ̨¼ʹ֤ݼԴ汾ɿءʹÿ׷ݡ[1ǰкܶظȫ][޸ģ˴ڽ跽ǰˣͳһòݵãԺٸ]
6ͳһӿڷ֧ҵϵͳ
ƽ̨ṩͳһݷӿڣҵϵͳֱӷʵײݿ⡢洢ļĿ¼ͨƽ̨ӿڻȡݡͨҵͨ RESTful API ṩѯά͵ʵʱ״̬ݡ澯ݺ״̬ͨ WebSocket ϢķʽͣƵģļĵͨļϴءԤ͹鵵
ƽ̨Խӿڽͳһ¼ӿơӿڵַʽ˵ֶΡϵͳȨޡ־쳣Ϣͨͳһӿڷ񣬽͸ҵϵͳԽӳɱϵͳֱ֮ӷݿϺͰȫա
7ģͲ֧γݷջ
ƽ̨Ϊϡ״̬Ԥ⡢ȡͷģͲӦṩ֧šģͲϵͳͨƽ̨ȡ׼״̬ݡݡݡݡʷݡݼʶͳһ豸ššʱ䷶ΧϢչģ㷨
ģɺ󣬽Ͻ͡ϵȼλáŶȡԤϽͷдƽ̨ƽ̨ģݡ豸󡢲㷨汾¼ݼγɴ롢ģͷд鵵ıջ
8ԴչʾЧ
ƽ̨Ϊʵʱϴṩͳһ֧šƽ̨ͳһάơԴõַˢڡͳƿھֶΡչʾͺͣ״̬
ʵʱͨƽ̨ȡϵͳ״̬豸״̬ؼв澯Ϣͷ񽡿״̬ϴɻȡͳơݡݡģ״̬Ͻɻȡݡģ͡񡢷ͷ档ͨûٴǰײӿڵǿ󶨣ߺָҳάЧʡ
9΢ܹƽ̨չ
ƽ̨˲ Spring Cloud ΢ܹݽշԴݼļ㷨񡢴񡢽ӿڷȨ֤мطģ黯ְܹ֡Ͷչ
ƽ̨ǰ˲ Vue3Element Plus  ECharts ݹŻҳ桢ݼҳ桢㷨ҳ桢ʷݲѯҳͿӻչʾҳ档ƽ̨ͨͳһضⷢӿڣȨ޿ơ־ơӿڼغ쳣澯֤ϵͳȶС
10԰ȫάϵϳ
ƽ̨ͳһ֤ɫȨޡӿȨޡȨޡ־ơءӿڼءءغ쳣澯ûƽ̨ܺԴʱϵͳݽɫȨ޽пơݲѯļءӿڵáݵ롢ݱע㷨ϴִк޸ĵȲ¼־
ƽ̨ݽ״̬ӿڵ״ִ̬״̬״̬洢쳣Ϣгأ쳣и澯ʾ־׷ݣƽ̨߱Сά׷ٺͿչ
2.
2.1ѭ׼
ϵͳԤ뽡Ӧƽ̨աͳ֯ơʵʩ˲족ƽ˼·зԱϣ岼öơ
ϵͳܹշļܣƽ̨+΢񣩺ҵܹơҵܹοҵ̨˼·ķݣϵͳ״̬Ͳͳһ⡢ݼܡмȺ
Ϊ֤ܹƵȽԡԺͿʵʩԣܹƹУѭҵԭ򣬲ҵܹӦüܹƵϵͳܹƵƷ
Ϲ ׼Լȫ ĽҪԼĵƽ̨ѭ׼
2.1.1׼
Ա׼ȡ淶ĽһΪ׼ָ룬ǰհԡԡΪԭҵΪϵͳΪָ˼룬ͳһƽ̨й滮ƣͳһǻƽ̨׼淶淶ҵ̱׼ݽ淶ҵЭͬʽȣγͳһı׼̬άƣЧƽ̨
ͳһ豸׼淶豸ͨЭ顢ӿڹ淶ݸʽͨԴ칹ݽݣʵֲͬҡͲɼװ޷ԽӣԴ칹ݴ豸ݹµ⡣ͳһģͣƽ̨Ҫ󣬽ǹݡݡָꡢϲΡ򡢿ӻı׼ģͣͳһҵ壬ȷһԡɸԣ׼ҵʲ
2.1.2
ΧƺԵԴ޳µıԵܻݵͨȫ·ջʵͳһЧáܵȣΪϵͳϲӦṩ׼Żݻ֧š
ȫڹݽ    ݴ洢  ݼӹ  ݷջϵͨȫݴγɹݼݼϼָȿſɸʲϲӦظӹʵЧáƱЭͬƱЭֲͬʽܹʵʱҪЭͬݳȡ㡢Ԥڸ㼶豸УŻԴãݴЧʡ
2.1.3ȫɿص
ȫ·ȫΧƱ׼š׷ݡ߿úĿ꣬豸롢ݴ䡢洢ӹӦ÷ȫ·ȫƣȨ޹ܿءơݻָϵͳԼ죬ƽ̨ȶݰȫš
2.1.4չ
ܹչϡֲʽ߿ƣֺ֧չ̬豸ģҵ񳡾ӿڿżݣԭʼϲӦϵṩȷװƵݷεײ칹ԣӦýάɱΪϡ桢ϲӦṩ֧š
2.1.5΢
ͨ΢ƣʵϵͳڲϡھۣϵͳչԡ
̷̷ֽͨȡҵҵ΢֮Ľϸ˵ͽϸ뵽һҵ΢ڲϵͳ֮໥ýֲܹ󣬽ҵ΢Ϊ΢񣬰չʾ΢Ӧò΢߼΢ȡٸҵ񽻻΢֮ĵùϵͨҵ̷ķ΢Ľӿڡ΢֮ĵֻͨӿڣװ΢ڲ߼ȫںС
΢Ҫ淶ĽӿڣȷװϵͳС΢Խӿڲͬ໥죬΢¹ϸԭƹ淶ӿڣϵͳ쳣淶Ľӿڶ壬ʹģ֮ȷϵͳϡͬʱ΢ĸܹʹϵͳھۣ˺ڵάٿ
΢ʹϵͳпԡ弴áؿٹӦԽʡʱ;ѣ߹ЧʣҿԲӹ淶ӿɿӦ
ϵͳڲϡھ۳ϵͳĿչ⣬ҪǿԳƼ㼼ƣԴĵԶάϵͳܺû顣
2.2Ʒ
2.2.1ܹ[1ǰСܹơ½ڣҪܹѸ㼶ܹϸ][޸]
Ŀݣѭǻϵͳܹϵ1ƽ̨2NӦõġ1+2+NģʽĳϵͳԤ뽡ƽ̨滮ͳһƿʵʩӦá

ͼ 1ϵͳܹͼ
 1ƽ̨֧ϵͳͳһƽ̨ҵӦϵͳΪϵͳṩݵ֧
2+NӦãƽ̨NӦãҪΪҵݷΪӦṩݣͬʱӦòΪϵͳԽҵӦƽ̨䣬ҵԽչ
ƽ̨һͳһ壬ƽ̨ΪҵǰҪ滮ͳһƿͷʵʩӦãѭҵϵͳ׼淶ϵͰȫϵ
2.2.1.1.ն豸Դ
ƽ̨߱ն豸ͳһԴȫֳɼնˡ豸Եص칹豸ʵնԴԼ׼ӻܿءƽֶ̨֧Эݽ룬ն˵ͨЧƥǰZeroMQMQTT˫ЭݴܹʵָߵƵն˵ȫǽ롣
ϵͳɶнն˽ͳһ̨˹Զ¼豸š͡λϢλáвȻϢγ豸Դƽ̨֧նȨ޹ܿءԶá״̬άȫ̹Ч豸ҡԴáάͺ⣬ϺնȶЭͬУΪƽ̨ݾ׼ɼ߲ṩɿնԴ֧š
2.2.1.2.ݴ洢
ƽ̨ʵзͲɼ컯洢ܹͨԵɼնͳһɼֳʱҵṹݡ
豸ȸƵʱݣ߱ɼƵʸߡʱǿص㣬ʵʱϴȥءԤд˼ʱݿ⣬¡ѹʸߡʱѯЧƣ֧ʵʱءƷʷ뼶ۺͳơ
ϵͳ־ùģ͹ҵṹݣǿƵε͡ǿһԣݹУͳһ洢ݿ[1룿][޸]ԡȨ޹ܿ븴ӹѯ
ݰҵ߼洢ʱдѯҵݰȫɿɿأƽ̨ҵӦ
2.2.1.3.ҵݸ߲
ƽ̨ZeroMQ+MQTT˫ЭϢмܹʵҵݸ߲ӳ١ȶɿĽЧߵƵݲ컯
ԸƵʱݣZeroMQз-Ĵ䣬ܡʱӡԣ֧Ű򼶴㲢ʵʱͣмʵֶ˵˸ݴ䣬ϸƵݺ뼶ϱʵʱɼ߲д
ԵƵҵݣMQTTЭ룬ն˶ࡢӷɢ޳ֺ֧豸첽ӡϢ־ûϵϵƵҵȶɿ룬Դġ
ʵ֡Э롢塢ؾ⡱ЧӦԸ߲ȷߵƵַӵ£Ϊ˼ݿṩȶЧ֧ţƽ̨߲볤ȶ
2.2.2ҵܹ
ҵܹѭ1+3ƹ淶ͳһȫϵͳһı׼ϵͳһάϵͳһϵһƽ̨ҵܹͼ£

ͼ 2 ҵܹͼ[1ͼպڰ׻ɫΪعṩVisioɱ༭汾ɫڸӣͼƬͬ޸ģ]
㼶	˵
ֲ	PC˴չʾûý
Ӧò	ṩҵûӲءϵͳ־ϵͳԼ졢ģ͹ʷݡĵݡùݻָԴȣ
֧Ų	ݽ롢ϴת洢Ļ
ݲɼ	ɼݷ񣨸Ƶ忨ݲɼƵ忨ݲɼ
ز	ݽݰȫȱϴʩ
ʩ	ӲȻԴ

2.2.2.1.ͳһ
ͳһݷƽ̨ΪԴļнպ͹ڣֳɼǰ˲ɼ·ɽ롢ͱ׼װͳһݷƽ̨ƽฺ̨Ѿ׼ݶ󣬲ƽ̨ݹ淶У顢ͺ
ʵʱɼ⣬ƽ̨ͬʱչϲļļļģļļƵϡĵϺģͷԴڽӿݣƽ̨ͨ׼APIϢͨнգļݣƽ̨ͨļϴϵͳӿڷʽнգڽݣƽ̨ͨģͲҵϵͳдӿڽнա
2.2.2.2.ҵݴ洢
ƽ̨÷ʹ洢ʽԴ洢ϵݼ򵥴뵥һݿ⣬ǸѡʵĴ洢ʽ
洢		ѡ	֧
ʱݿ	״̬ݡʵʱݡʷ	˼TDengine/KaiWuDB	?
ϵݿ	豸ϢϢûȨޡӿáݼϢ	ݿ	?
洢	ϲļļģ͡Ƶϡĵ	MinIO 	
	Ƶʵʵʱṩٲѯ֧	Redis	

2.2.2.3.API
ƽ̨ñ׼APIŽӿϵϵͳϲҵƽ̨Ӧնṩȫȶͨõݽҵ÷ʵֿϵͳݻͨƽ̨ӿǿɶԽӸ칹ҵϵͳ֧ʱݡ豸Դݡҵ̨ݵĲѯͣݲѯ豸ܿء״̬ȡҵͬȺĳ
ӿѭͨÿ淶֧ȨУ顢֤־¼ЧǷƵϽӿڵðȫȶͬʱ֧Ľӿ䡢չԣɸҵԶù䲻ͬļͨ׼APIӿڣɿʵƽ̨ⲿϵͳ޷Խӣݹµͷƽ̨ɼ洢豸ݼֵϵͳĿԡչԡ
2.2.2.4.
ƽ̨߱ƵӲ绷ȫлŴ̬ϵ밲ȫӦóӲȫX86ARMӲܹ䲻ͬնӲ𻷾߱ǿӲͨչԡϵͳͬʱ֧WindowsLinuxͨϵͳϵͳϵͳںˡȵȫάȼ䣬ȶڹն豸
ݿ̬߶ݿϵЧݴΡ˼١KaiWuDBȹݿ⣬ʵҵṹݡʱݵȶд洢áƽ̨ͨȫλĹŻӲ칹⣬ѶԹ̬ϵͳСݴ洢ɿأŴҪ밲ȫϹ沿
2.2.3ܹ

ƽ̨ Spring Cloud ΢ܹн裬ͳһݷƽ̨ΪģϵͳΪһְ߽ȷɶ𡢿ɶչķԪ΢ͨͳһءעᷢ֡׼APIͳһ֤ڲûƽЭ֧ͬͬݽաԴݼļ㷨ӿڷȨ޿ơ־ƺмصƽ̨
ͨ΢ܹƽ̨ܹ⴫ͳϵͳ϶ȸߡӡչѵ⣬ʵҵģáչͳһƽ̨ڽнϻ桢洢ݿ⡢ϢġӿغȼֶΣϵͳڶҵϵͳ롢߲ʡļʵʱݷʹչʾµ
2.2.3.1.ҵ
ƽ̨ҵְݱ߽з֣γݽշԴݼļԴ㷨񡢴񡢽ӿڷȨ֤־ƷмطȺ΢ģ顣ֻҵΧڵĹܴͨ׼ӿЭͬ
ֲַʽʹģܹԡͶݡĳһѹϴʱɵӸ÷ʵӰУӶƽ̨嵯ԺάЧʡ
2.2.3.2.ͳһӿ
ƽ̨ͨAPIΪͳһڣṩͳһʵַͳһ·תͳһ֤Ȩͳһӿͳһ־¼ⲿҵϵͳǰҳ͵Ӧòֱӷʺ΢񣬶ͨصƽ̨
ͨͳһأƽ̨ܹйӿڷ·Ȩޡӿڰ汾ת쳣ӦϵͳԽӸӶȣӿڰȫԺͿάԡ
2.2.3.3.עᷢ뼯
ƽ̨÷ע뷢ֻʵַʵ̬΢Զעᵽעģ÷ͨƷĿʵʵݡߡǨƻ쳣ʱƽ̨ܹͨעֻᷢƶ̬֪֤·ȶ
ƽ̨ͬʱͳһùƣӿڵַáúͻýмάͬµķÿͳһͶ̬÷ɢڸڲάѡ
2.2.3.4.߲֧
ƽ̨ͨ桢洢ݿ⡢ӿھۺϺ첽ȷʽ߲ȵݡʵʱ״̬״ָ̬ͳãƽ̨ʹ Redis 潵ݿѹڲļƵģļĵϣƽ̨ʹ MinIO 洢ͳһļֱռҵݿԴ
ڽṹҵݡʱݡݺļݣƽֱ̨ùϵݿ⡢ʱݿ⡢Ͷ洢أʹͬݽʵ߲ѯЧʺϵͳȶԡ
2.2.3.5.Ϣַϵͳ
ƽ̨ͨϢĺ첽ַ֧ſϵͳݵáʵʱ״̬Ϣģͽˢݺϵͳ֪ͨݣͨϢлĻƽзַҵϵͳֱ֮ǿϡ
ͨ첽Ϣƣƽ̨ܹ˲ʱѹݷַЧʣǿϵͳڶҵϵͳóµȶԡ
2.2.3.6.
ƽ̨ûɫȨޡӿڹļ־ơĿ¼ݱǩݼ㷨ʹͨͳһװγɿɸõĻ
ϲϡ桢ʵʱݹŻӦÿɰƽ̨ظͬĻܣӶϵͳЧʣͺչάɱ
2.2.3.7.΢
ƽ̨΢ƣ񽡿顢ӿ۶Ͻ쳣־·׷ٺ͸澯ءϵͳ΢״̬ӿڵִԴʹ
쳣ӿڳʱʧܻԴռùʱƽ̨ܹ¼쳣Ϣ澯άԱٶλʹ⣬ϵͳȶС
2.2.3.8.չݽ
ƽ̨ʽз񽻸й΢ɶ𡢶ǰӦá˷񡢻񡢶洢ͼͳһ벿𻷾
ǰ׶οɲ Docker  Docker Compose ɷйֽ׶νźҵģ󡢷ӺͲѹƽ̨ɽһչΪ Kubernetes ŲģʽʵַԶȡ͹ϻָ
2.2.3.9.ͳһݷ
ƽ̨ͨ΢ϵγ·ݽշнӱ׼ݺļԴԴĿ¼ǩͼݼȡעͰ汾ļ洢ļϴغԤ㷨㷨Դչʾָúӿڷͳһⷢ
ЭͬУγɴݽա洢Դ֯ݼģ͵áдչʾݷջ
2.2.4Ʊ߶˹Эͬ[1Ʊ߶Эͬľ弼;貹䣻]


ͼ 3 Ʊ߶Эͬͼ
ö -  - Эͬ + ֲļܹȫڹΪģ˴豸ݲɼԤУ顢ֲ洢ҵ㡢ӦչʾάܿصջʵݴԭʼɼҵֵھĸЧתͬʱ˸ܡ߿ɿ߰ȫչԣΪҵֻܻṩ˼ʵļ
һ˲ɼ
Ƶݲɼģ飺 C++ ܡӳٵԣ뼶Ĵݡ豸ʵʱвȸƵʱݲɼͨ ZeroMQ ӳϢЭ鴫䣬ݲɼʵʱԣƵݵĶʧӳ٣㹤ҵ豸ʵʱصĺ
Ƶݲɼģ飺 Java ƽ̨׼ɵƣ豸Ϣ־ݡ״̬ݵȷʵʱƵݵԲɼͨ MQTT Э鴫䣬ʹ绷Ͳɼɱ봫ռáֲɼʽʵ˶Զ˲豸ݵȫ渲ǣͬʱΪͬѡŵĴЭ飬ʵ˲ɼЧ봫ɱƽ⡣
߲
ն˲ɼ㴫칹ݣͬЭ顢ͬʽԭʼݽб׼ʱݽʱ롢ʽ˲ʱ䲻ͬʽͳһ⣻Բͬ豸˽ЭתͳһΪƶ˿ʶı׼Э飻ͬʱҵ󣬶ݽг·ɷַ
ƶ˽
ձ߲ϴı׼ݣͨУƶݵԡϷԡȫԽ֤˶ݡǷͬʱͨȨ޿ƻƣԲͬԴͬҵ񳡾ݽȨ޻֣ݵİȫϹʲΪϲṩ־ûȨ޹ҵ
2.2.5·
Ŀͳһݷƽ̨ΪģΧƹϡ桢ۺϼӦõ֧󣬽踲Ǳ׼ݽաݼд洢ԴݼģͲ֧šͳһӿڷʹչʾ֧ŵļϵƽ̨ظǰ˲ɼı׼ݻϣݽաУ顢⡢ַͷ񷢲γҵϵͳͳһݷ
弼·߰ա׼ݽաƽ̨д洢ԴͳһģͰáӿͳһ񡢴չʾ˼·չ衣ͨͳһݷƽֳ̨ɼݡݡݡƵݡĵݡģݺͷͬһϵҵϵͳظݴ洢ݲѯݷݸЧʺϵͳЧʡ


ͼ 1ƽ̨·

(1)ƽ̨ݽͨ
ͳһݷƽ̨ΪԴļнպ͹ڣԽǰءϵͳϵͳϵͳԼļԴֳɼǰ˲ɼ·ɽ롢ͱ׼װͳһݷƽ̨ƽฺ̨Ѿ׼ݶ󣬲ƽ̨ݹ淶У顢ͺ
ʵʱɼ⣬ƽ̨ͬʱչϲļļļģļļƵϡĵϺģͷԴڽӿݣƽ̨ͨ׼APIϢͨнգļݣƽ̨ͨļϴϵͳӿڷʽнգڽݣƽ̨ͨģͲҵϵͳдӿڽнա
ͨƽ̨ݽͨݽƽ̨ͳһԴϵΪݲѯʷ׷ݡݼģ͵úʹչʾṩ
(2)׼ݽУ
ƽ̨ڽʱݸʽ豸ššɼʱ䡢͡ԴʶҵֶκļԽм顣״̬ݺͼƽ̨صУʱ롢ֵλϢ״̬ڲļļģļƵĵϣƽ̨صУļ͡ļСļԡ豸ʱ䷶ΧԪϢģͷƽ̨صУݷΧ㷨汾͡ź͹
ڷҪݣƽ̨ͽ洢͹ֶ̡ȱʧʽ쳣ʱ쳣벻ƥ״̬쳣ݣƽ̨¼쳣־γ¼ں׷ݺͨУƣ֤ƽ̨ܹͳһ洢ͳһͳһҪ
(3)γƽ̨д洢ϵ
ƽ̨÷ʹ洢ʽԴ洢ϵݼ򵥴뵥һݿ⣬ǸѡʵĴ洢ʽ
״̬ݡвʵʱָʷݽʱݿ⣬֧ʵʱߡʷơ״̬طšʹˢ¡豸ϢϢͨӳϵûȨޡӿáݼϢ㷨Ϣúҵݽϵݿ⣬֧ƽ̨ҵáϲļļļģ͡ƵϡģļĵϽ洢֧Ŵļ鵵ءԤ͸áݱǩļ˵͡͡š豸šź͹ؼϢ֧ݿٲѯϼȵݡʵʱ״̬ӿơ״̬ʱѯ뻺ƽ̨Чʺʵʱչʾܡ
ͨϵݿ⡢ʱݿ⡢洢ͻϣƽ̨γչάݴ洢ϵ㵱ǰĿݽ롢ʷ洢ļ鵵ټҵ
(4)Դ֯
ƽ̨ԽݽͳһԴ豸󡢲͡ҵϵͳ̡͡泡ʱ䷶ΧάȽĿ¼ͷϵ
ÿݾ¼Դʱ䡢ɼʱ䡢״̬洢λá״̬ǩϢ豸ʹü¼Ȩ޷Χûܹƽ̨ڰ豸㡢ʱ䡢񡢹͡͵ѯݣܹ鿴ʵʱݡʷݡļݡģͽĵϡ
ƽ̨ͨĿ¼ݱǩʹɢڲɼ·ϵͳϵͳϵͳļеγͳһԴͼݲֻǵļ¼Ǿ߱Դԡǩϵʹü¼Դںѯá׷ݡ
(5)ݼ
ƽ̨ϡ״̬Ԥ⡢Ӧãݼƽִ̨֧ʷݡ״̬ݡݡݡϽݡĵаȡγͬҵ;ݼ
ݼݼȡ鿴ݱעǩά汾뵼ʹü¼͹ÿݼ¼ݼơݼšԴΧǩϢԱʱ䡢汾Ϣó͹
ƽ̨ͨݼƽ̨ڴ洢ʷݺļԴתΪģѵ㷨֤ͽ˵ݻݼģͻúƽ̨¼ʹù̺֤ݼԴ汾ɿءʹÿ׷ݡ
(6)ʵģͲ֧
ƽ̨Ϊϡ״̬Ԥ⡢ȡͷģͲӦṩ׼֧šģͲϵͳֱӷʵײɼ·ԭʼݸʽͨƽ̨ȡ׼״̬ݡݡݡݡʷݡݼʶ
ƽ̨ģͲṩʵʱݵáʷݲѯļȡݻȡݼúͽдģͲͳһ豸ššʱ䷶ΧʶϢģ㷨͡ϵȼλáŶȡԤϽͷ档
ģɺϽԤͷдƽ̨ƽ̨ģݡ豸󡢲ʱ䷶Χ㷨汾¼ݼγɴ롢ģͷд鵵ıջ
(7)ͳһݷӿ
ƽ̨ṩͳһݷӿڣ֧Źϵͳϵͳϵͳ͸Ӧõƽ̨ݡҵϵͳֱӷʵײݿ⡢洢ļĿ¼ͨƽ̨ı׼ӿڻȡݡ
ͨҵͨAPIṩѯά͵豸ݡݡʷݡݼݡݡģͽݺݡʵʱ״̬ݡ澯ݡ״̬͹ؼָͨ WebSocket ϢķʽṩļƵļģļĵͨļϴءԤ͹鵵ǩݡļԴʷ¼ҵͨʵֿٲѯ
ƽ̨нӿڽͳһ¼ӿơӿڵַʽ˵ֶΡϵͳȨޡ־쳣Ϣͨͳһӿڷƽ̨͸ҵϵͳɸӶȣݵõһԺͿάԡ
(8)֧㷨ͳһ
ƽ̨㷨ԴͼԹ㷨ȡ㷨״̬㷨Ԥ㷨ͷ㷨ͳһǼǡáкͽ
㷨Դ㷨ϴ㷨Ǽǡ㷨汾άл˵ó˵㷨ļ鵵㷨ļģļļ洢ڶ洢У㷨ơ㷨汾㷨͡ʽл÷ΧϢ洢ƽ̨ҵС
񴴽áֹͣ״̬١־鿴쳣Ϣ¼ͽ鵵ûܹƽ̨еݼ㷨Դݡв·ִзʽִɺƽ̨鵵ݡ㷨汾ҵʵ㷨й̿ɼء׷ݡݿɸá
(9)ʵִչʾ֧
ƽ̨Ϊʵʱϴṩͳһ֧šƽ̨ͨܣάչʾָԴõַˢڡͳƿھֶΡչʾͺͣ״̬
ʵʱչʾϵͳ״̬豸״̬ؼв澯Ϣӿ״̬ͷ񽡿״̬ϴչʾͳơݡݡģ״̬Ͻ͸澯ơչʾݡģ͡񡢷ͷ档
ǰͨƽ̨ӿڻȡչʾݣֱӰ󶨵ײݿԭʼӿڡչʾָꡢӿڵַ޸ͳƿھչʾֶʱͨƽ̨άߴЧʺͺάԡ
(10)γά밲ȫ
ƽ̨ͳһά밲ȫû֤ɫȨޡӿȨޡȨޡ־ơءӿڼءءغ쳣澯
ûƽ̨ܺԴʱϵͳݽɫȨ޽пơݲѯļءӿڵáݵ롢ݱע㷨ϴִк޸ĵȲ¼־ƽ̨Է״̬ӿڵ״ִ̬״̬ݽ״̬洢쳣Ϣмأ쳣и澯ʾ־׷ݡ
ͨά밲ȫƽ̨ܹ֧ųȶУ֤ݷʿɿءӿڵÿɲ顢ִп׷١쳣ɶλ
(11)γƽ̨ݷջ
ͨ·ߣĿγͳһݷƽ̨Ϊĵݷջǰֳݽͱ׼װ󣬽׼ƽ̨ƽ̨ݽнУ顢д洢Դ֯ݼͳһ񷢲ģͲϵͳͨƽ̨ȡ׼ݺݼɹϡ״̬Ԥͷдƽ̨ϵͳͨƽ̨ȡչʾݣʵֿϵͳ״̬͹ؼļչʾ
3.
ռܹϵƷƽ̨ڲɼݡϵͳݵݼӦϵͳаڣûɫȨ޹־ݷģ͹ȣ֤ҵջͬʱͨҵԶƽ̨ϢΪӦṩ֧š

ͼ 4ͼ
3.1ϵͳ
ṩƽ̨Ȩùܿʵֶû֯ɫľϸȫ
3.1.1û
չʾûϢ֧ϵͳԱڴ˽ûĹάûšûơšûɫȡɰղơûƵȽвѯ֧û޸ġɾ롢лû״̬Ȳ
3.1.2ܹ֯
ְҵְ߱Ȩ޷Χûųܹ֯ûϢڹϢֶ֧ܹ֯ӡ޸ġɾûϢȲ֧롢ɾ
3.1.3ɫȨ޹
ɫͬλӵеһȨ޵ͳƣϵͳΪһЩصְԼȨ޵ķΧûͨݲͬĽɫȨ޵ĿơɫΪҵɫ͹ɫɫְֻܷҵɫֻܷҵְͨɫϵͳԱҵҵԱϵͳáֽ֧ɫ޸ġȨ޷Ȳ

ͼ 5 ɫȨʾͼ
3.1.4ֵ
ֵΪƽ̨Ԫݹܿغģ飬Ҫʵȫϵͳݽṹҵ뼰ӿֶεļж塢ͳһά淶ãȷԪϢҵ壬ѪԵϵֵֶ֧Ķ塢޸ġɾͣõȲ
3.2
ذӲڴ桢CPỤȻϢ⡢أAPIüء״̬ȼ־·ϢԼȣƽ̨Docker𣬻¼Ҫ

ͼ 6 ؼܹͼ[1л̵ͼúڰ׻ɫչʾ]
Node ExporterָɼƵʣָݽģ飬ɼԭʼӲݽϴʽɸѡļָ꣬ͬʱ쳣߼CPUڴ桢̵ֵָָ곬ֵʱ澯ʾDockerģзУcAdvisorʵֶDockerʵʱأ״̬ģ飬ȡ״̬ԴݣͬʱӲָ꣬ʵӲԴأڶλԴ쳣ĸԴ
Spring Cloud΢мActuatorMicrometer¶񽡿״̬APIáJVMеض˵㣬ָɼ򣬽΢ָݿ⡣ͬʱ״̬ģ飬ͨʵʱж΢ǷУ߻Ӧ쳣ʱʱ¼澯⣬APIüģ飬ͳAPIQPSӦʱ䡢ʵְָ֧꣬񡢰ӿάȽͳչʾŲӿ쳣ӿڡ־·׷ģзУFilebeatɼ΢񼰼־ݣ־ռ򣬽־Elasticsearchд洢־ģ飬ְ֧񡢰ʱ䡢־־ɸѡͬʱSkyWalkingSpring Cloud΢ʵַ·Զ׷٣·ģ飬չʾˡںʱ֧·쳣·Ķλ
Dockerȷƽ̨ܹһ£ͬʱͲάɱ
3.2.1Ӳ
(1)CPU أʵʱɼ CPU ʹʡĸءռʣֵ֧ / ܸͳơãƵݽ롢ʵʱ㡢תܼͳڶλƿطա
(2)ڴأʵʱڴ桢ռãʶڴй©Դľաãʱݻ桢ݴ΢гǰԤ OOM ա
(3)̼أشʹʡд IOPSдӳ٣ʱݿдܡãݿ߲д롢ݴ洢ļݳ
(4)أʵʱɼʡӳ٣ 100 ·Ƶݴȶã -  - Ƹݴ䡢Ƶ͡ģ롢ʵʱˢ³
3.2.2
(1)΢أءݷȵ΢״̬ʱ̴ãDocker ΢ܹʵȺƵӿڵó
(2)ݿأݿѯӦдʡãʱд롢ƵѯԴҵ񲢷ʳ
3.2.3Ʒ
Сʱ /  / Դʹߡ
ʱάԴʹߣ֧滮Ż
СʱƣСʱͳԴʹʣλСʱزɡãʵʱȡʱֵԤƵɼط
ռƣͳ CPU / ڴ /  / ֵֵƽֵʶճãճάѲ졢عɷ쳣նԱŲ顣
¼ƣԴƣ֧ڴ洢ݹ滮ãԤ⡢Ӳݡ洢滮άͶ
3.3־
־ģͳһϵͳ־־־ְ֧趨ڱݹ簴ʱ̶ڣģԶʷ־鵵ָ洢λãݶѻӰܡȷ־ݵ׷ԣơϼϹҪ

ͼ 7 ־ͼ
3.3.1־
־Ҫڼ¼ûϵͳеĸؼΪû¼֤޸ġݵ豸ƵȺĲĿΪϵͳȫƹṩɿݣͬʱںʱ׷ݸԴ綨ΣϵͳȫȶУй¶쳣ȷաɼΧص۽ϵͳȫݰȫҵתصĹؼȷɼ©ص㲻ƫɼΧû¼ͬʱ¼¼ɹ¼ʧֳȫû¼̬ûɫȨޱǽɫ䡢Ȩ޵Ȩ޻յ漰Ȩޱ䶯Ĳϵͳڰ޸Ĳɾ༭زݵȡ
ÿһ־¼Ϣȷʵ׼ȷ¼ݰڣ˺šʱ䡢ͻIPģơͣ¼޸ġƣȡִнȡ
־ͳһݿ⣬ҵʵŻ洢ṹ־洢Ĺ淶Ժʵԡݿְ֧ʱ䡢˺šģȹؼάȽпټڹԱڿչȫơŲʱܹٶλ־¼ЧʡͬʱƵ־ݻƣڶ־ݽбݣȷ־ݳ桢ʧ㰲ȫƺͺϹҪΪϵͳȫݱϡ
ְ֧նϼûʱ䷶Χģ顢͡״̬ȼֵ֧Ϊָʽ
3.3.2ϵͳ־
ϵͳ־Ҫڲɼйеĸؼ¼ص㺭Ƿֹͣ쳣ӿڵܵȺݣΪϵͳճṩ֧ţͬʱϵͳֹʱܹٶλԴŲԭ򣬱ϷȶЧУϵͳ϶ҵչӰ졣ɼΪ״̬¼Ƿֹͣọ̈̄ȫշڣݿӳ״̬ʵʱɼӳصӡռӵȹؼָ꣬ʱݿ쳣Redis״̬RedisӵĽϿȶԣ쳣ӿڵݣ¼нӿڵõĺʱִн׼սӿܱ֣ʱִм¼ɼʱʱ䡢ִʱִнϢȷʱС
־ʾϢڣʱ䡢ơʵID־߳ID־Ϣ쳣ջ
ְ֧նϼʱ䷶Χơ𣬷ƣȼֵ֧Ϊָʽ
3.3.3־
Spring SchedulerʵֶʱȣSpring Cloud Configʵ־üйMinIOΪ洢ʣʵָ־Ĳ컯ȷĿԺͿչԡ
ûԲͬ־ִڣƶ컯ԣ־ĺ󣺲־áڹ鵵+ʱɾģʽͨSpring Scheduleröʱ񣬰Ԥڣ30죩Բ־й鵵鵵ɺԶɾ趨ڣ90죩־ݣȱҪ׷ݣֱЧռô洢ϵͳ־á߱+ѹ鵵+ʱɾԤڣ15죩ݣڵ־ϴMinIO洢洢бڣ180죩Զִɾ
Զ鵵ͨSpring Schedulerÿ賿00:00ִжʱִдרù鵵¼ںУ־ԡ׷ݹ鵵̣鵵ݶʧ۸ġ
⣬ͨSpring Cloud Config̬øڲȼ񼴿ɵ־ãԺͿάԡ
3.4ָ
ָģṩõĸ߿ñϣʵҵӦóԴҪ[1ʵ][޸ģȻ֮ǰպͬ淶дģӦҵʵʳδչ]֧ʱݡϵȫݣṩֶԶݲԣֵ֧/ȫָָʱع߱ļУ顢ʧܸ澯ش洢ȫϵͳֱȼ
3.4.1ݱ
Բͬݿò컯ݲԣڱһԵǰ¼˴洢Чʡ

ͼ 8 ݱͼ
ʱ⣬ݽʱյĲԣʱݰʱ洢ԡSpring Schedulerÿ賿ʱִбݲǰԶʱԭӿѹʵϲݡٱ洢Чʣʱգͬʱϴαı仯ݣִݡϵͳԶάݳԤ豣ڣ30죩Զڵݺϲȫ鵵ȱ׷·ֱݹռô洢ԴݹͨSpring Cloud Taskִ״̬ȷһԡ
ϵ⣬ÿ賿߼ݲԣ SQL ļԳǧдΧƬ̻߳ Spring Cloud LoadBalancer еƬ SQLպϲΪļļʵʱѹ 30 Զͨ Spring Cloud Task ״̬ȷһԡ򵥿ɿҵ޸֪

ͼ 9 ϵݿⱸͼ
Զݲ֧ûӻҳԶ屸ݴڣ02:00-05:00ϵͳԤıڣ//£Spring SchedulerԶ˹Ԥûø౸ݵıڣʱȫ鵵90졢ϵȫݱ7죩ڵıļԶŻ洢Դá
⣬ɱУ澯ƣɺԶУ鱸ļԣԱУͣУʧܻ򱸷쳣ͨSpring Cloud AlertManager澯Ϣ֪ͨάԱʱͬʱֱ֧ļֶָͨIDɿٶλļִлָ̣ȷݿɿٻָһݰȫҵԡ
3.4.2ݻָ
ָСΧݴûѡĿݱϵͳԶݵǰ״ָ̬ɺݱȶԱ档ȫָԹϣûѡ񱸷ݵϵͳУ鱸ļԲʾȷϸǣָֻ֧ԭʵʵ
ָʱعȫ+ݣûѡĿʱ㣬ϵͳԶλȫݲطź־عԶУһԣҵָ꣩
3.4.3У
Ϊϱݿԣļ𻵡ȱʧµĻָʧܣϵͳϵҪ󣬽ԶļУ鼰ּ澯ƣȷʵЧΪݻָṩɿ֧ţҵԣϳ潨淶߱ǿʵʩԡ
УַһļСУ飬ȡļʵʴС뱸Ԫݼ¼ȶԣֵ1%Ԥ跶Χж쳣ļУ飬ɨ豸ݴ洢Ŀ¼ͳʵļԪݱȶԣȱʧļж쳣ȫ汣ϱļȫЧÿαȫñݵȣϵͳԶУ飬۽СЧִҲӰҵУͬʱ¼У̼־׷ݡ
ּ澯ƣݻУʧʱϵͳʾ澯Ϣݰʧʱ䡢Դԭ洢ռ䲻㡢ļ𻵵ȣý顣澯桱΢һҿԶ޸˹룻ءڱݲó˹봦ãⱸʧЧ
ϵͳԶ¼澯Ϣụ̀γ̨ˣ֧άԱв鿴ɸѡ澯Żƣȫ汣ϱļԡ
3.4.4ش洢
Ϊϵͳֱ༰ϹԴҪϵͳֽ֧ļԶϴָ洢ڵ㣬ͨѧϴرȷݰȫɿء׷ݣΪֱṩɿ֧š
ļɺڱؽڵ棬ͬʱ첽ϴ̣ļش洢ڵ㣬ϴҵ񣬼ݰȫҵЧʡϵͳ֧öش洢ڵ㣬á+ܹؽڵϴʧʱԶлڵϴȷϴжϣرݵԡϴɺϵͳԶڱԪм¼ϴʱ䣬ں׷ݹ
ȹ鵵ʵרÿ1231ϵͳԶȫбݴΪɱ鵵سڱ10꣬ϸ㳤ԴϹҪȷݿɳ׷ݡɴ۸ġ
3.5ϵͳԼ
ϵͳԼģʵ˶ƽ̨н״Զֶ֧ءݿ⡢桢ϢС΢ȺĿԼ⣬ԼԶ--ݴ·ͨӳټ⡣ͨԻֶԼϵͳܹǰǱ͹Ϸգƽ̨Ŀɿάԡ
ϵͳԼģ÷ֲʽֶܹ֧ڵ㲢ִԼ񣬼ͳһܲɽṹԼ챨档ģѭھۡԭֲ֧չںҵµļάȡ	
3.5.1Լ
Լ칦ܺʵʱƽ̨ڲؼĿԣȫŲ쳣ƽ̨ȶУΪάԱṩ׼ķ״̬ڼʱֲǱڹϡⷶΧƽ̨ķ񣬾طصAPIصͨԡӦʱ估ʣȷתӦЧ쳣ɿأݿ񣬾۽ݿ״̬дӳټִݴ洢뽻ȶ񣬼RedisȻ״̬дܼڴʹʣʧЧƿϢз񣬺˲Ϣмߡ״̬жѻϢӰҵ΢񣬼עи΢Ľ״̬Ϣ·ͨԣȷ΢Эͬ


ͼ 10 Լܹʾͼ
3.5.2·Լ
·Լ칦ܺڼ--ܹݴ·ͨӳ٣רԵ㡢ȸӲ𳡾ͨȫλ·⣬ܹݴ˳ȶΪӳµҵṩ֧šݰ·㼶ֲ㿪չ£˲·⣬ص˲ն豸Եڵ֮ͨԣͬնԵڵϱݵӳȷ˱ݽ߲ͨ·⣬۽Եڵƶƽ̨֮ݴȶԣͬʱʣжϻƿӰͬ--ȫ·⣬ͨģҵݴնɡԵڵ㴦ƶƽ̨۵ҵ̣ȫڵӦʱ붪ʣ׼Ųȫ·еĴȫݴЧ쳣

ͼ 11 --·Լʾͼ
3.5.3Լ챨
Լ챨湦ԶɽṹԼֲ֧鿴ʷݡݰ
ʱ䣺ԼĿʼʱ䡣
쳣飺쳣ĴϢ鴦ʩ
ֵ֧ΪPDFJSONʽ
3.6
ģʵ豸״̬ʵʱӻչʾ֧100·10kHzƵʱεͬչʾԼ豸ͨ״̬ɼݵȹؼϢļмءֱͨ۳֣άԱɿϵͳȫ״̬ʱ쳣λ⡣
 B/S ܹƣ HTML5 + WebSocket ȫ˫ͨżʵʵʱͣͳ HTTP ѯʽƵӦ翪ʱģɷǰˣʡȥͻظѯĵȴڡϵͳЭЧл䷽ͽʱǰ첽Ⱦݸ²ԣȫػɵģȶ˵ 200ms ڵӳҪȷָꡢ״̬仯뼶ͬˢʵʱ뻭ȡͬʱֶ֧ƴӣشȶೡչʾʵݿӻͳһ֡
3.6.1ʵʱչʾ
֧100·ͨ10kHzƵʱʵʱƣͬʾ

ͼ 12 չʾʾͼ
ؼָ£
 1չʾָ
ָ	
ͨ	100·
Ƶ	10kHzÿͨÿ10000ݵ㣩
	ѹ¶

֧ק鿴ֲϸڡ
3.6.2ͨ״̬չʾ
ͨ״̬ڼظɼͨ״

 2 ͨʾͼ
չʾ	˵
ͨ	1-100ͨʶ
״̬	/Ͽ/쳣
ǰ	ʵʲƵʣHz
3.6.3ɼչʾ
ɼչʾͨʵʱֵͳ
ʵʱֵǰ˲ʱֵʽˢ
ͳƽֵЧֵ
              ͼ 13 ɼʵʱչʾʾͼ
3.7ù
3.7.1豸
ṩ豸棬֧豸Ľ롢עᡢ༭ɾά豸ĻϢ豸ͺš豸λ豸״̬ȡ

ͼ 14 豸б
3.7.2ͨ
ṩͨý棬ֶ֧ÿɼͨжãɼƵʡ̡ͨ͡ȡɼڵȲ֧ͨ/ͣá޸ʷ¼鿴ȷɼ̿׷ݡ

ͼ 15 ͨб
3.7.3ɼ
ֹ֧ͣɼ񣬿ɸʵ̬ɼƵʻɼԡɼֵ֧豸ͨ߱ȼɼ״̬ʵʱ
ṩԤ棬ֲ֧鿴ͨԭʼݡʵʱͼֵߵչʾʽɸʱ䷶ΧɼݻطȶԷάԱжϲɼ״̬

ͼ 16 ͨʵʱԤ
3.8ģ͹
ģ͹ģΪϡϲӦṩͳһģ֧֧ģ͵ȫڹ֧ģ¼롢汾ơʹøٵȹ
ϵͳṩģϴ棬ֶ֧͵ģļϴҪģ͡㷨ģͺͽģ͡ģڹļΡΪȷݣֳ֧ģĸʽ㷨ģ豸Ԥ⣬֧PythonȸʽǷࡢع顢ȶ㷨ͣģ豸״̬ʣԤ⣬ֵ֧ģ͡˻ģ͡ѧϰģ͵ȶʽģ¼Удģơģ͡豸ͺšģͰ汾ģ˵ǩϢԪݣͬʱ֧ģļϴУ鹦ܣȷϴģ͸ʽȷ

ͼ 17 ģ͹ͼ
һ汾
ʵģ͵İ汾ȫڹĹܰ
(1)汾¼ÿģ͸»ϴԶµİ汾ţ¼汾Ĵʱ䡢ϴˡģļС˵Ϣγİ汾ݽʷ
(2)汾ع֧ʷ汾ĿٻععϵͳԶлǰЧģͰ汾ͬʱع¼Աơ
(3)汾Աȣṩͬ汾֮ĲԱȹܣֶ֧ԱģļСģͲάȣû˽汾ݽݡ
(4)ʷ汾ʷ汾־û洢ְ֧ģơ汾šʱ鿴ȷģͱ̿׷ݡɻָ

3.9
ģṩṹ֧ϵͳûݽб׼ֶ֧ʱԶִУִ֧йжԵӿڵĵüɣ㸴ҵ񳡾µԶ
òͳһݽӿڹ淶ʱ桢ӿ߱򵥡ִпɿءչص㣬Ϊϵͳûṩһվʽ֧š

ͼ 18 ҵͼ
3.9.1ûݹӿ
ṩϵͳûݵı׼ɾĲ鹦ܣ֧ģ塢ʵִвݵĴ¡ɾҳѯӿڲͳһñ׼ʱʽݰ״̬ʾϢݸءͬʱ֧ѯˣơ״̬ʱ䷶Χȣɾƣȷݲԡȫ׷ԡ
3.9.2
ûɽʱ񡢵ӿڵݴϱţڵϵݴӳ估쳣ԣʵָҵ̵ֱ۹붯̬
3.9.3ʱ
ֻ֧ʱʽĶʱ񴴽ɾȷִеʱ㡢ִڡЧڷΧֹʱ䣩ʱϵͳûӵĶʱãԶ趨ʱ򴥷ִݻȡͶͬɡҵͬʱֶ֧ʱִСִָͣ־鿴
3.9.4ӿڵ
֧ڵöԵϵͳĽӿڵǳõ󷽷ûַͷʱʱ䡢Դ쳣ԡִʱԶõӿڻȡݣӦнУ쳣ֽ֧ӿڷΪڵʵֿϵͳҵ񼯳ɡ
3.10[1ʻաݴƽ̨][޸Ϊݿӻ]ӻ
ݿӻģṩƽ̨кָĶάͳͼչʾ豸ɼϡԴȳֱָ꣬ͨ۵ͼλʽûƽ̨̬ƣΪճάѲ򵥾ṩݲο
óݲѯԴͼԼ򵥡ʵáάΪԭͨʱͳֶˢϵķʽȡݣ븴ʵʱܣʵѶάɱ

ͼ 19 ʾͼ
һ豸ͳ
ṩ豸Ļͳƹܣǰ豸豸ʵʱͳơ豸ͣɼ豸Եءն˵ȣͳֲԼ豸ۼʱͳơͳƽֿƬ򵥱ͼʽ֣û˽豸ʲ״̬
ɼͳ
ṩݲɼĻͳϵͳõĲɼͨͳƣԼաܡµԤʱ䷶ΧͳƵݽͳƽּƼͷķʽչʾڿжϲɼҵԾݹģ
ͳ
ṩάȵĻͳƷͳڷĹܴͣͨŹϡ豸ߡ쳣ȣչʾռȷֲԼ豸ͨάͳƹϷƵΡͳƽԼ򵥱ͼ״ͼչʾûλ߷㡣
ģԴͳ
ṩƽ̨ʩԴͳƣ洢ռʹʰٷֱȡԴCPUڴ棩ǰذٷֱȣԼķĿ״̬쳣ԴͳͨǱ̻ʽչʾʹʳ趨ֵʱɽм򵥸ʾ
壩ͳ
ṩִвĻͳƣϵͳѴͳƣԼͣ綨ʱһȣͳɡͳƽֿƬͱͼʽչʾ򵥷ӳƽ̨Źģ
3.11ݷ
ݹ[1ͳһݡᷨҪһðһ˵][ͳݹݹַΪԴݷϸ]ԴΪݱļ⡢ǩĿ¼ԴͳһǼǺͱĿڴ˻ϣͨݱ׼Ԫݡϴͳһܿأݵһԡ淶ԺͿŶȣݿԴչ SQL ݼӹźͽγҵӦõݳɹգݷݳɹͨĿ¼API񡢽ӿڷغͷ־ȷʽṩʵԴı׼ܿػͷӦá


ͼ 20 ݷͼ

3.11.1Դ
ԴģڶϵͳڸԴͳһǼǡĿάǩáϵȨ޿ƺʹùγɹ淶ʲϵΪݷݹҵӦṩ֧š
1. Ŀ¼
Ŀ¼ڽͳһԴϵְ֧ҵԴӦóάȶԴз
ϵͳ֧Ŀ¼½༭ɾáͣúȨãֽ֧ݱļӿڡָꡢԴҽӦĿ¼£ʵԴĹ淶Ŀ

ͼ 21 Ŀ¼ҳʾͼ

2. ݱ
ݱڶϵͳڽṹݱֶϢͳһάϵͳ֧άݱơӢơݿ⡢͡Ŀ¼˵·ʽƵʡ洢ڵϢ

ͼ 22 Ŀ¼ҳʾͼ
3. ļԴ
ļԴڶϵͳļԴͳһ洢ࡢԤȨ޿ơϵͳ֧ ExcelCSVJSONXMLPDFWordͼƬļȶָʽļĹ
ϵͳ֧ļϴļࡢԤļء汾ǩáȨ޿ơ鵵ȹܣֽ֧ļԴƷ豸ϡάģ㷨ҵϵ

ͼ 23 ļԴҳʾͼ
4. 
ҵӦóԴ⻯֯͹ϵͳ֧ΧƲƷ豸״̬ϡάޱϡģͷϵͳƵҵ⡣
ϵͳ֧½༭ɾáͣã֧άƵϢ

ͼ 24 ҳʾͼ
5. ݱǩ
ݱǩڶԴбǩʶͷϵͳֽ֧ҵǩԴǩȱǩϵ
ϵͳֱ֧ǩǩǩ༭ǩɾǩ󶨡ǩǩͳƵȹܣֶ֧ݱֶΡļӿڡָꡢԴֶԶꡣ

ͼ 25 ݱǩҳʾͼ
3.11.2
ģڶϵͳڸԴб׼淶ȫͿ׷ݻģΧݱ׼Ԫݡϴݣͳһ͹ƣʵݴӽ롢洢ʹõȫ̵Ĺ淶ܿأΪݷݷҵӦúͺϹṩɿݻ
1. ݱ׼
ݱ׼ڽϵͳͳһݱ׼ϵơֶζ塢λֵȡֵݽͳһ֤ͬԴͬҵ񡢲ͬϵͳ֮ݾ߱һµı﷽ʽʹÿھ

ͼ 26 ݱ׼ҳʾͼ
ϵͳֱ֧׼׼ֶι׼λֶ֧Ա׼༭áͣáͰ汾׷ݡ
2. Ԫݹ
ԪݹڶϵͳԴĽṹϢҵԡԺ͹ԽͳһάγԴ˵ϢͨԪݹɶݱֶΡļӿڡָꡢԴԴṹ塢Ƶʡ洢λáʹ÷ΧϢмй

ͼ 27 Ԫݹҳʾͼ
3. 
ڶϵͳݵԡ׼ȷԡһԡΨһԡʱԡЧԵȽУʱȱʧظ쳣ʽ󡢷ΧԽ硢ھһµ⣬ԴĿԺͿŶȡ

ͼ 28 ҳʾͼ
4. ϴ
ϴڶԽϵͳݽȥءȫʽתֶι淶쳣ֵλתתȴʹԭʼϵͳͳһݱ׼ҵʹҪ

ͼ 29 ϴҳʾͼ

3.11.3ݿ
1. ݿ̨
ݿ̨ΪݿԱṩͳһݿڣ֧ݽűдSQL ѯšСԤ񷢲Ȳ
ϵͳӦ֧ڹ̨дݿĿҵ⡢͵ȷʽ֯ݡ

ͼ 30 ݿ̨ҳʾͼ
2. SQL 
SQL ֽ֧ṹݲѯӹתͳƷͽд롣ϵͳӦṩ SQL ༭ִСԡ桢Ͱ汾
ϵͳӦֿ֧ԱѡԴݿ⡢ݱд SQL 䣬ݲѯϴתݹָ㡢ܵȲڳ SQLֱ֧Ϊűģ򿪷

ͼ 31 SQL ҳʾͼ
3.11.4ݷ
ݷģڽϵͳھӹۺԴԽӿڡġѯصȷʽṩģΧƷĿ¼APIݽӿڷȨáĹء־ͷƵݣͳһݷ񷢲ܿػƣʵԴı׼ܿػͷӦá
1.Ŀ¼
Ŀ¼ڶϵͳѷݷͳһࡢĿչʾϵͳӦְ֧ҵ򡢷͡Դ״̬ӿ͵άȶݷз
Ŀ¼Ӧչʾơ롢͡ࡢԴ״̬ˡʷʽõַƵʡΧϢûͳһʹá

ͼ 32 Ŀ¼ҳʾͼ
2. API 
APIڽݱ⡢ָļԴҵݷװΪ׼ӿڷ񣬶ṩͳһݷ
ϵͳ֧ RESTful API񷢲֧ýӿơӿ·ʽֶΡԴѯҳ򡢳ʱʱ䡢ƵƵݡ
ͼ 33 API ҳʾͼ
3. ݽӿڷ
ݽӿڷڶɲͨԵݽӿڽзϵͳӦֽ֧ӿڷ롢ȷϡߺͷ¼
ͼ 34ݽӿڷҳʾͼ
ӿڷǰɲУ顢ȨУ顢ȨУ顢ֶУ͵òԣȷӿڷʹҪ󷽿ʽ
4. ع
عڶݷ״̬ӿڵܡ쳣ԴռʵʱأݷȶС
ϵͳӦֶ֧ԽӿڵôɹʡʧʡƽӦʱ䡢Ӧʱ䡢쳣ָͳչʾ֧쳣澯
ͼ 35 عҳʾͼ
5. ־
־ڼ¼ݷ񴴽áȨ쳣ߵȫ־Ϊάⶨλ׷ṩݡ
ͼ 36 ־ҳʾͼ
3.11.5Դ
ԴģڶϵͳԴӲ롢ת洢õʹȫ̽Դ׷١·¼ӰϵѪԵת׷ϵʵݡԴɲ顢ȥ׷οɶλ̿ɻԭΪⶨλȫơͺϹṩ֧š
1.ѪԵϵ
ѪԵϵڽԴ֮ιϵγת·ϵͳֶ֧ݱֶΡӿڡļ⡢ָȶ֮ԴϵͼӹϵԶ
ϵͳ֧չʾԴӹ̡ϵְ֧ݶ鿴ԴӰ췶ΧγɿӻѪԵϵͼ

ͼ 39 ѪԵϵҳʾͼ
ϵͳֶ֧ SQL ӹ·ͬ·ӿڵ·ļ··нԶѪԵϵֶ֧ѪԵϵ
2.׷ٹ
׷ٹڶϵͳеת·ȫ̼¼͸١ϵͳּ֧¼ݴӲɼ롢ϴӹתݿݷ񷢲ⲿʹõת̡
ϵͳְ֧ʱ䡢ԴơӿơԴʹϵͳת¼вѯֲ֧鿴ڲͬϵͳͬͲ֮ͬת·

4.汾ӲҪ[1ڼ򻯣䵽λ][޸]
4.1豸ϵͳҪ
Ŀ	Ҫ	ƼҪ	˵
CPU	X86ܹ	4˼X86	ݲɼ桢ЭתȻ
ڴ	32GB	32GB	ֶ֧񲢷мݻ
洢	500GB	1TB	ڳ־洢ʱݻ
ϵͳ	Linux Ubuntu	Ubuntu 20.04/22.04 LTS	֧DockerZeroMQC++л
	ǧ̫	ǧ׼	˱ݴҪ

4.2豸ϵͳҪ
Ŀ	Ҫ	ƼҪ	˵
CPU	ARMܹ	8˼ARM	ֱ֧Եݴͷ
ڴ	32GB	32GB	Եݿ⻺Ϣ
洢	1TB	2TB	ڱݻ桢־ݿļ洢
ϵͳ	v10	v10	ƽ̨Ҫ
	ǧ̫	˫/ǧ׼	ֳ֧ƶ˲ת

4.3豸ϵͳҪ
Ŀ	Ҫ	ƼҪ	˵
CPU	X86ܹ	4˼X86	֧Ʒ
ڴ	32GB	32GB	Ʒݿ⡢Ϣ
洢	1TB	2TB	ڱݻ桢־ݿļ洢
ϵͳ	Linux Ubuntu	Ubuntu 20.04/22.04 LTS	֧Docke
	ǧ̫	ǧ׼	ƷݴҪ

4.4汾ϸ
	汾Ҫ	˵
docker	24.0.7	
jdk	11.0.13	JAVA߰
nginx	1.25.0	ܷҳ
redis	7.2.3	ڴļֵԷǹϵݿ
C++	11	ϵͳ
zeroMQ	4.3.2	Ϣ
KaiwuDB	3.2.0	߿öģֲʽݿ
	8.1.3.140+	ɿصĹϵݿ
emqx	5.1.6	Դ߲MQTTϢ

