第十一周-云计算运维作业

news/2024/9/20 22:39:20/文章来源:https://www.cnblogs.com/civetcat/p/18304323
  1. 总结 tomcat实现多虚拟机

vim ../conf/server.xml

<Host name="www.b.com"  appBase="/data/website2/"unpackWARs="true" autoDeploy="true">
</Host><Host name="www.a.com"  appBase="/data/website3/"unpackWARs="true" autoDeploy="true">
</Host>
  1. 总结 tomcat定制访问日志格式和反向代理tomcat

<Valve className="org.apache.catalina.valves.AccessLogValve" #类名directory="logs" #存储目录 prefix="localhost_access_log"#可选,默认为空 localhost_access_log 将生成如 localhost_access_log.2024-08-05.txt 这样的文件名。suffix=".txt" #日志后缀pattern="%h %l %u %t &quot;%r&quot; %s %b %D" #日志格式fileDateFormat="yyyy-MM-dd" /> #可选 日志文件名中的日期格式

日志格式标记
%h - 远程主机名
%l - 远程逻辑用户名(通常为-)
%u - 远程用户身份(通过 HTTP 认证)
%t - 请求时间
%r - 请求的第一行
%s - 响应状态码
%b - 发送的字节数(不包括 HTTP 头)
%D - 请求处理时间,以毫秒为单位

nginx反向代理tomcat

upstream tomcat {ip_hash; #调度算法 
server 10.1.1.111:8080;
server 10.1.1.111:8080;}location / {proxy_pass http://tomcat;   }
  1. 完成 tomcat实现MSM集群
ip 服务 软件
192.168.1.130 调度代理 rocky8 nginx
192.168.1.132 服务器 rocky8 tomcat(9.0.75) jdk(8u371) memcached
192.168.1.133 服务器 rocky8 tomcat(9.0.75) jdk(8u371) memcached

调度器

vim /etc/nginx/nginx.conf

http {upstream tomcat-server {server t1.org:8080;server t2.org:8080;}server {location / {}location ~* \.(jsp|do)$ {proxy_pass http://tomcat-server;}

vim /etc/hosts

192.168.1.132 t1.org t1
192.168.1.133 t2.org t2

服务器
vim /etc/sysconfig/memcached

#OPTIONS="-l 127.0.0.1,::1" #注释

配置tomcat
vim conf/server.xml

##tomcat1<Engine name="Catalina" defaultHost="t1.zz.org" jvmRoute="Tomcat1">  <Host name="t1.zz.org" appBase="/data/webapps" autoDeploy="true" > </Host>  </Engine>
##tomcat2<Engine name="Catalina" defaultHost="t2.zz.org" jvmRoute="Tomcat1">  <Host name="t2.zz.org" appBase="/data/webapps" autoDeploy="true" > </Host>  </Engine>

vim conf/context.xml

 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:192.168.1.132:11211,n2:192.168.1.133:11211"                     failoverNodes="n1" #tomcat则为n2requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFact
ory"/> #写入倒数第一行上

vim /data/webapps/ROOT/index.jsp #server.xml中的appbase位置

<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>tomcat test</title>
</head>
<body>
<h1> tomcat website </h1>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
##显示服务器名称、服务器的本地 IP 地址和端口号、会话 ID 以及当前的日期和时间。这些输出将在每次请求页面时动态生成。

将对应版本的jsp文件放入tomcat/lib中;并重启

查看结果:

  1. 总结 JVM垃圾回收算法和分代
    JVM的垃圾确认机制是 Garbage 垃圾确定方法,每个使用的内存都有一个引用标记器,当内存没有引用数后标记为垃圾。

回收算法

  1. 标记-清除 Mark-Sweep
    标记阶段,找到所有可访问对象打个标记。清理阶段,遍历整个堆清理未标记对象(无引用数)的内存。
    优点:
    算法简单
    缺点:
    标记-清除最大的问题会造成内存碎片,但是不浪费空间,效率较高(如果对象较多时,逐一删除效率也会受到影响)

  2. 标记-压缩 (压实)Mark-Compact
    将上述的内存清理阶段时,整理时将对象向内存一端移动,整理后存活对象连续的集中在内存一端。
    特点:
    标记-压缩算法好处是整理后内存空间连续分配,有大段的连续内存可分配,没有内存碎片。
    缺点:
    内存整理过程有消耗,效率相对低下

  3. 复制 Copying
    先将可用内存分为大小相同两块区域A和B,每次只用其中一块,比如A。当A用完后,则将A中存活的对象复制到B。复制到B的时候连续的使用内存,最后将A一次性清除干净。
    特点:
    无碎片,效率高
    缺点:
    只有一半的内存使用率

JVM分代
image
Heap堆内存分为
年轻代Young:Young Generation
伊甸园区eden: 只有一个,刚刚创建的对象
幸存区Servivor Space:有2个幸存区,一个是from区,一个是to区。大小相等、地位相同、可互换。
from 指的是本次复制数据的源区
to 指的是本次复制数据的目标区
老年代Tenured:Old Generation, 长时间存活的对象
永久代:JDK1.7之前使用, 即Method Area方法区,保存JVM自身的类和方法,存储JAVA运行时的环境信息, JDK1.8后 改名为 MetaSpace,此空间不存在垃圾回收,关闭JVM会释放此区域内存,此空间物理上不属于heap内存,但逻辑上存在于heap内存。

年轻代垃圾处理:
eden生成对象,放满之后将标记的放入幸存区,幸存区两个区可以互相转换(进行回收时标记对象相互转移),而未标记则都回收。
当幸存区中有长期存在的对象则放入老年代(老年代不经常做回收),当老年代满时,则将所有空间进行垃圾回收。

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

memcache是个内存数据库

Memcache使用:
缓存数据:

  • 将数据存入内存,减少访问延迟。
  • 使用键值对的方式存储数据,键是唯一的标识符,值是需要缓存的数据。

设置数据:

  • 使用 set(key, value, expiration_time) 方法将数据缓存到 Memcache 中。
  • key 是数据的标识符,value 是要缓存的内容,expiration_time 是数据的过期时间。

获取数据:

  • 使用get(key)通过键获取

删除数据:

  • 使用delete(key)删除

数据更新:

  • 再次调用set

memcache安装:

使用yum仓库安装:

yum install memcached

编译安装(使用脚本):

MEMCACHED=memcached-1.6.20
INSTALL_DIR=/apps/memcachedyum -y install gcc  libevent-devel
tar xvf $MEMCACHED.tar.gz
cd $MEMCACHED/
./configure  --prefix=$INSTALL_DIR
make && make installecho PATH=$INSTALL_DIR/bin:'$PATH' > /etc/profile.d/memcached.sh
. /etc/profile.d/memcached.shuseradd -r -s /sbin/nologin memcached

MSM原理

MSM 是 Memcache Session Management 的简称,用于在 Web 应用中管理用户会话,通常与 Memcache 结合使用。
服务器将用户数据如(session等信息)存入内存,通过memcache管理。而通过memcache实现多个服务器的信息迁移,保证用户的会话数据一致性和快速读写。但非持久化,会自动过期,适合短期高效的存储数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/784610.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从高斯消元法到特征值特征向量

帮助具有特征值和特征向量等线性代数的基础概念但不能理解其意义的读者理解特征值和特征向量出现的意义。从高斯消元法到矩阵乘法、用矩阵乘法的两套解释逻辑解释相似矩阵,用相似矩阵解释特征值和特征向量。摘要: 帮助具有特征值和特征向量等线性代数的基础概念但不能理解其意…

[rCore学习笔记 025]分时多任务系统与抢占式调度

写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 本节重点 本章最开始的时候讲解了有类似于多道程序与协作式调度的区别. 回想上一节,我们提到的,如果我们仍然是不使用上一节实现…

自动化部署、通知、分布式构建与并行构建(jenkins pipeline)

jenkins与ansible集成应该需要在Jenkins上安装一下[root@mcw15 plugins]# yum install -y ansible打开配置[root@mcw15 plugins]# vim /etc/ansible/ansible.cfg [root@mcw15 plugins]# grep host_key_checking /etc/ansible/ansible.cfg host_key_checking = False [root@mcw…

【待做】Windows反沙箱检测

免责声明 本文仅用于学习和技术研究,读者利用本文所提供的信息造成的任何直接或间接的影响和损失均由该读者负责,文章作者不为此承担任何责任,请遵守国家网络安全法,维护良好的网络环境。前言 本文将介绍有关杀软行为检测中沙箱云传的一些对抗技巧,比较知名的杀软都会将可…

PyCharm 使用 Anaconda 管理多版本 Python 环境

1、开始 ——> 打开Anaconda Prompt工具2、 conda --version3、查看当前版本 python --version4、 conda create --name python-310 python=3.10# 执行后,会提示要安装相关数据包 Proceed ([y]/n)? 输入y, 回车5、打开pycharm,file-->setting-->Project:xxx--> …

WSL2共享Windows代理网络

1. 打开clsh局域网连接2. 在Windows用户目录下新建文件.wslconfig3. 关闭wsl并编写文件内容 wsl --shutdown [wsl2] memory=8GB processors=8 [experimental] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true sparseVhd=tr…

华为云里通过apt get 无法更新到最新版的解决办法。升级你的Ubuntu Linux内核版本

超级用户指南:轻松升级你的Ubuntu Linux内核版本 - 知乎 (zhihu.com) 推荐使用

Caffeine

Caffeine 是java中的高性能本地缓存,提供了丰富的缓存功能。Caffeine 的目标是提供一个高吞吐量、低延迟、并发友好的缓存实现。 特点高性能:Caffeine 是基于内存的本地缓存,访问速度非常快,并且在高并发环境下表现优秀。 低延迟:由于数据直接存储在应用程序的本地内存中,…

龙哥量化:TB交易开拓者_趋势跟踪策略_多策略对单品种_A00011880206期货量化策略,严格的用样本内参数, 跑样本外数据,滚动测试未来行情

如果您需要代写技术指标公式, 请联系我。 龙哥QQ:591438821 龙哥微信:Long622889 也可以把您的通达信,文华技术指标改成TB交易开拓者的自动交易量化策略。 量化策略介绍投资标的:菜籽油(多策略对单品种)。策略分类:趋势策略。策略周期:3分钟。策略风格:短线波段,连…

DC-7

靶机介绍靶机下载地址:https://download.vulnhub.com/dc/DC-7.zip 环境搭建下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版kali攻击机:192.168.98.136 靶机渗透 信息收集 扫描主机 ​​靶机ip:192.168.…

Back-off restarting failed container

修改 为下面 可以询问gpt要到正确配置

Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container “

报错信息 Warning FailedCreatePodSandBox 28m kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "899b2a80f185eadd9ea231a8991ce5e9d92076cab46917b1e5653f333561df03" network for pod "nginx-…