GitHub 项目地址https://github.com/BugSymphony/seamless-appserver-sidecar如果该项目对你有帮助欢迎Star ⭐ 支持项目发展Seamless AppServer Sidecar 安装与部署教程1. 项目简介Seamless AppServer Sidecar 是一个轻量级、非侵入式的Java应用服务器扩展框架采用Sidecar模式实现插件化架构。它允许开发者动态扩展应用功能如监控、治理、安全、业务插件而无需修改宿主应用代码。与传统方式相比方式对比Maven依赖/模块改造需要修改宿主应用代码引入依赖部署周期长Java Agent字节码增强能够动态插入逻辑但开发复杂调试难度大依赖JVM InstrumentationSidecar插件体系独立运行时、插件隔离、能力框架、注解驱动、可热加载、与宿主完全解耦2. 系统要求Java 8 或更高版本Apache Tomcat 9.x 或兼容的 Servlet 容器Maven 3.6.0 或更高版本用于构建至少 512MB 可用内存3. 安装方式方式一独立部署包安装推荐独立部署包包含了完整的 Tomcat 和 Sidecar适合新环境部署。克隆并构建项目gitclonerepository-urlcdseamless-appserver-sidecar mvn cleaninstall-DskipTests获取部署包构建完成后在 seamless-appserver-sidecar/sidecar-distribution目录下会生成两种部署包sidecar-standalone-9.0.113.tar.gz: 完整的 Tomcat Sidecar 独立部署包sidecar-only-0.1-SNAPSHOT.tar.gz: 仅包含 Sidecar 核心的轻量级部署包解压并配置# 解压独立部署包tar-zxvfsidecar-standalone-9.0.113.tar.gz-C/opt/cd/opt/apache-tomcat-sidecar-9.0.113# 配置环境变量exportSIDECAR_HOME/opt/apache-tomcat-sidecar-9.0.113配置 Sidecar编辑 sidecar/conf/sidecar.yaml 文件enabled:true# 启用 SidecarendpointPath:/sidecar# REST 端点路径plugins:demo:enabled:true# 启用 demo 插件sentinel:enabled:true# 启用 sentinel 流量治理插件spring:enabled:true# 启用 spring 元数据插件启动服务# 启动 Tomcat同时启动 Sidecar./bin/startup.sh# 或直接运行./bin/catalina.sh run方式二嵌入现有 Tomcat如果已有 Tomcat 环境可以选择嵌入方式。下载 sidecar-only 包# 解压到现有 Tomcat 目录tar-zxvfsidecar-only-0.1-SNAPSHOT.tar.gz-C$CATALINA_BASE配置 Tomcat在$CATALINA_BASE/conf/context.xml中添加监听器ContextListenerclassNamecom.seamless.appserver.sidecar.bootstrap.SidecarLifecycleListener//Context设置环境变量# 设置 Sidecar 根目录exportCATALINA_OPTS$CATALINA_OPTS-Dsidecar.home$CATALINA_BASE/sidecar方式三Docker 部署构建 Docker 镜像# 确保已构建了 sidecar-standalone 包cpsidecar-standalone-*.tar.gz /path/to/docker/build/context/# 构建镜像dockerbuild-ttomcat-sidecar:1.0.0.运行容器dockerrun-d\--namesidecar-container\-p8080:8080\-v/host/logs:/opt/tomcat/logs\-v/host/sidecar/logs:/opt/tomcat/sidecar/logs\tomcat-sidecar:1.0.04. 配置详解4.1 全局配置文件 sidecar.yaml# Sidecar 总开关enabled:true# REST 端点路径endpointPath:/__sidecar# 插件配置plugins:# demo 插件配置demo:enabled:truecapabilities:demoEndpoint:true# sentinel 插件配置sentinel:enabled:truecapabilities:sentinelFilter:true# spring 插件配置spring:enabled:truecapabilities:springMetaEndpoint:true4.2 插件配置文件 /META-INF/sidecar/plugin.yaml每个插件都有自己的配置文件示例name:demo# 插件名称displayName:Demo Plugin# 插件显示名称activatorClass:com.seamless.appserver.sidecar.plugin.demo.DemoPluginActivator# 激活器类# 导入包配置OSGI风格importPackages:-packages:-org.springframework.context-org.springframework.web.contextsource:WEBAPP# 来源WEBAPP 或 SIDECAR5. 插件管理5.1 添加插件将插件 JAR 文件放置到$SIDECAR_HOME/plugins目录重启 Sidecar 或等待自动发现根据配置6. 验证安装6.1 检查服务状态# 检查 Tomcat 状态curlhttp://localhost:80806.2 验证插件功能验证 Demo 插件# 访问 Demo 插件端点curlhttp://localhost:8080/xxx/__sidecar/demo/hello# 应返回 hello worldcurlhttp://localhost:8080/xxx/__sidecar/demo/hello2?nametestmsgmessage# 应返回 JSON 用户对象验证 Sentinel 插件启动后Sentinel 的过滤器会自动生效监控所有请求。验证 Spring 插件# 获取 Spring 应用的所有 Bean 信息curlhttp://localhost:8080/xxx/__sidecar/spring/beans# 获取 Spring 应用的条件评估结果curlhttp://localhost:8080/xxx/__sidecar/spring/context-condition-evaluation7. 日志配置7.1 日志位置Sidecar 日志:$SIDECAR_HOME/logs/sidecar.log应用日志:$SIDECAR_HOME/logs/catalina.logSentinel 日志:$SIDECAR_HOME/logs/sentinel/7.2 日志配置文件编辑sidecar/conf/sidecar-logback.xml文件来自定义日志输出格式和级别。8. 常见问题排查8.1 启动失败检查 Java 版本是否符合要求检查端口 8080 是否已被占用检查 sidecar.yaml配置文件语法8.2 插件无法加载检查插件 JAR 文件是否正确放置在 plugins 目录检查 plugin.yaml文件是否存在且格式正确3. 查看日志文件中的错误信息8.3 类加载问题检查插件的 Import-Package 配置是否正确确认插件不依赖宿主应用的私有类9. 生产环境最佳实践资源分配# 为生产环境分配足够内存exportCATALINA_OPTS-Xms1024m -Xmx2048m -XX:UseG1GCexportCATALINA_OPTS$CATALINA_OPTS-Dsidecar.home/opt/sidecar安全配置限制 REST 端点访问权限配置防火墙规则定期更新依赖包监控与告警配置日志轮转策略监控 JVM 指标设置健康检查端点备份策略定期备份配置文件备份插件目录记录版本变更通过以上步骤您可以成功安装并部署 Seamless AppServer Sidecar。该框架提供了灵活的插件化架构可以在不影响宿主应用的情况下动态扩展功能。项目地址GitHubhttps://github.com/BugSymphony/seamless-appserver-sidecar如果这个项目对你有所帮助欢迎⭐Star 支持项目提交 Issue 反馈问题提交 PR 一起参与建设开源项目需要社区力量共同成长。