第十一周作业

1. 总结 tomcat实现多虚拟机

在Tomcat服务器配置server.xml文件中添加Host配置块

name:定义虚拟机服务器名称,也就是网站域名
appBase:定义存放网站内容的文件目录
prefix:定义虚拟机的访问日志名称,每个虚拟机建议都单独存放一份访问日志
pattren:定义访问日志的格式

2. 总结 tomcat定制访问日志格式和反向代理tomcat

Tomcat日志格式的定义在server.xml配置文件中,Host配置块,pattern项中, 由于考虑到Tomcat工作负载很重,访问日志可以定义在反向代理的Nginx服务器上,以缓解Tomcat的工作压力。

实现Tomcat的反向代理,可以使用Nginx实现。在Nginx代理服务器上主配置文件中定义字配置文件目录,创建子配置文件Tomcat.conf

nginx反向代理

upstream定义被代理的服务器tomcat:10.0.0.201和10.0.0.202,在server中定义代理的域名和端口,proxy_pass引用被代理的集群

3. 完成 tomcat实现MSM集群

部署规划:10.0.0.201 Tomcat1服务器
                  10.0.0.202 Tomcat2服务器
                  10.0.0.100 memcached1数据库
                  10.0.0.101 memcached2数据库
                  10.0.0.200 做Nginx代理服务器

采用非Sticky模式,提供容错性

1.安装Tomcat1服务和Tomcat2服务,启用Nginx代理

安装好服务后,在tomcat/webapps/ROOT目录中准备好观察session的jsp文件
Nginx做反向代理

2.在Tomcat服务器上安装mem的java库文件

将这些库文件放到/usr/local/tomcat/lib目录下

3.准备memcached数据库
采用包安装
Rocky安装:yum install -y memcached
Ubuntu安装:apt update && apt install -y memcached

安装后修改/etc/memcached.conf开启远程连接数据库,重启memcached服务
测试一下是否能远程连接到memcached

4.修改每台Tomcat服务器的/usr/local/tomcat/conf/context.xml配置文件

添加这段代码,然后重启Tomcat服务

打开浏览器刷新访问,实现session的会话保持

sessionID不变
sessionID不变

4. 总结 JVM垃圾回收算法和分代

垃圾回收算法:
    标记清楚算法:标记阶段,将所有标记存活的对象逐个标记,清理阶段,遍历整个堆,将未标记的对象逐一清除。优点是算法简单效率高,缺点是会造成内存碎片,内存空间不连续。
    标记压缩算法:标记阶段,将所有访问的对象逐个标记。内存清理阶段时,整理时将标记存活对象向内存一端移动,整理后存活对象连续的集中在内存一端。优点是没有内存碎片,内存空间连续,缺点是垃圾回收效率低。
    复制算法:将可用内存分为大小相同两块区域A和B,每次只用其中一块,A用完后,则将A中存活的对象复制到B。复制到B的时候连续的使用内存,最后将A一次性清除干净。优点是垃圾回收效率高,也没有内存碎片,缺点是浪费内存,资源消耗大

堆内存空间分为三个不同的类别:
    年轻代,老年代,持久代
年轻代又分为伊甸园区(刚刚创建的对象)和幸存区(幸存区分为from和to,地位相同,可以互相转换)。年轻代的对象存活时长低,适合使用复制算法。
老年区(长时间存活的对象)。老年代区域大,对象存活时间长,适合标记压缩算法。


5. 总结memcache使用,安装和MSM原理

memcached可以包安装:Rocky(yum install -y memcached)Ubuntu(apt install -y memcached)
编译安装:在memcached官网下载源码包,并安装编译依赖包(gcc make libevent-dev),解压,执行./configure,make && make install

安装完成后,修改配置文件,允许远程连接memcached数据库,启动服务,端口号11211

注释掉此行,即可实现远程链接

memcached在运行时必须使用普通用户,远程连接可以使用nc命令指定mem地址和端口号

memcached的工作机制采用了Slab Allocator机制来分配、管理内存。获取一块1M的内存空间后,Slab分配内存按照固定的字节大小等分成为chunk,memcached会根据数据的大小决定选择存到哪个chunk中。
Slab按照Chunk的大小分组,就组成不同的Slab Class, 第一个Chunk大小为 96B的Slab为Class1,第二个Chunk大小为 120B为Class 2,如果有100bytes要存,那么Memcached会选择下图中SlabClass 2 存储。Slab之间的差异可以使用Growth Factor(因子)控制,默认1.25

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容

  • java动态网页技术 servlet 本质就是一段Java程序 在Servlet中最大的问题是,HTML输出和Ja...
    Liang_JC阅读 491评论 0 0
  • 1、haproxy https实现 配置haproxy,执行SSL加解密 配置nginx日志,记录x-forwar...
    yabao11阅读 253评论 0 0
  • 请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String...
    magicflute01阅读 143评论 0 0
  • 1、简述DNS服务器原理,并搭建主-辅服务器。DNS(Domain Name Service的缩写)的作用就是根据...
    马晖阅读 177评论 0 0
  • 1、编译安装搭建wordpress 软件介绍 WordPress是一个免费的开源项目,在GNU通用公共许可证下授权...
    卫清华阅读 160评论 0 0