微服务架构(java环境&tomcat)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 微服务架构(java环境&tomcat)

在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# tail -n4 /etc/profile
export JAVA_HOME=/usr/local/java 
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

Jave Runtime Environment JAVA运行时环境
类文件路径
命令文件 或者可执行脚本

[root@localhost ~]# tar -zxf apache-tomcat-8.5.35.tar.gz 
[root@localhost ~]# mv apache-tomcat-8.5.35 /usr/local/tomcat

开启:
/usr/local/tomcat/bin/startup.sh
关闭:
/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/logs/catalina.out 日志文件

1.tomcat多实例
端口 8080
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
tomcat配置文件解析 server.xml
https://www.cnblogs.com/kismetv/p/7228274.html#title3

在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/hello
[root@localhost ~]# cd /usr/local/tomcat/webapps/hello
[root@localhost hello]# echo "hello world" > index.jsp

nginx apache --> html index.html

在这里插入图片描述
1.目录浏览
curl http://192.168.6.10:8080/hello/ ---》目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
JVM内存监控
在这里插入图片描述

<%
Runtime rtm = Runtime.getRuntime();
long mm = rtm.maxMemory()/1024/1024;
long fm = rtm.freeMemory()/1024/1024;
long tm = rtm.totalMemory()/1024/1024;

out.println("JVM memory detailed info:<br>");
out.println("Max memory: "+mm+"MB"+"<br>");
out.println("Free memory: "+fm+"MB"+"<br>");
out.println("Total memory: "+tm+"MB"+"<br>");
out.println("Available memory: "+(mm+fm-tm)+"MB"+"<br>");
%>

在这里插入图片描述
Max memory: 405MB最大内存
Free memory: 21MB剩余内存
Total memory: 101MB总内存
Available memory: 325MB可用内存

JMX远程调用 Tomcat远程调用
在这里插入图片描述

307 CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.6.10
308 -Dcom.sun.management.jmxremote
309 -Dcom.sun.management.jmxremote.port=8080
310 -Dcom.sun.management.jmxremote.ssl=false
311 -Dcom.sun.management.jmxremote.authenticate=true"

vim jmxremote.password
最后两行改密码
在这里插入图片描述
首先另外一台机器有java环境 两面关闭防火墙、宽容模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用管理器
App manager tomcat应用管理器 基于上面的操作
主机管理平台 host manager
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用管理
应用部署方式:
1)add manager
2)手动
效率提升---》交互--》非交互
①方法

cp bdqnweb.war /usr/local/tomcat/webapps/
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

②方法

mkdir /usr/local/tomcat/webapps/bdqnweb
unzip bdqnweb.war -d /usr/local/tomcat/webapps/bdqnweb

③方法
在这里插入图片描述
host manager 主机(host)管理
在这里插入图片描述
在这里插入图片描述
允许所有的主机

创建角色
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
tomcat优化
1)安全(tomcat加固)
端口防护 8080---》非8080
禁用目录浏览
禁用后台管理 app manager

在这里插入图片描述
服务器隐藏
apache tomcat/8.5.35
思路:对于可能出现的错误代码 进行错误页面优化
vim /usr/local/tomcat/conf/web.xml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1)内核参数优化
2)JVM内存优化
3)模型优化
4)并发优化

[root@localhost hello]# echo 'net.ipv4.ip_local_port_range 
> net.ipv4.tcp_syn_retries=2
> net.ipv4.tcp_synack_retries=2
> net.ipv4.tcp_keepalive_time=1500
> net.ipv4.tcp_fin_timeout=15
> net.ipv4.tcp_max_syn_backlog=20000
> net.core.netdev_max_backlog=65535' >> /etc/sysctl.conf

在这里插入图片描述
nfs--》rpcbind--》32768-65535
2048 - 65535
6379 8080 11211 9092 2181
分布式 TCP三次握手和四次握手
syn队列的长度 1024
网卡接收 》 处理速度

JVM内存优化
在这里插入图片描述
Xms最小内存
Xmx最大内存

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
62行的命令最后应该在/usr/local/apr/lib
在这里插入图片描述
1.BIO blocking I/O 阻塞I/O
效率低 并发性能很差
2NIO nonblocking I/O 非阻塞I/O
基于系统缓冲区 可以提供非阻塞I/O操作 拥有比BIO更高的并发
3.APR apache portable runtime apache 便携运行时
调用heeptd的动态链接库来进行文件的读取和传输
提高tomcat对静态文件的处理能力 是tomcat高并发的首选模式

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

88行:复制 双引号内org.apache.coyote.http11.Http11NioProtocol
修改Apr
在这里插入图片描述
在这里插入图片描述
并发优化
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
在这里插入图片描述

相关文章
|
3天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
3天前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
21 0
|
8天前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
2天前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
1天前
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
3天前
|
消息中间件 Java 网络架构
AMQP与微服务架构的集成策略
【8月更文第28天】在微服务架构中,各个服务通常通过HTTP/REST、gRPC等协议进行交互。虽然这些方法在很多场景下工作得很好,但在需要高并发、低延迟或需要处理大量消息的情况下,传统的同步调用方式可能无法满足需求。此时,AMQP作为异步通信的一种标准协议,可以提供一种更为灵活和高效的消息传递机制。
13 1
|
8天前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
在5G电信领域,Kubernetes集群中部署微服务至关重要,但也带来了重大的安全挑战。Istio作为一个强大的开源服务网格,能有效地管理这些微服务间的通信,通过其控制平面自动将Sidecar代理注入到各微服务Pod中,确保了安全且高效的通信。Istio的架构由数据平面和控制平面组成,其中Sidecar代理作为Envoy代理运行在每个Pod中,拦截并管理网络流量。此外,Istio支持多种Kubernetes发行版和服务,如EKS等,不仅增强了安全性,还提高了应用性能和可观测性。
30 0
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
|
10天前
|
Java Docker 微服务
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
36 1
|
2天前
|
消息中间件 监控 Kafka
Producer 与微服务架构的集成
【8月更文第29天】在现代软件开发中,微服务架构因其灵活性和可扩展性而被广泛采用。这种架构允许将复杂的系统分解为更小、更易于管理的服务。消息传递是连接这些服务的关键部分,而消息生产者(Producer)则是消息传递中的重要角色。本文将探讨如何将消息生产者无缝集成到基于微服务的应用程序中,并提供一个使用 Python 和 Kafka 的示例。
10 0
|
9天前
|
微服务
微服务架构与单体架构:比较和对比
【8月更文挑战第22天】
19 0
下一篇
云函数