百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Weblogic使用、注意事项和实战

mhr18 2024-12-19 10:52 12 浏览 0 评论

Weblogic使用以及注意事项和实战1. 简介1.1 Domain 1.2 Managed Server 1.3 Machine 2. 基础操作2.1 weblogic安装2.2 Nginx安装(负载均衡)2.3 weblogic发布服务2.4 服务基于weblogic集群2.5 发布服务测试(单机+负载均衡)2.5.1 weblogic直连测试--单机2.5.2 weblogic+Nginx测试--负载均衡2.6 weblogic集群测试3. 基础配置3.1 weblogic系统配置3.2 发布服务配置3.3 查看配置所在文件位置4. 通用命令5. 已知问题和遇到的坑5.1 服务部署失败5.2 weblogic初步访问很慢

1. 简介

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

通俗的讲weblogic是一种web容器,如果你知道apache,tomcat,iis你就应该知道,就是把我们开发的java应用程序运行起来,并提供服务的一种程序。

1.1 Domain

域是作为单元进行管理的一组相关的 WebLogic Server 资源。一个域包含一个或多个 WebLogic Server 实例,这些实例可以是群集实例、非群集实例,或者是群集与非群集实例的组合。一个域可以包含多个群集。域还包含部署在域中的应用程序组件、此域中的这些应用程序组件和服务器实例所需的资源和服务。应用程序和服务器实例使用的资源和服务示例包括计算机定义、可选网络通道、连接器和启动类。

Domain 中包含一个特殊的 WebLogic 服务器实例,叫做 Administration Server,这是我们配置、管理Domain中所有资源的核心。通常,我们称加入Domain中的其他实例为 Managed Server,所有的Web应用、EJB、Web Services和其他资源都部署在这些服务器上。

我们可以按照以下的一些标准来组织Domain:程序的逻辑划分,例如一个电商网站,可以将前台作为一个Domain,订单处理作为一个Domain,其他资源作为一个Domain;以物理地域为划分,例如一个跨国公司的网站,每个国家可以建立一个Domain;以尺寸来划分。

1.2 Managed Server

被管理服务器是一个WebLogic Server的实例,他从Admin Server那里获取配置信息。通常在Managed Server上部署自己的服务、组件或应用。基于性能考虑,Managed Server维护着一份只读的域配置文件,当服务启动的时候,会从Admin Server上同步配置文件信息,如果配置文件发生了改变,Admin Server也会将改变推送到Managed Server上。

1.3 Machine

Machine 是指运行WebLogic Server实例的物理机器,通常与部属在其上的Managed Server相关连。Machine用于Node Manager(一个运行在物理服务器上的进程,可以远程重启Admin 和 Managed Server)重启失败的Managed Server,以及为集群的Managed Servers选择合适的Session存放位置(Session避免存放在同一台Machine上)。

2. 基础操作

2.1 weblogic安装

百度搜索


2.2 Nginx安装(负载均衡)

百度搜索


2.3 weblogic发布服务

1: 登录weblogic后,初始页面内容中点击左侧的部署,如图:

2: 点击安装,根据操作点击下一步 上传自己服务的war包注意:weblogic和Tomcat部署服务有区别,Tomcat会解压war包,weblogic不会解压war,所以上传war时候需要把对应环境的配置都调整好 选择服务所在的server,其他都默认下一步直接到完成,如图:

这里发布服务base不用选择,因为base服务状态是shutdown,只有adminserver是running状态

2.4 服务基于weblogic集群

暂无


2.5 发布服务测试(单机+负载均衡)

2.5.1 weblogic直连测试--单机

访问http://IP:7001/服务目录

2.5.2 weblogic+Nginx测试--负载均衡

访问http://IP:7001/服务目录

总结:以上2种测试效果其实是一样,只是从部署结构上一个是单机(单节点)直连一个是负载均衡(多节点)

2.6 weblogic集群测试

暂无


3. 基础配置

3.1 weblogic系统配置

系统配置只需要在对应的Server上配置,不需要重新配置,如果创建新的Server就需要重新配置

1:端架左侧菜单环境-》服务器,进入页面后点击我们发布的服务AdminServer(管理)

2:进入到AdminServer的配置下,选择头部的“超载”菜单,下面有一个最大线程阻塞时间建议1200(默认是600)可以根据实际调整

3:选择头部“并发”菜单,最大并发新建线程数建议300(默认100) 最大并发长时间请求数100(默认100),可以根据实际调整

4:点击“服务器启动”菜单 ,在下面的参数设置如下内容

空间大小配置内容:

-Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m

配置说明:

-Xmx    Java Heap最大值,默认值为物理内存的1/4,最佳设值视物理内存大小及计算机内其他内存开销而定

-Xms    Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-XX:MaxPermSize     Perm(俗称方法区)占整个堆内存的最大值


日志级别,线程大小配置

-Xms2048m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -XX:-HeapDumpOnOutOfMemoryError -Dweblogic.threadpool.MinPoolSize=50 -Dweblogic.threadpool.MaxPoolSize=150 -Dfile.encoding=UTF8 -Dlog4jLevel=debug -Djava.awt.headless=true

日志级别说明

DEBUG:指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。
   
INFO:消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。
   
WARN:表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示。
   
ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别。
   
FATAL:指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高了。重大错误,这种级别你可以直接停止程序了。


日志详细介绍

服务器日志 每个 WebLogic Server 实例将来自子系统和应用程序的所有消息写入位于本地主机上的服务器日志文件。默认情况下,服务器日志文件位于服务器实例根目录下的 logs 目录中;例如,DOMAIN_NAME\servers\SERVER_NAME\logs\SERVER_NAME.log,其中 DOMAIN_NAME 是在其中定位域的目录的名称,而 SERVER_NAME 是服务器的名称。

可在管理控制台的Gernal属性页中设置该文件的路径及名字,错误的输出的等级等。每条日志消息都具有关联的严重程度级别。日志消息的级别大致说明其重要级别或紧急级别。WebLogic Server 具有从 TRACE 到 EMERGENCY 的预定义严重程度,在将日志请求调度给记录器时,会将对应严重程度转换为日志级别。日志级别有如下取值 可以在记录器和处理程序上设置日志严重程度级别。在记录器上进行设置时,任何处理程序都不会收到记录器已拒绝的事件。例如,如果在记录器上将日志级别设置为 NOTICE,则任何处理程序都不会收到 INFO 级别的事件。在处理程序上设置日志级别时,仅会对处理程序应用限制,而不会对其他程序应用限制。例如,为文件处理程序关闭 DEBUG 意味着不会将任何 DEBUG 消息写入日志文件,但会将 DEBUG 消息将写入标准输出。

DOMAIN日志 除将消息写入服务器日志文件外,每个服务器实例还会将其一部分消息转发到域范围日志文件。默认情况下,服务器仅转发严重程度级别为 NOTICE 或更高的消息。虽然可以对转发哪些消息进行修改,但服务器永远不转发严重程度级别为 DEBUG 的消息。域日志文件提供用于查看域整体状态的中央位置。域日志驻留在管理服务器的 logs 目录中。域日志文件的默认名称和位置是 DOMAIN_NAME\servers\ADMIN_SERVER_NAME\logs\DOMAIN_NAME.log,其中,DOMAIN_NAME 是在其中定位域的目录的名称,而 ADMIN_SERVER_NAME 是管理服务器的名称。域日志中记录的时间戳是发出消息的服务器的时间戳。域日志中的日志记录不会按照其时间戳顺序写入;会在消息到达后立即将其写入。有可能受管服务器在一段时间内无法与管理服务器联系。在这种情况下,消息被缓冲在本地并在重新连接服务器之后发送到管理服务器。

HTTP访问日志 在WebLogic中可以对用HTTP,HTTPS协议访问的服务器上的文件都做记录,该LOG文件默认的名字为Access.log,内容如下,该文件具体记录在某个时间,某个IP地址的客户端访问了服务器上的那个文件。

HTTP 子系统在文本文件中保留所有 HTTP 事务的日志。HTTP 访问日志的默认位置和滚动策略与服务器日志相同。可以为每个服务器或每个定义的虚拟主机设置用于定义 HTTP 访问日志行为的特性。

服务器实例如何将消息转发到域日志 为将消息转发到域日志,每个服务器实例会广播其日志消息。服务器会广播除严重程度级别为DEBUG 的消息以外的所有消息和消息文本。管理服务器会监听以上消息中的一部分消息,并将它们写入域日志文件。为监听这些消息,管理服务器在每台受管服务器中注册监听器。默认情况下,该监听器包含一个筛选器,仅允许将严重程度级别为 NOTICE 和更高级别的消息转发到管理服务器。具体机制参见下图

对于任何给定WebLogic Server 实例,可以覆盖默认筛选器并创建一个日志筛选器,从而将一组不同的消息集写入域日志文件。如果管理服务器不可用,则受管服务器继续将消息写入其本地的服务器日志文件。但在默认情况下,当重新连接到服务器时,并不会将断开连接期间写入的所有消息转发到域日志文件。受管服务器在缓冲区中保留指定数量的消息,从而在重新连接到服务器时可以将它们转发到管理服务器。在缓冲区中保留的消息数量由 LogMBean 上的 DomainLogBroadcasterBufferSize 特性配置。默认值为 1。如配置为使用默认值,则在重新连接管理服务器后,仅将最后记录的消息转发到该服务器。例如,如果管理服务器在两小时不可用之后恢复,则域日志中不包含这两小时内生成的任何消息。如果已配置大于 1 的值,则在受管服务器重新连接到管理服务器之后,会将对应数量的消息转发到域日志。注意:这会导致在域日志文件中,具有较早时间戳的消息列在具有较晚时间戳的消息之后。当之前断开连接的受管服务器的缓冲区中消息刷新到管理服务器之后,即使这些消息是在域日志中原有消息之前生成的,它们也会直接追加到域日志中。日志消息格式 在 WebLogic Server 实例向服务器日志文件中写入消息时,每条消息的第一行以 #### 开头,后跟该消息的特性。每个特性都括在尖括号中。消息的特性为:按区域设置格式的时间戳、严重程度、子系统、计算机名、服务器名、线程 ID、用户 ID、事务 ID、诊断上下文 ID、原始时间值、消息 ID 和消息文本。(后面的消息特性部分中描述各个特性。) 如果一条消息不是在事务上下文中记录的,则即使不包含事务 ID,也会包含用于事务 ID 的尖括号。如果该消息中包含一个堆栈跟踪,则该堆栈跟踪包含在消息文本中。WebLogic Server 为其写入的消息使用主机的默认字符编码。标准输出和标准错误中输出的格式 在 WebLogic Server 实例将一条消息写入标准输出时, 消息特性为:按区域设置格式的时间戳、严重程度、子系统、消息 ID 和消息文本。图形界面操作 登录weblogic后台进行相关操作 1.日志相关参数设置 左侧菜单:环境–>服务器 右侧菜单:服务器–>日志记录 只找到AdminServer.log、access.log,进行一些操作 如:设置日志文件的回滚,设置日志文件名等 2.日志查看 左侧菜单:环境–>服务器 右侧菜单:点击服务器名称 左侧菜单:诊断–>日志文件 右侧菜单:选中相关日志点击查看


5: 点击proddomain-》配置-》并发

参数默认值都是50

3.2 发布服务配置

发布服务的配置是每次发布服务后都需要重新配置一次

1:回到初始页面可以看到发布好的服务(如果不知道可以点击左侧的部署菜单)

2:选中发布的服务进入到如图界面

3:点击配置进入配置内容,这里主要是调整2个参数 最大内存中会话数(默认是1) JSP页面检查(默认是1)都调整成-1 可以查看后面框定的注释说明-1是不进行任何检查不占用资源

3.3 查看配置所在文件位置

4. 通用命令

1:启动weblogic命令

cd /usr/local/weblogic/weblogic/user_projects/proddomain/bin

nohup ./startWebLogic.sh


2:查看weblogic进程

ps -ef|grep weblogic


3:查看服务器weblogic资源使用

top 查看服务器进程情况


4:停止weblogic命令

cd /usr/local/weblogic/weblogic/user_projects/proddomain/bin

./stopWebLogic.sh


5:日志查看

cd /usr/local/weblogic/weblogic/user_projects/proddomain/logs


5. 已知问题和遇到的坑

5.1 服务部署失败

部署服务时候回出现服务发布不成功,重启weblogic服务后恢复


5.2 weblogic初步访问很慢

目前这个是已知问题Java JVM和Linux环境匹配时候( 实际是JVM在Linux下的bug:他想调用一个随机函数,但是取不到。)

1)较好的解决办法:
      在Weblogic启动参数里添加 “-D java.security.egd=file:/dev/./urandom” (/dev/urandom 无法启动)
2)最差的解决办法:
      执行命令 mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random
  将/dev/random 指向/dev/urandom
3)最好的解决办法:
      修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件
  将securerandom.source=file:/dev/random 修改为 securerandom.source=file:/dev/./urandom

这样可以解决任何一个域Weblogic启动慢的问题的问题

相关推荐

使用 Docker 部署 Java 项目(通俗易懂)

前言:搜索镜像的网站(推荐):DockerDocs1、下载与配置Docker1.1docker下载(这里使用的是Ubuntu,Centos命令可能有不同)以下命令,默认不是root用户操作,...

Spring Boot 3.3.5 + CRaC:从冷启动到秒级响应的架构实践与踩坑实录

去年,我们团队负责的电商订单系统因扩容需求需在10分钟内启动200个Pod实例。当运维组按下扩容按钮时,传统SpringBoot应用的冷启动耗时(平均8.7秒)直接导致流量洪峰期出现30%的请求超时...

《github精选系列》——SpringBoot 全家桶

1简单总结1SpringBoot全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springbo...

Nacos简介—1.Nacos使用简介

大纲1.Nacos的在服务注册中心+配置中心中的应用2.Nacos2.x最新版本下载与目录结构3.Nacos2.x的数据库存储与日志存储4.Nacos2.x服务端的startup.sh启动脚...

spring-ai ollama小试牛刀

序本文主要展示下spring-aiollama的使用示例pom.xml<dependency><groupId>org.springframework.ai<...

SpringCloud系列——10Spring Cloud Gateway网关

学习目标Gateway是什么?它有什么作用?Gateway中的断言使用Gateway中的过滤器使用Gateway中的路由使用第1章网关1.1网关的概念简单来说,网关就是一个网络连接到另外一个网络的...

Spring Boot 自动装配原理剖析

前言在这瞬息万变的技术领域,比了解技术的使用方法更重要的是了解其原理及应用背景。以往我们使用SpringMVC来构建一个项目需要很多基础操作:添加很多jar,配置web.xml,配置Spr...

疯了!Spring 再官宣惊天大漏洞

Spring官宣高危漏洞大家好,我是栈长。前几天爆出来的Spring漏洞,刚修复完又来?今天愚人节来了,这是和大家开玩笑吗?不是的,我也是猝不及防!这个玩笑也开的太大了!!你之前看到的这个漏洞已...

「架构师必备」基于SpringCloud的SaaS型微服务脚手架

简介基于SpringCloud(Hoxton.SR1)+SpringBoot(2.2.4.RELEASE)的SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、...

SpringCloud分布式框架&amp;分布式事务&amp;分布式锁

总结本文承接上一篇SpringCloud分布式框架实践之后,进一步实践分布式事务与分布式锁,其中分布式事务主要是基于Seata的AT模式进行强一致性,基于RocketMQ事务消息进行最终一致性,分布式...

SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌

SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...

开发好物推荐12之分布式锁redisson-sb

前言springboot开发现在基本都是分布式环境,分布式环境下分布式锁的使用必不可少,主流分布式锁主要包括数据库锁,redis锁,还有zookepper实现的分布式锁,其中最实用的还是Redis分...

拥抱Kubernetes,再见了Spring Cloud

相信很多开发者在熟悉微服务工作后,才发现:以为用SpringCloud已经成功打造了微服务架构帝国,殊不知引入了k8s后,却和CloudNative的生态发展脱轨。从2013年的...

Zabbix/J监控框架和Spring框架的整合方法

Zabbix/J是一个Java版本的系统监控框架,它可以完美地兼容于Zabbix监控系统,使得开发、运维等技术人员能够对整个业务系统的基础设施、应用软件/中间件和业务逻辑进行全方位的分层监控。Spri...

SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架

作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...

取消回复欢迎 发表评论: