1、MQTT是一个基于物联网的传输协议,用于轻量级的订阅发布的消息传输。旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。
- 开放消息协议,简单易实现
- 发布订阅模式,一对多消息发布
- 基于TCP/IP网络连接,提供有序,无损,双向连接。
- 1字节固定报头,2字节心跳报文,最小化传输开销和协议交换,有效减少网络流量。
- 消息QoS支持,可靠传输保证
1-6中,只有3是MQTT协议,其他都是HTTP
2、从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势:
1)性能:如果使用边缘计算,则物联网设备将在边缘数据中心或本地处理数据。因此,数据无需传输回中央服务器,速度优势明显;
2)安全:边缘计算将在不同的数据中心和设备之间分配数据处理工作。黑客无法通过攻击一台设备来影响整个网络;
3)可扩展性:通过购买具有足够计算能力的设备来扩展边缘网络。企业无需为其数据需求建立自己的私有或集中式数据中心;
4)可靠性:所有的边缘数据中心和物联网设备都位于用户附近。因此,网络中断的可能性非常小。
3、设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。
李工同步方案思路:
更新数据时在同一事务内依此完成删除缓存,更新数据库,再写入缓存。
张工异步准实时方案思路:
更新数据时在同一事务内首先通过消息队列发布待更新数据的消息给缓存更新服务,再更新数据库;缓存更新服务订阅消息队列,待收到更新事件执行缓存更新。
项目数据量极大,且性能要求高,较适合采用张工提出的异步准实时方案较好。
4、缓存分片方法常用的有哈希算法和一致性哈希算法:
哈希算法通过某种哈希算法散列得到一个值,按该值将数据分配到集群响应节点进行缓存。
一致性哈希算法将整个哈希值空间映射成一个按顺时针方向组织的虚拟圆环,使用哈希算法算出数据哈希值,然后根据哈希值的位置沿圆环顺时针查找,将数据分配到第一个遇到的集群节点进行缓存。
一致性哈希算法有两大优点,
1) 可扩展性。一致性哈希算法保证了增加或减少服务器时,数据存储的改变最少,相比传统哈希算法大大节省了数据移动的开销。
2) 更好地适应数据的快速增长。
5、布隆过滤器的工作原理和优缺点:
布隆过滤器的原理是当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,只要看看这些点是不是都是1就大概知道集合中有没有它了;如果这些点有任何一个0,则被检元素一定不在;如果都是 1,则被检元素很可能在。
优点:
1. 增加和查询元素的时间复杂度为:O(K), (K为哈希函数的个数,一般比较小),与数据量大小无关
2. 哈希函数相互之间没有关系,方便硬件并行运算
3. 布隆过滤器不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势
4. 在能够承受一定的误判时,布隆过滤器比其他数据结构有这很大的空间优势
5. 数据量很大时,布隆过滤器可以表示全集,其他数据结构不能
6. 使用同一组散列函数的布隆过滤器可以进行交、并、差运算
缺点:
1. 有误判率
2. 不能获取元素本身
3. 一般情况下不能从布隆过滤器中删除元素
4. 如果采用计数方式删除,可能会存在计数回绕问题