0%

Java Web(三) 会话机制,Cookie和Session详解

一、会话机制

Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

一次会话指的是:就好比打电话,A给B打电话,接通之后,会话开始,直到挂断电话,该次会话就结束了,而浏览器访问服务器,就跟打电话一样,浏览器A给服务器发送请求,访问web程序,该次会话就已经接通,其中不管浏览器发送多少请求(就相当于接通电话后说话一样),都视为一次会话,直到浏览器关闭,本次会话结束。其中注意,一个浏览器就相当于一部电话,如果使用火狐浏览器,访问服务器,就是一次会话了,然后打开google浏览器,访问服务器,这是另一个会话,虽然是在同一台电脑,同一个用户在访问,但是,这是两次不同的会话。

阅读全文 »

Oracle 的三种高可用集群方案

RAC(Real Application Clusters)

多个 Oracle 服务器组成一个共享的 Cache,而这些 Oracle 服务器共享一个基于网络的存储。这个系统可以容忍单机/或是多机失败。不过系统内部的多个节点需要高速网络互连,基本上也就是要全部东西放在在一个机房内,或者说一个数据中心内。如果机房出故障,比如网络不通,那就坏了。所以仅仅用 RAC 还是满足不了一般互联网公司的重要业务的需要,重要业务需要多机房来容忍单个机房的事故。

阅读全文 »

当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。本文,我们将比较业界两个最流行的开源搜索引擎,Solr和ElasticSearch。两者都建立在Apache Lucene开源平台之上,它们的主要功能非常相似,但是在部署的易用性,可扩展性和其他功能方面也存在巨大差异。

阅读全文 »

作为两大主流开源云平台,OpenStack和CloudStack各具优势。CloudStack安装和部署都很方便,OpenStack框架相对开放灵活,可以根据用户需求方便的进行开发定制。本文中,博主通过自身基于OpenStack搭建公司私有云平台的实战经验,对OpenStack实施私有云落地的需求进行梳理,综合产生个人的观点和评价并和读者分享。
之前一段时间的工作,基于OpenStack搭建公司私有云平台。
借此机会梳理了一下OpenStack实施私有云落地的选项,以飨各位读者。

阅读全文 »

经典进程同步问题-哲学家进餐问题

问题描述

一张圆桌上坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子的中间是一碗米饭。哲学家们倾注毕生精力用于思考和进餐,哲学家在思考时,并不影响他人。只有当哲学家饥饿的时候,才试图拿起左、 右两根筷子(一根一根地拿起)。如果筷子已在他人手上,则需等待。饥饿的哲学家只有同时拿到了两根筷子才可以开始进餐,当进餐完毕后,放下筷子继续思考。

阅读全文 »

操作系统中颠簸(thrashing)解决办法
在更换页面时,如果更换页面是一个很快会被再次访问的页面,则再次缺页中断后又很快会发生新的缺页中断。
整个系统的效率急剧下降------这种现象称为颠簸(抖动)
----内存颠簸的解决策略是:
1-如果是因为页面替换策略失误,可以修改替换算法来解决这个问题;
2-如果是因为运行的程序太多,造成程序无法同时将所有频繁访问的页面调入内存,则要降低多道程序的数量。
3-否则,还剩下两个办法:1终止该进程;2增加物理内存容量;

马斯洛语录:如果你的手里只有锤子,那么你的眼里只有钉子.

其实也就是人的本位思考能力,屁股决定那脑袋。

事件管理的宗旨是最短时候恢复故障,从而将故障的损失降到最低,在此前提下尽可能满足服务的要求。因此,事件管理突出的就是恢复企业的业务,启用备份,容灾系统等手段,第一时间采取各种措施来恢复企业生产,这就要求服务台将紧急故障定义为最高优化级,从而确保工单的快速流转,通过各IT部门密切配合来排除故障。
当紧急故障得以处理,信息中心就会转而进入问题管理的层面,以便找到故障发生的原因,从而改变频于应付突出事故的局面。与事件管理的根本区别就在于,事件管理目的在于恢复企业生产,而问题管理在于找出IT故障的根本原因,制定解决方案,防止类似故障的再次发生。

1、许多项目环境需要引入某种形式的变更管理工作流,或者说所有的变更需要经历多个阶段(比如开发、测试、生产上线)以及相应的许可批准从而进行至下一阶段。这一问题通常被称为变更管理(Change Request Management)。

变更可以是开发系统上的某个配置更改,某个代码commit或是若干bug fix的集合;变更具有不同类型(来适配对应的生命周期);变更可以来源于某个issue,或是某个新功能需求。变更管理会涉及特定的人员角色如变更经理(Change Manager)等履行不同的职责。 (http://projects.puppetlabs.com/projects/1/wiki/Change_Management)

构建这一流程的优势在于:减少变更对于业务的影响、增加变更的透明度和沟通、减少可能的变更撤销、适应大规模的变更、为进行影响分析(impact analysis)提供可能

Q:在你的项目经验中,对于变更的管理是否应用了简单的issue tracking之上的具体流程?

2、我会假设一个软件项目的系统环境是三层系统架构:开发(Dev)——测试(QA)——生产(Prod)。在现今互联网应用前所未有复杂,对业务空前重要的情况下,在部署系统更新或例行配置更改时我们必须保证配置或更改对于所有特定的环境(数据库,Web Server、Application Server或者Middleware Container)都是正确的;然而,如果存在一些没有列入文档、不遵循流程的手工更改,要识别一个在QA系统上测试通过的应用和在生产环境上的那份程序是不是相同版本会很困难且容易出错。而且撤回上一次更改重新迭代的情况也屡见不鲜。

阅读全文 »

作者结合阿里巴巴在架构转型的经验,谈了阿里从单体的架构转型到分布型架构的历程。书名中提到的中台,其实是阿里的IT架构中的中台,按作者的说法就是共享服务(IT服务)中心,具体见下图:

本书总体的思路是,见下图:

阅读全文 »