访客互动 - 访客会话的开始

  • 访问者访问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数据存储在Tracker.Current.Interaction.GeoData(ContactLocation类)中

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的引擎盖下发生了什么?相关推荐

  1. 规则引擎 设计 git_引擎盖下的Git

    规则引擎 设计 git by Wassim Chegham 由Wassim Chegham 引擎盖下的Git (Git under the hood) Let's explore some commo ...

  2. [elixir! #0023] 引擎盖下, `IO.puts` 如何运作

    `IO.puts "Hello world!" 接触elixir时, 学会的第一行代码是 IO.puts "Hello world!". 出于好奇, 我观察了一 ...

  3. 对话英特尔副总裁Erez Dagan:自动驾驶引擎盖下的秘密!|《新程序员》

    以芯片.摄像头.软件为基石,依托人工智能.大数据等前沿技术,从数据处理.传输.分析到数据安全,纵横于数十年创新经验之上,看半导体巨头英特尔如何布局自动驾驶. 作者 | 屠敏 徐威龙 出品 | < ...

  4. isam_引擎盖下的ISAM ESSO

    isam 存档日期:2019年5月13日 | 首次发布:2013年2月26日 本文深入研究了用于企业单一登录(ISAM ESSO)的IBM Security Access Manager配置故障排除. ...

  5. 人工智能下一个前沿:可解释性

    https://www.toutiao.com/a6708708718810235403/ 不确定性是AI的一个特征,而不是一个bug. 十亿美元的问题 50多年来,计算机已成为我们生活的一部分.他们 ...

  6. 死锁和活锁有什么区别?

    本文翻译自:What's the difference between deadlock and livelock? 有人可以举例说明(代码) 死锁和活锁有什么区别吗? #1楼 参考:https:// ...

  7. Git叉子实际上是Git克隆吗?

    我一直听到有人说他们在Git中提供代码. Git"fork"听起来像Git"克隆",还有一些(毫无意义的)放弃未来合并的心理意愿. Git中没有fork命令,对 ...

  8. 闪亮蔚蓝_在R中构建第一个闪亮的Web应用

    闪亮蔚蓝 数据科学 (DATA SCIENCE) Do you want to make your R code publicly available for others to use? If yo ...

  9. 比特平面分层_平面设计中的分层

    比特平面分层 One of the first windows to pop up automatically, when I first started using Adobe Photoshop ...

  10. apache ignite_Apache Ignite本机持久性,简要概述

    apache ignite 通过将数据的工作集放入系统内存中,内存中方法可以达到极高的速度. 当所有数据都保存在内存中后,就不再需要处理使用传统旋转磁盘引起的问题. 例如,这意味着无需维护数据的其他缓 ...

最新文章

  1. EDIUS输出到文件
  2. 【2.CentOS6.8安装JDK】
  3. 「Python」socket指南
  4. 大数据让人们得到更加细致和人性化的服务
  5. java 比较算法_JAVA排序算法实现和比较:冒泡,桶,选择,快排,归并
  6. UVA 10334 Ray Through Glasses
  7. mysql gtid寻找位置_【MySQL】UUID与GTID以及如何根据GTID找寻filename和position
  8. C语言中指针的地址和内容
  9. Matlab从入门到精通 Chapter5 数据可视化
  10. python基础之面向对象编程
  11. Mysql中show命令详解
  12. [Publish AAR To Maven] 使用 Gradle 发布 AAR 到 Maven 仓库
  13. 解决:关于启动Kafka一段时间后,进程自己停止运行的问题
  14. python3中单引号,双引号,三个单引号 ,三个双引号的差别,以及反斜杠的用法
  15. 转载《一个射频工程师的职场日记》
  16. 百度注册登录页面简单实现——仿照
  17. python中做为词云轮廓的图片,Python如何生成词云图片
  18. Windows 提高办公效率的应用
  19. CDH 20个实战案例
  20. Matlab学习第一天(注释、输入输出、清空工作区、清屏、向量矩阵表示和运算、字符串、求和求积函数、等差数列、特征值、判断语句、循环语句)

热门文章

  1. 动物之美计算机教案,清华大学版六年级上册信息技术教案第三课 动物之美——图像分类管理.pdf...
  2. 【渝粤教育】广东开放大学 java程序设计基础 形成性考核 (39)
  3. 【渝粤教育】广东开放大学 服务标准化 形成性考核 (41)
  4. 23种设计模式(二十二)行为变化之命令模式
  5. ACM 学习笔记(四) 数据结构之树、二叉树、完全二叉树、二叉查找树、AVL树、红黑树、B树、B+树
  6. webstorm 高效开发 (html)
  7. vue 绑定 class 和 内联样式(style)
  8. 团队作业4——第一次项目冲刺(Alpha版本)2nd day
  9. Android 6.0 扫描不到 Ble 设备需开启位置权限
  10. 分组的listview——ExpandableListView