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共享

Memcached实现Session共享

Tomcat基于MSM+Memcached实现Session共享

高级运维:构建memcached服务LNMP+memcached使用Tomcat设置SessionTomcat实现session共享

nginx+tomcat8+memcached实现session共享