古代人们自己将钱财从一地传送到另一地时,不得不面对很多困难,例如土匪强盗、饮食住宿、车马挑夫、过关文书等共性问题。镖局这一中间角色的出现,使人们不必处理财物传输时的各种复杂细节。
中间件的功能与此类似:中间件,运行于操作系统、数据库与应用软件之间可以简化应用软件的复杂性、克服网络环境多种挑战的一类系统软件。
应用软件A<——>中间件<——>底层资源(数据库、操作系统、网络)应用软件A<——>中间件<——>应用软件B
基础软硬件是关键核心技术。中间件:基础软件三驾马车之一。
大型机构通常有消息交换、库表交换、文件交换、服务接口交换等,经常混合使用!
TongWeb属于应用服务器中间件,是东方通的明星产品。同类中间件有weblogic、websphere(WAS)、tomcat、jboss等。
应用服务器是现在使用最广的中间件,主要应用于Web系统,它是创建、部署、运行、集成和维护多层分布式企业级应用的平台。
Web应用
应用服务器
支持JDK的主流操作系统都可以安装。要求JDK7至JDK17(TongWeb7.0最新版)。一定要配置JAVA_HOME。
环境变量:exportJAVA_HOME=/usr/local/jdkexportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#java-versionjavaversion"1.8.0_201"Java(TM)SERuntimeEnvironment(build1.8.0_201-b09)JavaHotSpot(TM)64-BitServerVM(build25.201-b09,mixedmode)建议使用普通用户安装。
[tongweb@demo1~]$lslicense.datTongWeb7.0.4.9_Enterprise_Linux.tar.gz[tongweb@demo1~]$tarzxvfTongWeb7.0.4.9_Enterprise_Linux.tar.gz[tongweb@demo1~]$mvTongWeb7.0.4.9_Enterprise_Linuxtongweb[tongweb@demo1~]$mvlicense.dattongweb
autodeploy:自动部署目录applications:系统应用所在目录bin:服务器启动,停止脚本目录conf:服务器的配置文件所在目录deployment:已部署应用的应用程序目录domain_template:域模板目录doc:手册压缩包存放目录(快速上手的话推荐看下这里的快速使用手册)TongDataGrid:TongDataGrid缓存所在目录lib:服务器类文件所在目录(自带性能分析工具apm所在目录)logs:服务器存放日志文件的目录samples:TongWeb的示例目录persistence:存放各类监视量的持久化文件snapshot:存放服务器生成的快照文件service:以系统服务方式运行TongWeb服务的工具存储目录temp:服务器产生的临时文件(应用清缓存从这清理)Tools:集成开发可以使用Eclipse、idea等IDE插件l,使用方法参考手册。
版本信息查看:./version.sh
查看cpu占用较高的java进程的堆栈:./thread-profiler.shpid(pid为java进程id)
命令行工具:./commandstool.sh该工具非常强大,使用方法参考手册。
如果想在同一台主机上安装两套TongWeb,直接安装在两个不同的目录,端口会冲突,需要将
Tongweb引入了域的概念,每创建一个域后,就会在
TonbWeb安装完成后,就存在一个默认域(此时domains目录下无内容):
$cat
$./domain.shcreatedomain1[DomainUtil]2023-08-2601:02:24:TongWebhome:/home/xuwang/tongweb7[DomainUtil]2023-08-2601:02:24:Agenthome:/home/xuwang/tongweb7/Agent[DomainUtil]2023-08-2601:02:24:creatingdomain:/home/xuwang/tongweb7/domains/domain1[DomainUtil]2023-08-2601:02:24:Operationhasbeencompleted.创建域的命令会在domains目录下生成与域同名的目录,同时在domain.list文件中生成记录。
[xuwang@demo1tongweb7]$lldomainstotal0drwxrwxr-x11xuwangxuwang135Aug2601:02domain1[xuwang@demo1tongweb7]$catconf/domains.list/home/xuwang/tongweb7/domains/domain1/home/xuwang/tongweb7删除域:
[xuwang@demo1bin]$./domain.shdeletedomain1[DomainUtil]2023-08-2601:05:30:TongWebhome:/home/xuwang/tongweb7[DomainUtil]2023-08-2601:05:30:Agenthome:/home/xuwang/tongweb7/Agent[DomainUtil]2023-08-2601:05:30:Youaregoingtodeletethedomain[/home/xuwang/tongweb7/domains/domain1],areyousure[yes/no]yes[DomainUtil]2023-08-2601:05:39:deletingdomain:/home/xuwang/tongweb7/domains/domain1[DomainUtil]2023-08-2601:05:39:Operationhasbeencompleted.删除域的命令会删除目录,同时删除domains.list中的记录。注意:如果直接使用rm只删除域目录,没有删除文件中的记录的话,TongWeb会出错。
启动域:
$nohup./startdomain.shdomain1>/dev/null2>&1&停止域:
./stopdomain.shdomain1domain的启停除了可以使用上面的*domain.sh命令来完成外,还可以进入到domain所在的目录,使用域目录下的bin目录下的脚本启动。
在首页里,可以看到TongWeb的安装目录、版本号、补丁信息、JDK信息、License信息等。
另外,可以下载TongWeb.xml和external.vmoptions文件。这两个文件之所以单独拿出来,是因为这两个文件很重要。前者是TongWeb的配置文件,后者TongWeb启动时就需要的配置文件。
有这几个标签页:jvm参数、其他jvm参数、服务器参数、环境变量。通常只需要配置“jvm参数”标签中的“最大堆内存”和“最小堆内存”。对应的配置文件是
$psaux|grepjavaxuwang2730919446.14599416459584pts/1Sl04:180:07/home/xuwang/jdk1.8.0_201/bin/java-classpath……-Xmx2048m-Xms1024m……这儿的Xmx就是最大堆内存,Xms就是最小堆内存。
数据库驱动可以由框架来管理,也可以由应用容器来管理。如果使用的应用框架来管理,则不需要配置这儿的JDBC,当然,也可以配置但不调用。
基本属性:名称:mysql8(自定义)数据库类型:选择mysql8数据库驱动类名:保持默认com.mysql.cj.jdbc.Driver连接url:jdbc:mysql://127.0.0.1:3306/cydb用户名:cyapp密码:cypassword驱动路径:点击浏览选择驱动文件mysql-connector-j-8.1.0.jar(注意驱动文件要放在首页指定的路径下)。
注意,如果已经将驱动文件放到了
验证连接属性:生产上建立把“创建连接时验证”、“获取连接时验证”、“归还连接时验证”这三个验证都开启。
高级属性:根据自己的实际情况设置,例如慢sql检测。
应用程序如何引用数据源的,请参考开发手册。也可以通过JNDI>服务器资源域下的JNDI树进行引用。下面是引用数据库连接的一些简单的示例:
方式1:应用配置文件(常用)
ContextinitialContext-newInitialContext();DataSourcedataSource=(DataSource)initialContext.lookup(“testDB");方式3:标注方式
@Resource(name=“testDB")javax.sql.Datasourceds;方式4:将全局JNDI资源映射到组件资源
说明:classes中可以编写传统的servlet,也可以有EJB,对于JavaEE新规范,传统部署描述文件web.xml可以省略掉,通过JavaEE新规范的原注释定义在servlet类中。
应用包支持两种形式
点击“部署应用”,从本地或者服务器中选择应用包文件后,点击“开始部署”。
这儿以
在“基本属性”标签中,设置应用名称、应用前缀等。在“虚拟主机”标签中,选择应用的虚拟主机。在“完成部署”标签,确认信息无误后,点击完成。
详细的命令,可以参考“006_TongWeb7Commandstool使用指南.pdf”
默认已经打开,并且已经选择autodeployment目录作为自动部署目录。
示例:
$cdtongweb7/samples/servletjsp-samples/servletjsp-tomcatexamples/$cpTC_examples.war/home/xuwang/tongweb7/autodeploy/$ll/home/xuwang/tongweb7/autodeploy/total724-rwxr-xr-x1xuwangxuwang738277Aug2723:52TC_examples.war$ll/home/xuwang/tongweb7/autodeploy/.autodeploystatus/total0drwxrwxr-x2xuwangxuwang17Aug2723:52TC_examples.war然后在控制台的”应用管理“下,就可以看到自动部署的TC_examples。在deployment目录下也可以看到同名的解压后的目录。
”监视“菜单。在”监视配置“中,打开总开关和需要监控的条目开关。在”监视明细“中,就可以看到监控数据了。在”监视回放“中,可以对历史监控数据进行查看。在”hung线程“中,可以对hung线程进行分析。在”阈值配置“中,可以定义当发生某一条件时,生成快照信息,并且可以指定生成的快照信息包含的内容。在”告警配置“中,显示了已创建的告警阈值配置。默认已经有了几条预定义的告警。
"诊断"菜单。可以查看日志:系统日志、SQL日志、访问日志、告警记录。在”快照“中,可以手动生成快照。如果产生的问题在前面的阈值配置里没有涵盖(没有自动生成快照),我们就可以在这儿手动生成快照。自动或者手动生成的快照都保存在snapshot目录下,生成后,可以查看生成的文件内容,分析问题。在”snmp“中,可以配置snmp信息。
日志级别配置:默认各个模块都是INFO级别,都会打印到server.log中。应用用得比较多的是"Systemout"模块,在server.log中是[systemout]。如果不想打印到server.log中,可以设置为OFF,这样,日志就打印到应用日志中了。
系统日志配置:配置系统日志数量、大小、轮转、目录等。
压缩日志配置:配置系统日志、访问日志、持久化日志的压缩。
类加载器树:对已经部署的应用分析具体类的加载与分布情况。类资源分析:上传应用包文件,对应用包中的的类进行分析。类冲突检测:上传应用包文件,对类冲突进行检测。
文件集:这儿可以上传文件并对已经上传的文件进行管理,通常是库文件。共享库:这儿可以创建共享库,选择文件集中的文件进行共享。
在应用管理界面,可以指定要使用的共享库和类加载顺序(父优先和子优先)。
父优先(tw优先):tw/lib/endorsed>tw/lib>tw/lib/common>domain/lib>war/class>war/lib>共享库子优先(war包优先):tw/lib/endorsed>war/class>war/lib>共享库>tw/lib>tw/lib/common>domain/lib
通常推荐子优先(默认)。
在web应用访问过程中出现乱码,可以从如下三个地方修改字符集。
1.TongWeb控制台密码忘记2.confsecurity中文件损坏,报密码或权限不对解决办法:重置TongWeb密码,利用
管理界面跟单机的管理控制台差不多。
编辑被管理节点的
然后启动Agent:
cd/home/xuwang/tongweb7/Agent/bin./startbg.sh现在,在节点管理>节点代理中,就可以看到注册的节点了。
点击集群>创建集群。创建集群,选择使用的节点(可以只要一个节点)。部署完成后,把集群实例起起来。
应用管理>部署应用方法与单机类似,部署目标选择刚才创建的集群。这样一来,集群中的所有节点就都部署上了。