spring batch admin 嵌入web访问

本文介绍如何部署 Spring Batch Admin,包括配置依赖、设置 web.xml、自定义配置及访问地址等内容。适用于希望快速搭建批处理任务管理平台的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、配置依赖

<dependency>
    <groupId>org.springframework.batch</groupId>
    <artifactId>spring-batch-admin-resources</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.batch</groupId>
    <artifactId>spring-batch-admin-manager</artifactId>
</dependency>

2、配置web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:/org/springframework/batch/admin/web/resources/webapp-config.xml 
    </param-value>
</context-param>
<filter>
    <filter-name>shallowEtagHeaderFilter</filter-name>
    <filter-class>org.springframework.web.filter.ShallowEtagHeaderFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>shallowEtagHeaderFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

3、覆盖batch admin 配置[如果需要]

<!-- override -->
<bean id="jobExplorer"
    class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean"
    p:dataSource-ref="dataSource" p:tablePrefix="PREFIX_" />
<!-- override -->
<bean id="jobService"
    class="org.springframework.batch.admin.service.SimpleJobServiceFactoryBean">
    <property name="jobRepository" ref="jobRepository" />
    <property name="jobLauncher" ref="jobLauncher" />
    <property name="jobLocator" ref="jobRegistry" />
    <property name="dataSource" ref="dataSource" />
    <property name="tablePrefix" value="PREFIX_" />
</bean>

4、访问

http://ip:port/


5、注意事项

webapp-config.xml这个配置会引入spring batch 内部定义的jobRepository,注意覆盖问题

spring.application.name=dataIngestionSystem logging.level.org.springframework.boot.autoconfigure= error #spring.datasource.hikari.jdbc-url: jdbc:hive2://10.99.32.76:10000/myhive #spring.datasource.hikari.driver-class-name: org.apache.hive.jdbc.HiveDriver #spring.datasource.hikari.username: #spring.datasource.hikari.password: spring.datasource.name=dataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://10.99.32.76:3306/data_insystm spring.datasource.username=root spring.datasource.password=JktueGFp01mT1J1r bootstrap.servers=10.99.40.14:21007,10.99.40.13:21007,10.99.40.12:21007 manager_username=xxx manager_password=xxx # Kafka????? spring.kafka.bootstrap-servers=10.99.40.14:21007,10.99.40.13:21007,10.99.40.12:21007 # ????????????????? spring.kafka.security.protocol=SASL_PLAINTEXT spring.kafka.properties.sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/opt/client/jkt_keytab/user.keytab" storeKey=false useTicketCache=false serviceName="kafka" principal="jkt_sjzl@HADOOP.COM"; spring.kafka.properties.sasl.mechanism=GSSAPI spring.kafka.properties.security.protocol=SASL_PLAINTEXT # ????key???? spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer # ????key???? spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer # ????value???? spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer #16KB spring.kafka.producer.batch-size=16384 #1?????? spring.kafka.producer.linger.ms=1 #32MB spring.kafka.producer.buffer-memory=33554432 spring.kafka.producer.acks=all #mybatis-plus.mapper-locations=classpath:mapper/*Mpper.xml #mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl #mybatis.mapper-locations=file:config/*/*.xml
最新发布
05-27
### Spring Boot `application.properties` 文件配置指南 以下是对Spring Boot应用程序中的`application.properties`文件进行配置的详细说明,涵盖了MySQL数据源、Kafka连接以及SASL_PLAINTEXT安全协议的支持。 --- #### 1. **MySQL 数据源配置** 为了使Spring Boot能够正确连接到MySQL数据库,需要在`application.properties`中定义数据源的相关属性。以下是必要的配置项: - `spring.datasource.url`: 指定MySQL数据库的URL。 - `spring.datasource.username`: 连接MySQL的用户名。 - `spring.datasource.password`: 连接MySQL的密码。 - `spring.jpa.hibernate.ddl-auto`: 控制Hibernate的行为模式(如更新表结构或创建新表)。 - `spring.datasource.driver-class-name`: 明确指定驱动类名称。 完整示例如下[^1]: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=liykpntuu9?C spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update ``` > 注意:如果使用较新的MySQL Connector/J版本,请确保URL参数包含`serverTimezone=UTC`以避免时区相关错误。 --- #### 2. **Kafka 配置** 针对Kafka的连接和生产者/消费者设置,可以在`application.properties`中添加以下内容: ##### Kafka Broker 地址 - `spring.kafka.bootstrap-servers`: 定义Kafka集群的地址列表。 ##### Producer 和 Consumer 的通用配置 - `spring.kafka.consumer.group-id`: 消费组ID。 - `spring.kafka.consumer.auto-offset-reset`: 当没有初始偏移量或者当前偏移量不再存在时的操作策略(如`earliest`或`latest`)。 - `spring.kafka.producer.retries`: 生产者失败后的重试次数。 ##### SASL_PLAINTEXT 安全协议配置 根据引用的内容[^2],启用SASL_PLAINTEXT协议需要额外配置以下选项: - `spring.kafka.security.protocol`: 设置为`SASL_PLAINTEXT`。 - `spring.kafka.sasl.mechanism`: 指定SASL机制为`PLAIN`。 - `spring.kafka.sasl.jaas.config`: 提供JAAS登录模块的具体实现。 完整示例如下: ```properties spring.kafka.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=my-consumer-group spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.producer.retries=3 # SASL_PLAINTEXT 配置 spring.kafka.security.protocol=SASL_PLAINTEXT spring.kafka.sasl.mechanism=PLAIN spring.kafka.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="password"; ``` > 特别注意:如果环境不允许直接嵌入敏感信息(如用户名和密码),建议通过外部化配置管理工具(如Vault或Secrets Manager)来保护这些凭证。 --- #### 3. **SSL 加密配置(可选)** 虽然问题未提及SSL加密需求,但如果未来扩展涉及此部分,可以参考以下配置[^3]: - `spring.kafka.ssl.trust-store-location`: 指向信任库文件位置。 - `spring.kafka.ssl.trust-store-password`: 访问信任库所需密码。 - `spring.kafka.ssl.key-store-location`: 指向密钥库文件位置。 - `spring.kafka.ssl.key-store-password`: 访问密钥库所需密码。 示例配置如下: ```properties spring.kafka.ssl.trust-store-location=/path/to/third.truststore.jks spring.kafka.ssl.trust-store-password=test12 spring.kafka.ssl.key-store-location=/path/to/third.keystore.jks spring.kafka.ssl.key-store-password=test123 spring.kafka.ssl.key-password=test1234 ``` --- #### 4. **优化 JVM 参数(适用于高负载场景)** 如果计划监控Kafka性能指标并调整JVM内存分配,可以根据引用内容[^4]自定义JVM参数。这通常通过设置`JAVA_OPTS`变量完成,而非直接写入`application.properties`。不过,也可以间接影响其行为,例如增加堆内存大小或开启JMX端口以便远程调试。 示例: ```properties # 可能需要配合操作系统级别的环境变量 JAVA_OPTS="-Xms2G -Xmx2G" management.endpoint.health.show-details=always management.endpoints.web.exposure.include=* management.metrics.export.enabled=true ``` --- ### 总结配置模板 综合上述各部分内容,最终的`application.properties`文件可能类似于以下形式: ```properties # MySQL Data Source Configuration spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=liykpntuu9?C spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update # Kafka Configuration spring.kafka.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=my-consumer-group spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.producer.retries=3 # SASL_PLAINTEXT Security Protocol spring.kafka.security.protocol=SASL_PLAINTEXT spring.kafka.sasl.mechanism=PLAIN spring.kafka.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="password"; # Optional SSL Encryption (if applicable) # spring.kafka.ssl.trust-store-location=/path/to/third.truststore.jks # spring.kafka.ssl.trust-store-password=test12 # spring.kafka.ssl.key-store-location=/path/to/third.keystore.jks # spring.kafka.ssl.key-store-password=test123 # spring.kafka.ssl.key-password=test1234 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值