我们有一个Azure Web应用程序&我们想在世界各地复制的DB。
因此,我们使用流量管理器将用户重定向到最近的托管Web应用程序,并且在Web应用程序中设置了一个位置,它知道它应该与哪个数据库相反。
现在,我的问题是,因为该模式是一个数据库(主要(和仅读取的副本,所以我或Azure在调用数据库时如何处理该模式?
例如,如果从我的应用程序中将记录添加到数据库中,我不能使用最近的DB连接字符串,我需要对付主要的记录。
我应该处理这个吗?否则,即使仅读取的azure会处理将其转移到主DB的文字?
,我也会始终对抗最近在我应该管理的情况下,我应该处理2个连接字符串,一个用于主要DB的连接字符串,一个用于最接近的DB可读,我应该按写入/阅读对我的服务进行分配动作
遵循这种情况,如果我有一个商店的过程,该过程wirtes和读取,我将如何处理?
这是在地理复制模式下使用Azure SQL时的常见问题。您不能使用传统的LB技术,例如Azure流量管理器。在这种情况下,您应该在数据库连接上使用重试模式,从主工作到替代名称。
afaik,连接到数据库后,如果您在主次级或仅读取的次要方面,没有简单的方法可以告诉您。根据此链接,您可以调用一些存储的Procs来了解拓扑。您可以使用Azure PS/API理解这一点,但是您必须在应用程序中构建该逻辑。
简而言之:
- 您需要处理数据库连接并使用重试图案等
- 您应该实现CQRS以将读/写工作负载与如果您想利用仅阅读的次级 ,彼此之间
希望会有所帮助。