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 交互 ...
随机推荐
- 牛刀小试之用pytorch实现LSTM
https://www.itcodemonkey.com/article/9008.html 要看一看
- EMI优化
一般印刷电路板之间的高速信号线路无法通过FCC和VDE辐射测试. 优化方案有以下3种: 1.高频滤波 通常做法在每个逻辑驱动器上串联一个小阻抗,并经过一个旁路电容接地. 旁路电容接地需足够干净,如机箱 ...
- __x__(29)0908第五天__高度塌陷 问题
高度塌陷 在文档流中,父元素的高度默认是被子元素撑开的. 但是当为 子元素 设置 float 时,子元素会完全脱离文档流,无法再撑开父元素,导致父元素高度塌陷...以致于布局混乱 变成 BFC块级格式 ...
- 【函数式编程】reducer为什么叫reducer
最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux: 抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必 ...
- java课程设计团队博客《基于学院的搜索引擎》
JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...
- php抓取图片进行内容提取解析,文字性pdf进行内容文字提取解析
2018年7月7日18:52:17 php是用纯算法,自己是提取图片内容不是不行,可以但是优化起来很麻烦还得设计学习库,去矫正数据的正确率 对于大多数项目来说,如果不是做ocr服务,就不必要做需求工具 ...
- js_初识js_js基本语法和数据类型
1.js基础 2.js.html.css运行在浏览器(客户端)的语言 java php运行在服务器端 js最初的目的:在客户端处理表单的验证操作 js的解释器被称为js引擎,为浏览器的一部分,最早是在 ...
- css学习_css布局案例
1.中间栏先加载 !!!(若不是这个条件的话 ,那可以用 calc 或者flex布局来实现 中间栏自适应,左右栏定宽) 2.中间栏自适应 width:100% 3.左右栏固定宽 左中右 ...
- linux_grub resue模式恢复
//20190417 今天中午装linux的电脑崩了…… 一开始还以为是什么硬件问题,搞了半天,是更新的时候吧grub启动项弄坏了 行吧,没人教咱就上网搜,搞一下午搞出来了 ============= ...
- verilog 之流水灯
1.黑金板 简易操作: 通过判断数值累加 个人观点:黑金代码质量有待提高,讲解不够详细 2.正点原子的 位置调换 led[:] <= {led[:],led[]}; 3.传统位移 led& ...