社区
MySQL
帖子详情
如何用go语言编写分布式应用保证数据一致性啊?
widon1104
2017-10-18 06:35:49
现在要用go语言编写应用,运行在多台主机上,需要保证每台主机上的应用维护的数据库都是一致的,有什么方法能够保证呢?每一个对数据库的请求都会发到这几台主机上,但是可能出现一台或多台主机断网的情况,这个时候就需要算法来保证数据库的状态是一致的了。还有可能出现数据库请求的次序不一致导致数据库状态不一致的问题。请问有什么算法,应用,库,或者文章能够帮助维护数据库的一致性呢?
...全文
437
3
打赏
收藏
如何用go语言编写分布式应用保证数据一致性啊?
现在要用go语言编写应用,运行在多台主机上,需要保证每台主机上的应用维护的数据库都是一致的,有什么方法能够保证呢?每一个对数据库的请求都会发到这几台主机上,但是可能出现一台或多台主机断网的情况,这个时候就需要算法来保证数据库的状态是一致的了。还有可能出现数据库请求的次序不一致导致数据库状态不一致的问题。请问有什么算法,应用,库,或者文章能够帮助维护数据库的一致性呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whilewk
2019-12-10
打赏
举报
回复
raft共识算法
zjcxc
2017-10-19
打赏
举报
回复
举个具体的例子,比如扣款,有100的余额,在每台机器上都有现在断网了,某台(或几台)机器上收到一个需要扣款100的请求,技术上你能处理这个扣款么?
zjcxc
2017-10-19
打赏
举报
回复
没办法保证,数据一致性不是单纯的技术问题(除非不断网,通过锁控制并发,类似分布式事务) 最简单的一点,在断网的时间,每台机器都改了同一条记录,而且修改的时间点一样,都修改成不一样的东西,这个怎么同步? 这种情况是要业务规则 确定,不是技术说了算
【Golang】深入探索
Go语言
中的网络编程实现方式
Go语言
作为一种简洁而强大的编程语言,在网络编程方面表现尤为出色。其内置的net包提供了丰富的网络I/O基础设施,支持TCP、UDP协议,以及DNS解析等功能。 TCP提供可靠的、面向连接的通信,适用于需要确保数据传输完整性的场景。而UDP提供无连接的快速数据传输,适用于实时性要求较高但对数据完整性要求不高的场景。
Go语言
的并发模型基于轻量级的goroutines和channels。每个网络请求都可以在自己的goroutine中处理,实现高效的并发。Channels用于在goroutines之间安全地
Go语言
中的并发模型与数据
一致性
在本章中,我们深入了解了
Go语言
的并发模型,特别是goroutines和channels的使用,以及如何利用互斥锁和读写锁(RWMutex)来管理数据
一致性
。探讨了goroutines的开销,并说明了在处理文件等I/O操作时必须注意的竞态条件和
一致性
问题。此外,还简述了在Go中如何调用C语言接口,以及这带来的内存管理挑战。
Go语言
的分布式系统和
一致性
算法
1.背景介绍
Go语言
的分布式系统和
一致性
算法是一个重要的研究领域,它涉及到分布式系统中的数据
一致性
、容错性、高可用性等问题。在现代互联网和云计算中,分布式系统已经成为了主流的应用架构,因此
一致性
算法在实际应用中具有重要意义。
Go语言
作为一种现代编程语言,具有高性能、简洁的语法和强大的并发处理能力,使得它在分布式系统和
一致性
算法的研究和
Go最全Redis之缓存
一致性
(2),我的腾讯Golang面试经历分享
理论上先更新。
Go语言
基础之并发
文章目录
Go语言
基础之并发
Go语言
中的并发编程并发与并行goroutine使用goroutine启动单个goroutine启动多个goroutinegoroutine与线程可增长的栈goroutine调度GOMAXPROCSchannelchannel类型创建channelchannel操作发送接收关闭无缓冲的通道有缓冲的通道for range从通道循环取值单向通道通道总结worker pool(...
MySQL
57,062
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章