论实现序列化的在云端的必要性-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

论实现序列化的在云端的必要性

简介:

对于java实现序列化的重要性,在单机程序内是不太容易被重视的,在本地调试中,tomacat自动为为序列化的程序实现了序列化,而且bean(用来实现缓存的java程序)太小,不会出现什么问题。

但是一旦部署到云端,麻烦就出现了,就会发现session为什么存不进值呢?不久前我在新浪云云端部署session就出现了未能取不到值的问题。

论实现序列化的在云端的必要性

针对新浪云服务器,session的信息使用的是分布式Memcache存储。

而Memcache存储呢?

不少想构建大负载的网站都采取Memcache来分担数据库的压力。

Memcache首先在服务器端的内存中开辟一个空间,然后建立一个hash表。

memcache 以守护程序的形式运行在服务器端(一个或者多个服务器),随时接受来自客户端的连接操作,然后进行存取数据,Memcache是一款nosql内存数据库。采用的是键值存储,每个客户端存入的对象都有一个唯一的key。但是对象是没办法持久化的,跟memcache很相似的redis是可以实现持久化到硬盘的。然后把客户端需要缓存的数据以key-value的形式保存在服务器的内存中的,value值存入key值hash转化后的对应的某个服务器上。取值的时候通过同样的转化后对响应的服务器上付出请求即可。

而在序列化在在其中起到什么作用呢?

在memcache缓存到内存的时候,是需要使用到序列化存储的,因此如果你的bean包中的代码都没实现序列化接口,在缓存的时候是不会被缓存到服务器内存中的,这样就造成了session并没有存值的问题发生。

所以在部署到新浪云的程序存储到session中的对象必须实现序列化接口才可以进行session存储的。


本文作者:佚名

来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: