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,最终使其成为报告数据库的方式。
转载于:https://www.cnblogs.com/BlogNetSpace/p/10775012.html
Sitecore8.2 GeoIP - 在8.2的引擎盖下发生了什么?相关推荐
- 规则引擎 设计 git_引擎盖下的Git
规则引擎 设计 git by Wassim Chegham 由Wassim Chegham 引擎盖下的Git (Git under the hood) Let's explore some commo ...
- [elixir! #0023] 引擎盖下, `IO.puts` 如何运作
`IO.puts "Hello world!" 接触elixir时, 学会的第一行代码是 IO.puts "Hello world!". 出于好奇, 我观察了一 ...
- 对话英特尔副总裁Erez Dagan:自动驾驶引擎盖下的秘密!|《新程序员》
以芯片.摄像头.软件为基石,依托人工智能.大数据等前沿技术,从数据处理.传输.分析到数据安全,纵横于数十年创新经验之上,看半导体巨头英特尔如何布局自动驾驶. 作者 | 屠敏 徐威龙 出品 | < ...
- isam_引擎盖下的ISAM ESSO
isam 存档日期:2019年5月13日 | 首次发布:2013年2月26日 本文深入研究了用于企业单一登录(ISAM ESSO)的IBM Security Access Manager配置故障排除. ...
- 人工智能下一个前沿:可解释性
https://www.toutiao.com/a6708708718810235403/ 不确定性是AI的一个特征,而不是一个bug. 十亿美元的问题 50多年来,计算机已成为我们生活的一部分.他们 ...
- 死锁和活锁有什么区别?
本文翻译自:What's the difference between deadlock and livelock? 有人可以举例说明(代码) 死锁和活锁有什么区别吗? #1楼 参考:https:// ...
- Git叉子实际上是Git克隆吗?
我一直听到有人说他们在Git中提供代码. Git"fork"听起来像Git"克隆",还有一些(毫无意义的)放弃未来合并的心理意愿. Git中没有fork命令,对 ...
- 闪亮蔚蓝_在R中构建第一个闪亮的Web应用
闪亮蔚蓝 数据科学 (DATA SCIENCE) Do you want to make your R code publicly available for others to use? If yo ...
- 比特平面分层_平面设计中的分层
比特平面分层 One of the first windows to pop up automatically, when I first started using Adobe Photoshop ...
- apache ignite_Apache Ignite本机持久性,简要概述
apache ignite 通过将数据的工作集放入系统内存中,内存中方法可以达到极高的速度. 当所有数据都保存在内存中后,就不再需要处理使用传统旋转磁盘引起的问题. 例如,这意味着无需维护数据的其他缓 ...
最新文章
- EDIUS输出到文件
- 【2.CentOS6.8安装JDK】
- 「Python」socket指南
- 大数据让人们得到更加细致和人性化的服务
- java 比较算法_JAVA排序算法实现和比较:冒泡,桶,选择,快排,归并
- UVA 10334 Ray Through Glasses
- mysql gtid寻找位置_【MySQL】UUID与GTID以及如何根据GTID找寻filename和position
- C语言中指针的地址和内容
- Matlab从入门到精通 Chapter5 数据可视化
- python基础之面向对象编程
- Mysql中show命令详解
- [Publish AAR To Maven] 使用 Gradle 发布 AAR 到 Maven 仓库
- 解决:关于启动Kafka一段时间后,进程自己停止运行的问题
- python3中单引号,双引号,三个单引号 ,三个双引号的差别,以及反斜杠的用法
- 转载《一个射频工程师的职场日记》
- 百度注册登录页面简单实现——仿照
- python中做为词云轮廓的图片,Python如何生成词云图片
- Windows 提高办公效率的应用
- CDH 20个实战案例
- Matlab学习第一天(注释、输入输出、清空工作区、清屏、向量矩阵表示和运算、字符串、求和求积函数、等差数列、特征值、判断语句、循环语句)
热门文章
- 动物之美计算机教案,清华大学版六年级上册信息技术教案第三课 动物之美——图像分类管理.pdf...
- 【渝粤教育】广东开放大学 java程序设计基础 形成性考核 (39)
- 【渝粤教育】广东开放大学 服务标准化 形成性考核 (41)
- 23种设计模式(二十二)行为变化之命令模式
- ACM 学习笔记(四) 数据结构之树、二叉树、完全二叉树、二叉查找树、AVL树、红黑树、B树、B+树
- webstorm 高效开发 (html)
- vue 绑定 class 和 内联样式(style)
- 团队作业4——第一次项目冲刺(Alpha版本)2nd day
- Android 6.0 扫描不到 Ble 设备需开启位置权限
- 分组的listview——ExpandableListView