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 交互 ...
随机推荐
- 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...
- [LeetCode] Shortest Distance to a Character 到字符的最短距离
Given a string S and a character C, return an array of integers representing the shortest distance f ...
- React组件传值
React的单向数据流与组件间的沟通. 首先,我认为使用React的最大好处在于:功能组件化,遵守前端可维护的原则. 先介绍单向数据流吧. React单向数据流: React是单向数据流,数据主要从父 ...
- mysql百万级全文索引及match快速查找
建立全文索引的表的存储引擎类型必须为MyISAM 问题是match against对中文模糊搜索支持不是太好 新建一个utf8 MyISAM类型的表并建立一个全文索引 : CREATE TABL ...
- kubenetes master重启以后,服务异常排查
k8s集群环境:三台机器,一台master,三个node(每台都安装node服务) 问题藐视:重启的时候,发现master的服务都能正常启动,但是就是不好使,看/var/log/message日志也没 ...
- Selenium 3----鼠标、键盘操作常用方法
[鼠标] 在 WebDriver 中, 关于鼠标操作的方法封装在 ActionChains 类中. ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 Action ...
- logback使用注意点1
logback中配置了springProfile(策略),因此在properties中只需要配置如下即可logging.config=./config/logback.xml //logback配置文 ...
- [math] 什么是双曲函数(转发)
我完全不记得上高中的时候学习过双曲函数...额,暴露了... 原文地址:https://zhuanlan.zhihu.com/p/20042215 可能是最好的讲解双曲函数的文章 零.写在前面 (近期 ...
- python遍历文件(替换)
#!/usr/local/bin/python # -*- coding: UTF-8 -*- #coding:gbk import re import os w_str="" x ...
- 64IE无法显示网页
1.碰到如下图情况ie浏览器打开之后显示不了网页,但是试了下电脑上其他的浏览器都可以正常的打开网页. 2.解决办法为:打开浏览器-选择“工具”-“Internet选项”-“高级”-重置,重启浏览器后能 ...