2020-03-16

作者: noosphere | 来源:发表于2020-03-16 21:30 被阅读0次

k3s之前的multi-master的支持 Mysql, PostgreSql, etcd 这3个方案,现在正在实验一个内嵌的multi-master方案,使用一个sqlite的HA版本-dqlitedqlite-顾名思义,distibution sqlite,以后稳定的话,可能会成为官方推荐的HA方案。

Dqlite用主要做了几个事情:

  1. 提供一个基于raft的解决方案,基于一个叫 c-raft 的 raft轻量级实现,

  2. 把sqlite封装起来,给它存储层注册一个定制driver来操作数据

  3. CAP理论里,和绝大多分布式数据库一样,dqlite选择了(CP without A), 就是选择了Consistency(一致性)、Partition tolerance(分区容错性),而不保证 Availability(可用性),也即是:

  4. 保证了数据一致性

  5. 保持强一致性,用户请求需要在服务器中所有的分区里面完成了一致性才返回

  6. 但是,不保证每个请求都能得到没有报错的响应

一般,我们用sqlite是这样的:

image

应用程序直接调用一个单节点的sqlite实例

使用dqlite,则是这样的

image

应用程序不直接操作sqlite的接口,调用的是dqlite提供的接口,dqlite通过c-raft来保证数据一致性和容错行

目前官方提供了一个go的binding, 可以直接在go里使用dqlite的接口

作者有一个demo的演讲,演示了一个go写的分布式氧饱和度检测仪的例子

image

这段代码很简单,模拟插入氧饱和度的数据,然后提供一个http接口查询平均饱和度返回给调用者

其中getDatabase方法,如果用单实例的sqlite,它是这样的:

image

如果用dqlite变成这样

image

startEngine实际上是调用dqlite的接口创建一个新的dqlite节点

image

然后调用dqlite client这个接口连到集群

image

往sqlite的存储层注入一个dqlite定制的driver

image

可以看到,用go来使用这HA方案,还是挺方便易用。

目前k3s的dqlite HA版本目前还是实验状态,不要在生产环境使用,还有一些问题,比如:

  • cpu使用率高

  • 第一个启动的节点如果崩溃了,leader选举不出来

总的来讲,这个k3s的嵌入式HA方案还是非常值得期待,毕竟在IOT这种蝇级设备里面包mysql或者etcd这种程序还是有点太重了

参考:

  1. 作者的演讲

  2. go的binding和demo

相关文章

  • Request Response 重复读取

    title: Request Response 重复读取date: 2020-03-16 22:43:21tags...

  • JRebel 激活码 2020 亲测可用

    截至日期:2020-03-16 生成 GUID 的网址 https://www.guidgen.com/ 用这个网...

  • 《再见,我曾卑微,爱过你》

    人间客卿 字数 12295 · 阅读 770 2020-03-16 11:49 【作者:李响/仙儿/人间客卿】 2...

  • 北京西山的落日

    垃圾摄影水平 无滤镜 只为记录下这一刻 摄/夏林欢 2020-03-16

  • 白鹭之叹

    雨后平畴涉水浊,羽沾泥渍喙袭波。 农机聒噪虫鱼遁,若是耕牛任我啄。 (新韵,2020-03-16)

  • 2020-03-16 No.11 GTD 个人知识库 1搜集

    【YouCore第二轮用之以思100天】 2020-03-16 No.11 GTD 个人知识库 1搜集 主题:个人...

  • 罗盘NO.111

    2020-03-16 星期一 晴 罗盘NO.111 今天我收到了我的快递,里面装的是罗盘,我开心的拿出罗盘。我...

  • 认真学

    中原焦点团队 高艳峰 信阳 网络中级九期 坚持分享第712天 2020-03-16 最近参加了几次焦点小屋读书会...

  • 活得潇洒一点,让笑容成为心情而不是表情

    (金鱼哥 2020-03-16 14:54) 人生苦短,爱之惜之,得而珍之。我要悄无声息变成最优秀的那个人。 活得...

  • 江畔独步寻花

    (2020-03-16) 江畔独步寻花·其五 【作者】杜甫【朝代】唐 黄师塔前江水东,春光懒困倚微风。 桃花一簇开...

网友评论

    本文标题:2020-03-16

    本文链接:https://www.haomeiwen.com/subject/qygoehtx.html