「F5 连接NetOps/SecOps与DevOps」 -- 「5」Application Services 3 Extension

本文详述了AS3声明式组件的使用方法,它允许以声明式方式配置F5 BIG-IP的L4-L7层级,涵盖LTM、DNS、AFM、ASM等模块。支持multi-tenant及multiroute-domain配置,包括L3/L4 VIP、HTTP/HTTPS ADC、防火墙策略、L7安全、iRules、SSL/TLS等。介绍了AS3的安装方式、使用前提及一个部署示例。

本文主要介绍第三个声明式组件Application Services 3 Extension(以下简称AS3)的使用方式。

as3

AS3提供了一种声明式的方式来配置F5 BIGIP的L4-L7的配置,包括LTM,DNS,AFM,ASM等模块的配置,它支持multi-tenant和multi route-domain的配置。

包含但不限于以下配置:

- L3/L4: VIP. Pool SNAT Monitors, Profiles, etc.
- HTTP/HTTPS ADC
- L4 Firewall Policy Support (AFM Policy attachment)
- HTTP/HTTPS L7 Security
- ASM/APM policy attachment
- Traffic Profiles (Endpoint Policy attachment / construction)
- iRules
- SSL/TLS
- Methods for loading policies and iRules: base64 & URL
...

as3-2

目前AS3和DO一样,支持RPM包安装在f5上,也支持用一个as3的docker容器来代理这些API的交互,当然目前也支持通过BIGIQ来下发这些AS3的json文件配置到每个BIGIP中,方便集中管理,帮助用户更好的实现SuperNetOps。

当然,要使用AS3,和DO一样,也是需要一些预备的条件的:

  1. 必须使用v12.1或者以上的版本
  2. 进行API交互的账号,必须有administrator role的权限。

一个简单的AS3例子如下:

{
"class": "AS3",
"action": "deploy",
"targetHost": "192.0.2.76",
"targetUsername": "admin",
"targetPassphrase": "admin",
"declaration": {
    "class": "ADC",
    "schemaVersion": "3.0.0",
    "id": "container",
    "label": "Sample 1 in a container",
    "remark": "Simple HTTP application with RR pool",
    "Sample_container": {
        "class": "Tenant",
        "A1": {
            "class": "Application",
            "template": "http",
            "serviceMain": {
            "class": "Service_HTTP",
            "virtualAddresses": [
                "10.0.1.10"
            ],
            "pool": "web_pool"
            },
            "web_pool": {
            "class": "Pool",
                "monitors": [
                    "http"
                ],
            "members": [{
                "servicePort": 80,
                "serverAddresses": [
                    "192.0.1.10",
                    "192.0.1.11"
                ]
            }]
            }
        }
    }
}
}

然后把这个JSON文件,POST到https://[BIGIP-IP]:PORT/mgmt/shared/appsvcs/declare即可。

更多详细的介绍,请参考https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件PLC的专业的本科生、初级通信联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境MCGS组态平台进行程序高校毕业设计或调试运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑互锁机制,关注I/O分配硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
[root@ip-10-1-2-224 logs]# ps aux | grep java root 166922 0.1 5.0 4785424 397856 ? Sl 10:02 0:27 java -server -Xms2G -Xmx2G -Xss256K -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+DisableExplicitGC -XX:+PrintGCDetails -Xloggc:/data/devops/camel-web-sql/logs/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/devops/camel-web-sql/logs/trade.dump -Djava.net.preferIPv4Stack=true -Dlog4j.configurationFile=config/logback-spring.xml -Dspring.config.name=application -classpath /data/devops/camel-web-sql/config:/data/devops/camel-web-sql/lib/aspectjweaver-1.9.7.jar:/data/devops/camel-web-sql/lib/attoparser-2.0.5.RELEASE.jar:/data/devops/camel-web-sql/lib/commons-codec-1.15.jar:/data/devops/camel-web-sql/lib/commons-lang3-3.12.0.jar:/data/devops/camel-web-sql/lib/druid-1.2.18.jar:/data/devops/camel-web-sql/lib/fastjson-1.2.83.jar:/data/devops/camel-web-sql/lib/hutool-all-5.8.21.jar:/data/devops/camel-web-sql/lib/jackson-annotations-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-core-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-databind-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-datatype-jdk8-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-datatype-jsr310-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-module-parameter-names-2.13.3.jar:/data/devops/camel-web-sql/lib/jakarta.annotation-api-1.3.5.jar:/data/devops/camel-web-sql/lib/java-jwt-3.10.3.jar:/data/devops/camel-web-sql/lib/jsch-0.2.9.jar:/data/devops/camel-web-sql/lib/jul-to-slf4j-1.7.36.jar:/data/devops/camel-web-sql/lib/log4j-api-2.17.2.jar:/data/devops/camel-web-sql/lib/log4j-to-slf4j-2.17.2.jar:/data/devops/camel-web-sql/lib/logback-classic-1.2.11.jar:/data/devops/camel-web-sql/lib/logback-core-1.2.11.jar:/data/devops/camel-web-sql/lib/lombok-1.18.16.jar:/data/devops/camel-web-sql/lib/mysql-connector-java-8.0.28.jar:/data/devops/camel-web-sql/lib/redshift-jdbc42-2.1.0.1.jar:/data/devops/camel-web-sql/lib/riam-token-util-1.0-SNAPSHOT.jar:/data/devops/camel-web-sql/lib/slf4j-api-1.7.36.jar:/data/devops/camel-web-sql/lib/snakeyaml-1.30.jar:/data/devops/camel-web-sql/lib/spring-aop-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-beans-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-boot-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-autoconfigure-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-aop-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-json-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-logging-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-thymeleaf-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-tomcat-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-web-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-context-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-core-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-expression-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-jcl-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-web-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-webmvc-5.3.22.jar:/data/devops/camel-web-sql/lib/thymeleaf-3.0.15.RELEASE.jar:/data/devops/camel-web-sql/lib/thymeleaf-extras-java8time-3.0.4.RELEASE.jar:/data/devops/camel-web-sql/lib/thymeleaf-spring5-3.0.15.RELEASE.jar:/data/devops/camel-web-sql/lib/tomcat-embed-core-9.0.65.jar:/data/devops/camel-web-sql/lib/tomcat-embed-el-9.0.65.jar:/data/devops/camel-web-sql/lib/tomcat-embed-websocket-9.0.65.jar:/data/devops/camel-web-sql/lib/unbescape-1.1.6.RELEASE.jar:/data/devops/camel-web-sql/lib/web-sql.jar:/data/devops/camel-web-sql/lib/web-sql.jar.back20240607:/data/devops/camel-web-sql/lib/web-sql.jar.back2024060702: com.camelgames.sql.Application root 177500 0.0 0.0 222316 2052 pts/0 S+ 15:19 0:00 grep --color=auto java如何将这个Java程序结束运行
04-02
<think>嗯,用户问的是如何结束运行那个Java程序。首先我需要看一下他提供的ps aux | grep java的输出。输出的内容显示有一个Java进程,PID是166922,运行的是com.camelgames.sql.Application。用户可能想终止这个进程,但作为新手,可能需要详细的步骤指导。 首先,我应该确认用户是否有足够的权限。因为进程是由root用户运行的,所以需要使用sudo或者root权限来终止。然后,常见的终止命令是kill,后面跟PID。这里PID是166922,所以命令可能是kill 166922。不过,如果进程没有响应,可能需要用kill -9强制终止,但这样可能会导致数据丢失,所以最好先尝试普通kill。 另外,用户可能需要检查进程是否真的被终止了,可以再次运行ps aux | grep java来确认。还有,用户可能不太熟悉如何查找PID,所以需要明确说明如何从输出中找到进程号。比如,第二列就是PID,这里是166922。 同时,用户提供的Java命令行参数中有一些配置,比如内存设置、GC日志、HeapDump路径等,这些可能在终止前需要考虑是否有未保存的数据或日志需要处理。但用户当前的问题只是如何结束进程,可能不需要涉及这些细节,除非有特殊情况。 需要提醒用户谨慎使用kill -9,因为它是强制终止,可能导致资源未正确释放。但根据进程状态,这里可能是一个常规的Java应用,普通kill应该有效。如果用户遇到进程无法终止的情况,再建议使用kill -9。 另外,用户可能是在服务器上操作,所以需要确认是否真的需要终止该进程,避免影响其他服务。不过根据进程名camel-web-sql,可能是特定的应用,用户应该知道自己在做什么。 总结步骤应该是:1. 使用kill PID正常终止;2. 检查是否成功;3. 如果失败,使用kill -9 PID强制终止;4. 再次确认进程是否结束。同时注意权限问题,可能需要sudo。</think>好的,我来分步骤说明如何终止这个Java进程: 1. **确认进程信息**: - 进程PID:`166922`(第二列) - 启动命令:`com.camelgames.sql.Application` - JVM参数:包含`-Xms2G -Xmx2G`内存设置和GC日志路径 2. **推荐终止步骤**: ```bash # 先尝试正常终止(发送SIGTERM信号) sudo kill 166922 # 等待5秒后检查是否终止 ps aux | grep 166922 # 如果仍然存在,强制终止(发送SIGKILL信号) sudo kill -9 166922 ``` 3. **注意事项**: - 使用`kill -9`会立即强制终止进程,可能导致数据丢失,建议先尝试普通`kill` - 观察`/data/devops/camel-web-sql/logs/`目录下的GC日志和HeapDump,可辅助排查OOM问题 - 该进程使用了CMS垃圾回收器(`-XX:+UseConcMarkSweepGC`),在JDK9+已废弃 4. **补充建议**: ```bash # 查找所有Java进程的更清晰方式 pgrep -af java # 如果需批量终止,可用pkill(谨慎使用) pkill -f camel-web-sql ``` 建议先执行普通kill命令,给JVM留出执行shutdown hook的时间,确保资源安全释放。如果应用有后台任务执行,建议通过应用的健康检查端点或管理接口优雅下线。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值