当前位置:网站首页>IoT平台如何实现业务配置中心
IoT平台如何实现业务配置中心
2022-04-21 11:00:00 【InfoQ】
前言
1 概念
1.1 运维配置
1.2 业务配置
1.3 env
1.4 cluster
1.5 配置
1.6 Key
1.7 Value
2 配置中心设计梗概
2.1 业务配置特点
- 虽然业务配置写入可能存在并发,但并发量不大,频率较低。
- 业务配置常常以用户为id,单集群用户量有限,一般不超过5万。
2.2 配置中心要解决的问题

2.3 设计要点
- 单配置要求有配置id,每个id上通过version的乐观并发控制来解决多版本冲突问题
- 通知不追求可靠,应用程序和配置中心断链无法接收通知的场景下,通过定期同步数据来保证数据的可靠
- 支持Schema的变更,因Schema变更不频繁,也采用version的乐观并发控制来解决多版本冲突问题
2.4 通知是否包含消息内容
3 配置中心业务流程
3.1 配置的增删改查

3.2 配置值的增删改查

3.3 定期同步

- 删除操作,触发删除通知,从本地缓存中移除数据。
- 添加、修改操作,向配置中心查询最新数据,触发通知并写入本地缓存。
3.4 服务启动

3.5 限制
- 业务流程中,需要使用该配置值的。
- 回调业务程序修改的时候,需要提供旧值的。
4 业务配置抽象实现
4.1 配置相关接口
- 提供env、cluster、配置名称、配置Schema、配置版本号添加配置
- 提供env、cluster、配置名称删除配置
- 提供env、cluster、配置名称、新Schema、新Version来修改配置
- 提供env、cluster、配置名称来查询配置
4.2 配置值相关接口
- 提供env、cluster、配置名称、Key、Value来添加配置值
- 提供env、cluster、Key、ValueVersion(可选)来删除配置值
- 提供env、cluster、Key、Value、ValueVersion(可选)修改配置值
- 提供env、cluster、Key查询配置值
- 根据env、cluster、应用程序当前的配置数据来做定期同步
- 根据Key列表批量查询配置值
4.3 通知相关接口
- 通知某env某cluster下,配置项中的一个Key发生变化,新增、修改或是删除。可选方式有HTTP长链接(Inspired by Apollo)、Mqtt、WebSocket等。
4.4 配置中心存储层抽象实现
4.5 服务发现抽象实现

4.6 抽象总结
5 配置中心实现
5.1 华为云物联网配置中心实现

- env+cluster+config组成数据表的名称
- 一个key、value对应一行数据
5.2 另一种实现方式

- env+cluster+config+key 组合成etcd的key
- 一个key、value对应一个键值对
5.3 又一种实现方式

- env+cluster+config+key 组合成RocksDB的key
- 一个key、value对应一个键值对
版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/7721d61c85edc6eed18284062
边栏推荐
- Motor control - speed loop design
- AC自动机专题训练
- Copyright loopholes in NFT: product design needs to consider the legal level
- [lighthouse] intranet penetration FRP construction
- P4 Tutorials---- source routing
- Go language reflection mechanism
- js---call,apply,bind
- Teach you by hand: rolling bearing fault diagnosis based on deep learning
- GO函数的使用
- 手把手教你:基于深度学习的滚动轴承故障诊断
猜你喜欢

MySQL modifies the maximum number of connections

OpenShift 4 - 提升客户端访问 API Server 安全

8-channel can FD, more powerful data recorder gl3400

教你轻松解决CSRF跨站请求伪造攻击

活动报名 | 如何基于开源项目 Tapdata PDK,快速完成数据源和目标的开发?

println输入和toString方法的重写

AcWing 1737. 传送(分类讨论)

电机控制-速度环设计

O2oa secondary development - use the open source platform to build a complete OA (3) - development enterprise reimbursement approval

Runhe Dayu learning program
随机推荐
Motor control - speed loop design
【acwing】1459. Cow Gymnastics (simulation, thinking)
Matlab GUI --- animation demonstration of singleselectionlistbox
JS implementation top input text box
站长如何防止网站被黑
【玩转Lighthouse】内网穿透FRP搭建
GO语言反射机制
训练总结报告
MATLAB GUI---SingleSelectionListBox动画演示
Use of go function
【leetcode】647. Palindrome substring
js---call,apply,bind
AC自动机模版代码解析
C语言中使用scanf函数时应注意的问题
P4 Tutorials---- source routing
Detailed explanation of the route of the shopping guide system based on Runhe Dayu development board
MATLAB GUI---PicZoom动画演示
IoT平台如何实现业务配置中心
Openshift 4 - improve client access API server security
数字藏品平台开发,数字藏品app搭建