Sitecore8.2 GeoIP - 在8.2的引擎盖下发生了什么?
访客互动 - 访客会话的开始
- 访问者访问Sitecore网站,这被视为一种新的互动。Sitecore对交互的定义是“......联系人与品牌联系的任何一点,无论是在线还是离线”。在我们的例子中,这是网站上的新访客会话。
- Sitecore运行CreateVisits管道。在此管道中,有一个名为UpdateGeoIpData的处理器,它在Sitecore.Analytics.Tracking.CurrentVisitContext中触发一个名为GeoIpManager.GetGeoIpData的方法,该方法启动访问者交互的GeoIP查找。
- 在GeoIP查找逻辑中,Sitecore将使用访问者的IP地址根据访问者的IP地址生成唯一标识符(GUID)。例如。192.168.1.100 => fd747022-dd48-b1ca-1312-eb4ba55030b2。
注意:Sitecore使用此唯一标识符执行所有GeoIP查找。您可以通过查看MongoDB的GeoIPs集合来查看此ID。该字段名为_id,这是MongoDB在其所有内容中使用的唯一命名约定
- Sitecore在内存缓存中执行GeoIP数据查找。
- 如果GeoIP数据在内存缓存中,则它会将其附加到访问者的交互中。
- 如果GeoIP数据不在内存缓存中,它将在MongoDB Analytics数据库的GeoIps集合中执行GeoIP查找。
- 如果GeoIP数据在MongoDB Analytics数据库的GeoIps集合中,它会将其附加到访问者的交互并将结果存储在内存缓存中。
- 如果GeoIP数据不在GeoIps集合中,它将使用Sitecore Geolocation服务执行查找,并将结果存储在内存缓存中,并将其附加到访问者的交互中。
GeoIP数据缓存
- 获取GeoIP数据后,它将被添加到属于Sitecore Tracker的字典对象中,以便可以通过Tracker.Current.Interaction.GeoData(如上所示)引用它。
- 我注意到奇怪的是缓存过期设置为10秒(默认情况下)
代码参考:
Sitecore.Analytics.Data.Dictionaries.TrackingDictionary
private readonly TimeSpan defaultCacheExpirationTimeout = TimeSpan.FromSeconds(10.0);
GeoIP数据 - 访问者会话结束
- 在访问者的交互/会话结束时,Sitecore将运行CommitSession管道。
- 与CreateVisits管道一样,有一个名为UpdateGeoIpData的处理器,它触发一个名为GeoIpManager.GetGeoIpData的方法(与CreateVisits管道中的代码完全相同)。这再次启动GeoIP查找流程(Cache / MongoDB / GeoIP服务)。
- 似乎这里的意图是在将数据存储在MongoDB中之前确认访问者的GeoData,最终使其成为报告数据库的方式。
Sitecore8.2 GeoIP - 在8.2的引擎盖下发生了什么?的更多相关文章
- 第十二周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 专业SQL服务器内部 了解在引擎盖下发生 ...
- 如何打包和生成你的Android应用程序
原文:http://android.eoe.cn/topic/android_sdk 在生成过程中,你的Android项目的编译和打包成一个apk文件,为您的应用程序二进制的容器.它包含了所有必要的信 ...
- KNIME快速入门指南
一.介绍 KNIME Analytics Platform是用于创建数据科学应用程序和服务的开源软件.KNIME直观,开放,不断整合新的开发,使人们可以理解数据,设计数据科学工作流程和可重用组件. ...
- curl英文直译
文档概述 比较表 curl手册页 常见问题 HTTP脚本编写 mk-ca-bundle 教程 curl / 文件 / 工具文档 /手册页 curl.1手册页 相关: 手动 常见问题解答 HTTP脚本 ...
- 2.2WebApi路由在Action上
这篇文章描述 ASP.NET Web API 如何将 HTTP 请求路由到特定的操作在控制器上. 有关路由的高级别概述,请参见ASP.NET Web API 的路由. 本文着眼于路由进程的详细信息.如 ...
- 最好的Java IDE之争:Eclipse PK IntelliJ IDEA
话说,好马配好鞍,一个好的工匠,必定要有一套好的工具才能打造出最好的工艺给大家.之前,Plumbr团队里的所有成员都使用Eclipse编辑器,而如今,大家都成为IntelliJ IDEA用户.那么,到 ...
- PS顶级胶片滤镜插件 Alien Skin Exposure v6.x最新通用汉化补丁
Alien Skin Exposure v6.0 是一款专业的PS胶片调色滤镜软件,使用Alien Skin Exposure可以迅速将照片调出各种胶片效果,如电影胶片.宝丽来胶片效果.波拉潘胶片效果 ...
- 编写快速、高效的JavaScript代码
许多Javascript引擎都是为了快速运行大型的JavaScript程序而特别设 计的,例如Google的V8引擎(Chrome浏览器,Node均使用该引擎).在开发过程中,如果你关心你程序的内存和 ...
- Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN
快速入门 使用 Spark Shell 进行交互式分析 基础 Dataset 上的更多操作 缓存 独立的应用 快速跳转 本教程提供了如何使用 Spark 的快速入门介绍.首先通过运行 Spark 交互 ...
随机推荐
- PBRT笔记(1)——主循环、浮点误差
PBRT2与3之间的改动 增加了一个功能完备的BRDF模型,支持体积光照与重要性多重路径采样. 次表面散射,基于光线追踪技术,无需预处理. 解决浮点数四折五入的问题 光子映射 样本生成 第一章多了讲并 ...
- NEO智能合约开发(二)再续不可能的任务
NEO智能合约开发中,应用合约比较简单,是的你没看错,应用合约比较简单. 应用合约三部曲,发布.调用.看结果.除了看结果工具比较缺乏,发布调用neogui最起码可以支撑你测试. 鉴权合约比较麻 ...
- Scrapy基础(十四)————知乎模拟登陆
#-*-coding:utf-8 -*-__author__ = "ruoniao"__date__ = "2017/5/31 20:59" 之前我们通过爬取伯 ...
- django——文本编辑器
在博客项目中,为了支持用户的在线编辑博客,我们选用了kindeditor这个强大的编辑器. 以下是对kindeditor的简介,以及在Django中引入这个编辑器的方法:) 1.KindEditor是 ...
- C# - 获取windows系统特殊文件夹路径
一.路径分类 1.绝对路径 完整路径,从磁盘符号开始,如:C:\Windows 2.相对路径 以当前路径为起点,不包含磁盘符号,通常使用“..\”符号来访问上级目录中的文件或文件夹. ../Windo ...
- jQuery (01) 浏览器的事件模型
浏览器的事件模型 由网景公司引入的 DOM0 级事件模型 把事件处理程序绑定到 DOM 元素的属性上: ele.onclick(); ele.onDOMContentLoad(); ele.onloa ...
- [LeetCode] Minimum Swaps To Make Sequences Increasing 使得序列递增的最小交换
We have two integer sequences A and B of the same non-zero length. We are allowed to swap elements A ...
- [LeetCode] Cheapest Flights Within K Stops K次转机内的最便宜的航班
There are n cities connected by m flights. Each fight starts from city u and arrives at v with a pri ...
- Educational Codeforces Round 7
622A - Infinite Sequence 20171123 暴力枚举\(n\)在哪个区间即可,时间复杂度为\(O(\sqrt{n})\) #include<stdlib.h> ...
- python语法_字典_字典操作
字典:使用映射关系来存储数据的 数据类型 dict = {''name“:"gm","age":"34"} 采用键值对来存储数据 key_v ...