1. 程式人生 > >分散式系統實時統計線上人數

分散式系統實時統計線上人數

我們知道在分散式系統中,一個登陸應用可能被分開部署了多臺伺服器。想要統計實時的線上人數,需要藉助一箇中間件,我這裡用的是memcached。

這裡必須說明一點,很多情況下,使用者是不會手動點選登出按鈕的,所以我們無法拿到一個非常精確的實時線上的一個數據,只能拿到一個近似實時的一個值。

我之前有篇文章說的是單點登陸,有興趣可以參考下,單點登陸sso

單點登陸的時候,會以cookie為key,使用者ID為值,寫入memcached,並設定一個過期時間,等到過期時間到了,這條記錄會自動刪除。我們可以利用這個原理來實現實時統計線上人數。當然過期時間設定的越短,越接近真正的實時線上的人數。

所有單點登陸cookie的值都做上一個標記,比如都以“sso-”開頭。定時任務5分鐘(或者更短時間,看具體業務需求)定時去查一次memcached中所有以“sso-”開頭的key的數量,然後存庫。

至於存庫後,如何展示,就看你的需要了,可以做一個折線的報表5分鐘重新整理一次。

這樣就能實時展示網站的線上人數,方便統計哪個時間段的訪問量大,可以針對性的做一些事情。

相關推薦

分散式系統實時統計線上人數

我們知道在分散式系統中,一個登陸應用可能被分開部署了多臺伺服器。想要統計實時的線上人數,需要藉助一箇中間件,我這裡用的是memcached。 這裡必須說明一點,很多情況下,使用者是不會手動點選登出按鈕的,所以我們無法拿到一個非常精確的實時線上的一個數據,只能拿

監聽器的應用一(統計線上人數)

1.web,xml配置 2.監聽類的配置 3.jsp頁面的顯示 web,xml <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

JavaWeb中的application統計線上人數案例

import java.util.HashSet; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.Htt

簡單的java web 統計線上人數實現方法

建立一個class頁面 實現ServletContextListener和HttpSessionListener介面 import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;im

ASP.NET中利用Application和Session統計線上人數、歷史訪問量

          先來簡單說一下ASP.NET中的Application和Session           下圖是我們非常熟悉的Web應用程式的結構:                    在這張圖中,Web伺服器中執行的Web應用程式就是我們所說的Applicati

用echarts統計線上人數包括獲取後臺真正的資料

       echarts官網上面的模板講的非常詳細,但都只是給定的資料出來的效果,而在實際的開發中當然需要獲取後臺真正的資料,這是一個統計一天中每個小時的線上人數的折線統計圖:(圖來自測試階段資料不是很全,橫軸應該是0-24點)下面上程式碼:jsp頁面:<%--

session監聽器(可用於統計線上人數,當前客戶)

在系統執行中,有時候我們想了解下當前使用系統的使用者,有多少人在使用系統?具體是哪些人在使用系統? 這時候,就可以通過session監聽器(javax.servlet.http.HttpSessionAttributeListener 介面)的功能來實現。當

如何統計線上人數

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><script type="text/

asp.net統計線上人數

統計線上使用者的作用不言而喻,就是為了網站管理者可以知道當前使用者的多少,然後根據使用者數量來觀察伺服器或者程式的效能,從而可以直觀的瞭解到網站的吸引力或者網站程式的效率。現在,我們就介紹一個簡單明瞭的方法來統計線上使用者的多少,該方法的特點就是充分的利用了ASP.NET

【ASP.NET】——統計線上人數、歷史訪問人數

    北大青鳥的視訊中講了很多很實用的例子,這是其中一個,在實現的過程中,遇到一些問題,但也都在老師的指導下和通過查閱資料解決了,感覺收穫頗豐。     在做這個例子的時候發現:ASP.NET的

巧用session機制實現使用者不重複登入、記錄使用者登入日誌、統計線上人數

HttpSessionBindingListener 這個具體的使用文件自查,本篇中是新建了一個類實現本介面 public class UsersOnlineCountListener implements HttpSessionBindingListe

JavaEE——線上人管理系統(顯示線上人數線上人詳細資訊、管理員踢人)

這篇部落格是filter、listener和servlet技術的相關總結,實現了簡單的顯示線上人數、線上人詳細資訊、管理員踢人功能 下面是詳細程式碼 web.xml <?xml version="1.0" encoding="UTF-8"?>

spring-boot通過HttpSessionListener監聽器統計線上人數

首先說下,這個統計線上人數有個缺陷,一個人線上可以同時擁有多個session,導致統計有一定的不準確行。 接下來,開始程式碼的編寫, 第一步:實現HttpSessionListener中的方法,加上註解@WebListener @WebListener public cla

監聽器小例子之統計線上人數

監聽器小例子 統計同時線上人數: 每當有一個使用者登入的時候在伺服器端建立一個session物件,寫一個監聽器,監聽session的建立與銷燬,每當建立一個session物件的時候就把計數器+1,然

使用HttpSessionListener介面監聽Session的建立和失效(可以用於統計線上人數

轉自:http://uule.iteye.com/blog/824115 HttpSessionListener :    Session建立事件發生在每次一個新的session建立的時候,類似地Session失效事件發生在每次一個Session失效的時

Servlet監聽器(統計線上人數案例)

1、監聽器     (1)什麼是監聽器         servlet規範當中定義的一種特殊的元件,用來監聽servlet容器產生的事件並進行相應的處理。         事件主要有兩大類:     

web專案統計線上人數

1、定義一個監聽器,實現HttpSessionBindingListener介面(MySessionListener.java) package com.ilfy.lbjn.listener;

springboot 用監聽器統計線上人數,小案例

本文在springboot 的專案,用HttpSessionListener 監聽器(監聽器的其中一種) 統計線上人數,實質是統計session 的數量。 思路很簡單,但是有個細節沒處理好,讓我除錯了大半天,才把bug搞好。 先寫個HttpSessionListener 監

java統計線上人數

在web.xml檔案中新增<!-- 統計線上 監聽 --> <listener> <listener-class>com.connxun.config.listener.OnLineListener</listener-cla

Flume+Kafka+Storm+Redis構建大數據實時處理系統實時統計網站PV、UV+展示

大數據 實時計算 Storm [TOC] 1 大數據處理的常用方法 前面在我的另一篇文章中《大數據采集、清洗、處理:使用MapReduce進行離線數據分析完整案例》中已經有提及到,這裏依然給出下面的圖示: 前面給出的那篇文章是基於MapReduce的離線數據分析案例,其通過對網站產生的用戶訪問