lnt+memcache实现seesion共享
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lnt+memcache实现seesion共享相关的知识,希望对你有一定的参考价值。
说明
上一章节 nginx+tomcat+redis负载均衡,实现session共享,本次我们使用另一种方式来实现session会话共享,以及实现一套线上运行的环境,
重定提示
本次将重点列于 memcache 以及keepalived功能的实现上
实验环境
jdk: 8u141
tomcat: 8.5.30 * 2
nginx: 1.12.1 * 2
keepalived: yum
memcache: yum * 2
ansible: yum
IP地址: 192.168.172.129-134 总六台 第一次手动加简单的ansible,第二次直接用ansible其它的(学习中)
软件下载:
memcached-session-manager
需要下载的包[memcached-session-manager-tc8-2.3.0、spymemcached-2.12.3、memcached-session-manager-2.3.0、msm-javolution-serializer-2.1.1,javolution-5.4.3.1]
java 需要下载的包jdk-8u141-linux-x64
拓扑图
拓扑-实验说明
??1、keepalived实现Nginx负载均衡高可用, keepalived实现服务高可用将在本章节实现它;
??2、nginx反向代理tomcat服务器,我们这里反代将不在使用ip地址的方式,直接使用主机名来实现,当tomcatA挂掉之后直接上线tomcatB替代但主机名不变,使用docker network方式;
??3、session保持我们将直接使用memcacehd的方式来实现,本章将重点来强调它,以及最后与redis的对比;
??4、有木有招人的收了我吧,名称即我Q可随时加我,北京地区。
??5、如果想实现数据库的预热功能以及KEY对应memcached的功能,那就需要跟开发对接一下了。
memcache说明
memcache特点
??Memcached是一个开源的,高性能的内存绶存软件,memcached作为高速运行的分布式缓存服务器,具有以下的特点。
- 1、完全基于内存缓存
- 2、节点是完全独立的
- 3、缓存的数据都是以kv的形式存在
- 4、无持久化机制,一旦重启服务器,这部分数据将全部丢失
- 5、当内存缓存的数据容量超过设定的内存值时,就自动使用Lru算法删除过期的kv对
- 6、memcache会对设定的内存进行分块,再把块分组,然后提供服务
- 7、cs架构
- 8、memcached不互相通信的分布式,实现为一致性Hash取模, ( 3台mem每次存储只存一台 N%3,取也是一样 )
memcace教程
??Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。
??一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
相关提问
1、Memcached是什么,有什么作用?
??Memcached是一个开源的,高性能的内存绶存软件
??作用:通过事先规划好的内存空间中临时缓存数据库中的各类数据,以达到减轻数据库的直接并发访问,从而提升数据库的访问性能。
2、memcache内存管理机制
??memcache利用slab allocation机制来分配和管理内存,大概原理,先按照预定的大小,将分配memcache的内存分割成特定长度的内存块,再将块分组,这些内存块不会释放,可以重复利用。
??Slab Allocator的缺点: 由于分配的是固定的长度,因为无法有效的利用分配内存
3、memcache与redis有哪些区别
??数据类型:redis比memcache支持更多的数据类型,数据特性,如set list
??性能:memcache是完全基于内存的,而redis是支持持久化的 redis的缓存是比不上memcached的, 但memcached重启之后数据就会完全丢失
??持久化: memcache一旦重启,数据将全部丢失,redis有多种机制比如,主从,哨兵+主从,集群的方式
4、Memcached服务分布式集群如何实现?
??Memcached集群和web服务集群是不一样的,所有Memcached的数据总和才是数据库的数据。每台Memcached都是部分数据。
1、安装
1.1、IP地址分配说明
1.2、机器互信
yum -y install ansible
# Host ]# vim /etc/ansible/hosts 最后添加所有主机
[all]
192.168.175.129
192.168.175.130
192.168.175.131
192.168.175.132
192.168.175.133
192.168.175.134
# 直接免交互输入
Host ]# ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
Host]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Host]# scp ~/.ssh/authorized_keys [email protected]:/root/.ssh/
进行测试
Host]# ansible all -a date
192.168.175.129 | SUCCESS | rc=0 >>
2018年 05月 05日 星期六 23:40:34 CST
....... 成功
以上是关于lnt+memcache实现seesion共享的主要内容,如果未能解决你的问题,请参考以下文章
TomcatTomcat + Memcached 实现session共享
构建memcached服务,Tomcat实现session共享
Tomcat基于MSM+Memcached实现Session共享
高级运维:构建memcached服务LNMP+memcached使用Tomcat设置SessionTomcat实现session共享