草庐IT

sqlite - 如何使 sqlite 在 Windows 共享驱动器上健壮

我知道不建议在网络驱动器上使用Sqlite,原因有两个:性能,以及由于网络文件系统实现不当导致的数据损坏。不过,我还是想探索使用Sqlite支持带有中央数据库的多用户应用程序的可能性。我们已经支持单用户机器上的Sqlite和用于多用户设置的多个数据库服务器(Oracle、PostgreSQL)。使用Sqlite进行多用户设置将很方便,可以在现有IT基础架构上使用Windows共享驱动器(SMB)进行轻量级安装。我们不太在意性能,因此我们愿意付出必要的代价来避免腐败。引用http://www.sqlite.org/atomiccommit.html,第9.1节:Butifyoumustu

重试,让程序更健壮

任何通过网络与其它应用通讯地的程序,都应该有足够的灵活性,来应对短暂的临时性故障。因为这些故障很多时候是可以自恢复的。例如,为了避免服务过载,很多应用会采取某些限流措施,在并发请求达到一定数量时,暂时性的拒绝新的请求加入。这种情况下,尝试使用该应用的程序,一开始可能会被拒绝连接,但下一刻就好了。因此,在设计系统时,应该考虑到此种故障。并且在条件允许时,加入重试机制,自动再次发起相应的请求。在某些情况下,可能会显著的改善应用程序的用户体验。能否发起重试,最重要的前提之一是,对同一资源的发起多次相同的请求,能否得到相同的结果。即资源接口是否具有幂等性。标准RESTAPI中,GET/HEAD/OPT

重试,让程序更健壮

任何通过网络与其它应用通讯地的程序,都应该有足够的灵活性,来应对短暂的临时性故障。因为这些故障很多时候是可以自恢复的。例如,为了避免服务过载,很多应用会采取某些限流措施,在并发请求达到一定数量时,暂时性的拒绝新的请求加入。这种情况下,尝试使用该应用的程序,一开始可能会被拒绝连接,但下一刻就好了。因此,在设计系统时,应该考虑到此种故障。并且在条件允许时,加入重试机制,自动再次发起相应的请求。在某些情况下,可能会显著的改善应用程序的用户体验。能否发起重试,最重要的前提之一是,对同一资源的发起多次相同的请求,能否得到相同的结果。即资源接口是否具有幂等性。标准RESTAPI中,GET/HEAD/OPT

万万没想到,go也能使用对象来操作数据库了,网友直呼:健壮性有保证了

Hi,各位go的小伙伴,大家新年好。之前给大家介绍的Aorm库,都用上了吗?这可是迄今为止我见过的,go领域最好用的数据库操作库了。去年的时候(实际上是半个月前),我发了一篇文章来介绍Aorm的链式操作,展示了它的易用性。《万万没想到,go的数据库操作,也能像php一样溜了》不少朋友加我,表示了支持,并且提出了殷切希望。其中有一点,希望可以增加使用对象来操作数据库。经过我半个月的研究与努力,现在它来了,它来了,它踏着魔鬼步伐走来了。什么是使用对象操作数据库有很多朋友可能没听过说过这个事情,我就先拿别的语言的代码例子来简单介绍下$users=DB::table('users')->whereIn

万万没想到,go也能使用对象来操作数据库了,网友直呼:健壮性有保证了

Hi,各位go的小伙伴,大家新年好。之前给大家介绍的Aorm库,都用上了吗?这可是迄今为止我见过的,go领域最好用的数据库操作库了。去年的时候(实际上是半个月前),我发了一篇文章来介绍Aorm的链式操作,展示了它的易用性。《万万没想到,go的数据库操作,也能像php一样溜了》不少朋友加我,表示了支持,并且提出了殷切希望。其中有一点,希望可以增加使用对象来操作数据库。经过我半个月的研究与努力,现在它来了,它来了,它踏着魔鬼步伐走来了。什么是使用对象操作数据库有很多朋友可能没听过说过这个事情,我就先拿别的语言的代码例子来简单介绍下$users=DB::table('users')->whereIn

架构篇-怎么构建健壮的分布式系统?

我之前在这个博客上写过什么是分布式系统,以及它们如何以不得不处理更复杂的系统设计为代价为我们提供巨大的可扩展性。让我们讨论一下如何使分布式系统对随机故障具有弹性,随着系统变大,这种随机故障会变得越来越普遍。系统理论告诉我们,系统中相互关联的部分越多,发生大故障的可能性就越大。因此,要构建一个弹性系统,我们需要减少连接数量。如果无法做到这一点,我们需要实施“临时”切断与故障部分的连接的方法,以便错误不会级联到其他部分。image.png每个组件都必须假设每个其他组件都会在某个时候发生故障,并决定当这些故障发生时它会做什么。最后,我们需要在系统中建立一些缓冲区——一些放松的方法,如果不消除对它的要

架构篇-怎么构建健壮的分布式系统?

我之前在这个博客上写过什么是分布式系统,以及它们如何以不得不处理更复杂的系统设计为代价为我们提供巨大的可扩展性。让我们讨论一下如何使分布式系统对随机故障具有弹性,随着系统变大,这种随机故障会变得越来越普遍。系统理论告诉我们,系统中相互关联的部分越多,发生大故障的可能性就越大。因此,要构建一个弹性系统,我们需要减少连接数量。如果无法做到这一点,我们需要实施“临时”切断与故障部分的连接的方法,以便错误不会级联到其他部分。image.png每个组件都必须假设每个其他组件都会在某个时候发生故障,并决定当这些故障发生时它会做什么。最后,我们需要在系统中建立一些缓冲区——一些放松的方法,如果不消除对它的要