假设我有三个区域(eu,us,asia)在各自的实例上托管相同的应用程序。我将只为这些相同的应用程序注册一个域名。
当用户从eu请求时,我喜欢将数据发送到eu区域应用服务器,反之亦然。
例如:user ->请求→Example.com(源自eu) ->发送数据到eu应用
例如:user ->请求→Example.com(来自我们)->发送数据给我们app
例如:user ->请求→Example.com(来自亚洲)->发送数据到亚洲应用程序
我可以通过负载平衡器或其他东西设置吗?
是的,您可以使用OCI DNS和通过地理位置流量导向策略进行流量管理。指导策略应该根据查询的大陆geokey过滤或优先考虑DNS答案。
使用ROUTE_BY_GEO模板的POST/steeringPolicies请求正文示例:
{ "compartmentId": "ocid1...", "displayName": "Geolocations mapped to answer pools", "ttl": 30, "healthCheckMonitorId": "ocid1...", "template": "ROUTE_BY_GEO", "answers": [ { "name": "US Server 1", "rtype": "A", "rdata": "192.168.0.2", "pool": "US" }, { "name": "US Server 2", "rtype": "A", "rdata": "192.168.0.3", "pool": "US" }, { "name": "EU Server 1", "rtype": "A", "rdata": "192.168.0.4", "pool": "EU" }, { "name": "EU Server 2", "rtype": "A", "rdata": "192.168.0.5", "pool": "EU" }, { "name": "rest of world 1", "rtype": "A", "rdata": "203.0.113.2", "pool": "Global" }, { "name": "rest of world 2", "rtype": "A", "rdata": "203.0.113.3", "pool": "Global" } ], "rules": [ { "ruleType": "FILTER", "defaultAnswerData": [ { "answerCondition": "answer.isDisabled != true", "shouldKeep": true } ] }, { "ruleType": "HEALTH" }, { "ruleType": "PRIORITY", "cases": [ { "caseCondition": "query.client.geoKey in (geoKey '6255149')", "answerData": [ { "answerCondition": "answer.pool == 'US'", "value": 1 }, { "answerCondition": "answer.pool == 'EU'", "value": 2 }, { "answerCondition": "answer.pool == 'Global'", "value": 3 } ] }, { "caseCondition": "query.client.geokey in (geokey '6255148')", "answerData": [ { "answerCondition": "answer.pool == 'EU'", "value": 1 }, { "answerCondition": "answer.pool == 'US'", "value": 2 }, { "answerCondition": "answer.pool == 'Global'", "value": 3 } ] }, { "answerData": [ { "answerCondition": "answer.pool == 'Global'", "value": 1 }, { "answerCondition": "answer.pool == 'US'", "value": 2 }, { "answerCondition": "answer.pool == 'EU'", "value": 3 } ] } ] }, { "ruleType": "LIMIT", "defaultCount": 1 } ] }
—流量管理转向策略API指南,使用模板创建转向策略