我们有一个天蓝色的网络应用程序&我们想在世界各地复制一个数据库。
因此,我们使用流量管理器将用户重定向到最近的托管Web应用程序,并在Web应用程序中使用位置设置,它知道它应该针对哪个数据库。
现在,我的问题是,由于模式是一个数据库可写(主要)并且副本只读,我或者azure在调用数据库时如何处理它?</ p>
例如,如果从我的应用程序中我要向数据库添加记录,我无法使用最近的数据库连接字符串,我需要反对主要的。
我应该处理这件事吗?或者我会一直反对最近的一个,即使它的只读天蓝色会处理将它传输到主数据库的写入?
如果我应该管理那个,那么我应该处理2个连接字符串,一个用于主DB可写,一个用于最接近的db可读,我应该拆分我的服务,按写/读分类操作
并且遵循这个场景,如果我有一个WIRTES AND READS的Store程序,我该如何处理呢?
答案 0 :(得分:0)
在地理复制模式下使用Azure SQL时,这是一个常见问题。您不能使用传统的LB技术,例如Azure Traffic Manager。在这种情况下,您应该在数据库连接上使用retry模式,根据需要从主要名称到备用名称。
AFAIK,在连接到数据库后,如果您使用的是主要或只读辅助服务器,则没有简单的方法可以告诉您。根据{{3}},您可以调用一些存储过程来理解拓扑。您可以使用Azure PS / API来理解这一点,但是您必须将该逻辑构建到您的应用程序中。
简而言之:
希望有所帮助。