我们正在使用 NetScaler 9(我们在 v10)中引入的新 DataStream 功能来进行内容切换(在此处描述:http: //support.citrix.com/proddocs/topic/netscaler/ns-dbproxy-wrapper-con。 html ). 我们有一个只读虚拟服务器,它在多个只读 MySql 从站之间进行平衡。我们使用我们的内容切换将所有“选择”发送到只读服务器。
策略配置如下:
mysql.req.query.command.contains("select")
我们的用户向我们的数据库服务器发送多部分查询。大多数情况下,它们很简单,例如:
use database;
select col1 from table1;
有时他们会将注释放在查询的开头。例如:
-- this is my query
select col1 from table1;
我们发现,如果查询只是以选择开头,那么一切都会顺利进行。但是,在查询之前有 use 语句或注释的情况下,内容切换器无法检测到这是一个选择查询,它会绕过我们的只读虚拟服务器。
我要告诉我们所有的开发人员,他们必须在每个查询中为每个表完全别名,并避免使用语句(是的,无论如何这是一件好事),而且他们不能在他们的 sql 中使用注释(这很愚蠢)。
有谁知道如何配置我的 NetScaler DataStream 内容切换以忽略注释和使用语句?