Giter VIP home page Giter VIP logo

austin's Introduction

作者 项目群交流 Gitee Starts Gitee Starts issue-open issue-close issue-close issue-close issue-close jdk版本 SpringBoot版本 Centos版本 MySQL版本 maven版本 ORM框架 ORM框架 分布式定时任务 分布式配置中心 分布式消息队列 分布式日志采集 计算引擎 系统监控 系统监控 部署 部署 部署 部署 前端

🔥项目在线演示地址:http://119.91.205.248:3001

🔥11W+字,共107个文档,带你玩转austin,详情可戳:消息推送平台文档

消息推送平台austin介绍

核心功能:统一的接口发送各种类型消息,对消息生命周期全链路追踪。

意义:只要公司内部有发送消息的需求,都应该要有类似austin的项目。消息推送平台对各类消息进行统一发送处理,这有利于对功能的收拢,以及提高业务需求开发的效率。

项目特性

简单易用:通过Web页面快速对接模板,操作简单,一分钟上手

多渠道消息下发:支持短信、邮件、微信服务号(模板消息)、微信小程序(订阅消息)、钉钉(群机器人)、钉钉(工作消息)、安卓push通知栏、企业微信(机器人消息)、企业微信(应用消息)、飞书机器人消息。

渠道资源隔离:不同的渠道不同的消息类型下发互不影响。例如邮件下发通道跟短信下发通道是隔离的,邮件发送缓慢不影响短信的正常发送。

全渠道多维度消息链路追踪:分别以用户、模板、消息的维度监控下发的过程,可准实时查看消息下发的情况。

配置化人群定时消息下发:上传人群文件,设置cron表达式定时下发消息。

消息模板动态可变:模板支持通过占位符,支持可变参数动态传入。

高性能发送接口:异步发送接口,支持批量发送,能支撑高并发流量。

多渠道素材管理:钉钉/企业微信的富文本消息需提前将素材上传至渠道平台。

高效接入新短信渠道:利用hades规则引擎无需系统发布上下线,即可接入新的短信渠道。

短信流量可配置:短信多渠道可动态配置发送到每个短信渠道的流量占比。

消息推送平台特性:支持消息下发文案和频次去重,夜间消息屏蔽或次日发送。

容器化部署:项目支持docker部署,项目相关中间件用docker-compose一键部署。

使用姿势

1、创建需要发送的渠道账号

2、创建消息模板

3、测试发送消息是否正常

4、查看消息下发情况

5、亦可在新建模板时选择定时任务,通过上传csv文件和指定cron表达式实现下发消息

部署姿势

austin项目强依赖MySQL/Redis/(大概需要2G内存),弱依赖kafka/prometheus/graylog/flink/xxl-job/apollo/hive(完全部署所有的服务,大概16G内存)。如果缺少相关的组件可戳:安装相关组件教程

实在想要clone项目后不用自己部署环境直接在本地启动debug,我这提供了股东服务直连部署好的服务器。

1、austin目前使用的MySQL版本5.7x,如果你使用的MySQL版本8.0,注意改变pom.xml所依赖的版本以及对应的连接信息。

2、填写application.propertiesspring.datasource对应的ip/port/username/password信息

3、执行doc/sql文件夹下的austin.sql创建对应的表

4、填写application.propertiesspring.redis对应的ip/port/password信息

5、以上配置信息都在application.properties文件中修改。(prometheus/graylog/flink/xxl-job/apollo/kafka/hive可选)

6austin前端管理系统部署,戳GitHubGitee跳转至对应的仓库

7、(可选)正常使用数据管理(查看实时数据链路下发)需要将austin-streamjar包上传至Flink,根据部署文档启动Flink。在打jar包前需要填写com.java3y.austin.stream.constants.AustinFlinkConstant中的rediskafkaip/port(注意:日志的topic在application.properties中的austin.business.log.topic.name。如果没有该topic,需要提前创建,并使用Kafka作为消息队列实现)

8、(可选)正常使用定时任务需要部署xxl-job,根据部署文档启动xxl的调度中心,并在application.properteis中填写 austin.xxl.job.ipaustin.xxl.job.port

9、(可选)正常使用分布式日志采集需要部署graylog,根据部署文档启动graylog,并在application.properteis中填写 austin.graylog.ip

10、(可选)正常使用系统监控需要部署promethusgrafana,根据部署文档配置grafana图表。

11、(可选)正常使用动态配置中心需要部署apollo,根据部署文档启动apollo,通过docker-compose启动需要在AustinApplication注入对应的ip和port(可看注释)。

12、(可选)正常使用数据仓库需要部署hive,根据部署文档通过flink把数据写入到hive中(flink环境也要安装好),将austin-data-housejar包提交到flink执行

官方项目交流群

austin项目官方交流群已经超过了两百人,添加我的个人微信 java3yyy 添加时备注:【项目】,我空的时候会拉进项目交流群里。

项目文档

🔥11W+字,共107个文档,带你玩转austin,详情可戳:消息推送平台文档

austin's People

Contributors

cao-growth avatar cellur avatar clove0207 avatar da-daken avatar dqget avatar javabcde avatar jorgenzho avatar jwqsocool avatar kosmosr avatar kuangle0528 avatar kyw7 avatar leesin9527 avatar liruohrh avatar luohaojie520 avatar lyf226919 avatar mengmengdelaozhao avatar pendj avatar pottercoding avatar qqxx6661 avatar seafeee avatar shih945 avatar tonypengjun avatar topsuder avatar vincentzee avatar whywhathow avatar wuhui2100 avatar xiaoso456 avatar xiaoxiamo avatar xupt-chenxi avatar zhongfucheng3y avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

austin's Issues

ReceiverStart java.lang.IndexOutOfBoundsException

Caused by: java.lang.IndexOutOfBoundsException: Index: 33, Size: 33
at java.util.ArrayList.rangeCheck(ArrayList.java:659)
at java.util.ArrayList.get(ArrayList.java:435)
at com.java3y.austin.handler.receiver.kafka.ReceiverStart.lambda$groupIdEnhancer$0(ReceiverStart.java:77)
at org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor.lambda$buildEnhancer$1(KafkaListenerAnnotationBeanPostProcessor.java:321)
at org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor.enhance(KafkaListenerAnnotationBeanPostProcessor.java:418)
at org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor.findListenerAnnotations(KafkaListenerAnnotationBeanPostProcessor.java:400)
at org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor.lambda$postProcessAfterInitialization$2(KafkaListenerAnnotationBeanPostProcessor.java:343)
at org.springframework.core.MethodIntrospector.lambda$selectMethods$0(MethodIntrospector.java:74)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:364)
at org.springframework.core.MethodIntrospector.selectMethods(MethodIntrospector.java:72)
at org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor.postProcessAfterInitialization(KafkaListenerAnnotationBeanPostProcessor.java:341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
... 23 common frames omitted

🔥谁在使用 Austin?

谁在使用 Austin

非常感谢社区朋友对 Austin 的关注和支持,我会持续投入精力开发和维护,支持 Austin 走的更远。

生产环境已接入的公司开源项目,欢迎在该 Issue 登记,登记仅仅为了产品推广。

此 Issue 的目的

收集在生产上使用 Austin 的用户
聆听社区内一线开发声音,让 Austin 变得更好
吸引更多的人参与贡献,扩大社区和个人影响力
更多的了解 Austin 的实际使用场景,以方便下一步的规划

期待您能提供

您所在的城市
您所在的公司
您所在公司的官网

示例格式1:
地点:北京
组织:xxx 公司
官网:xxxxx.com

示例格式2:
开源项目地址:https://github.com/xxxxx
上线地址: xxx.com

没什么数据,列表查询耗时近10秒

image

刚本地跑通,啥数据都没有,第一次进模板列表接口转近10秒,切到渠道账号走一下列表查询,再回来模板列表,奇怪没啥数据为啥每次都能耗近10秒,难道是切页面每次数据源都能重新建立连接

email.notice 分组没有消费到消息

我是本地启动项目,使用的kafka中间件,在项目启动时创建了36个消费者。如果消费一次消息,Receiver.consumer 方法是不是得执行36次。但是在这个方法里打印了一下 topicGroupId 只输出了26次。没有 email.notice 消费者分组,所以导致没有执行邮件发送操作
image
image

邮箱正则校验会过滤掉一些合法邮箱

项目里面默认的 邮箱正则为以下

 public static final String EMAIL_REGEX_EXP = "^[A-Za-z0-9-_\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";

当我输入 [email protected] 时, 正则会认为是一个非法邮箱
从 ChatGPT 获取一个合法的正则如下, 作者可以更新下

public static final String EMAIL_REGEX_EXP = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";

sms推送问题

现在的短信推送都是需要提前备案的,备案通过之后,有一个templateId,但是我看templateId是和配置写在一起的,加载配置的时候就加载templateId,不能选择想要发送的templateId吗?

send email error

2023-08-10 09:35:11.376 [dynamic-tp2] ERROR c.java3y.austin.handler.handler.impl.EmailHandler - EmailHandler#handler fail!cn.hutool.extra.mail.MailException: MessagingException: Exception reading response
at cn.hutool.extra.mail.Mail.send(Mail.java:393)
at cn.hutool.extra.mail.MailUtil.send(MailUtil.java:416)
at cn.hutool.extra.mail.MailUtil.send(MailUtil.java:194)
at cn.hutool.extra.mail.MailUtil.send(MailUtil.java:176)
at com.java3y.austin.handler.handler.impl.EmailHandler.handler(EmailHandler.java:61)
at com.java3y.austin.handler.handler.BaseHandler.doHandler(BaseHandler.java:61)
at com.java3y.austin.handler.pending.Task.run(Task.java:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: javax.mail.MessagingException: Exception reading response;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at cn.hutool.extra.mail.Mail.doSend(Mail.java:407)
at cn.hutool.extra.mail.Mail.send(Mail.java:385)
... 9 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alert.createSSLException(Alert.java:131)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:370)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:313)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:652)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:471)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:367)
at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:376)
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:479)
at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:457)
at sun.security.ssl.TransportContext.dispatch(TransportContext.java:200)
at sun.security.ssl.SSLTransport.decode(SSLTransport.java:155)
at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1320)
at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1233)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:417)
at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:837)
at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:76)
at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:923)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
... 18 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
at sun.security.validator.Validator.validate(Validator.java:271)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:312)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:128)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:636)
... 36 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)
... 42 more

支持一下

看了一下,蛮不错的,支持一下大佬。😁

如何使用项目演示地址配置邮箱渠道消息

我想利用项目的演示地址完成一次测试,具体配置如下:

渠道账号管理:

image

模板:

image

结果:

image

我猜测应该是渠道账号设置问题,小白不是很了解配置qq邮箱管理渠道账号应该如何对应qq邮箱中的设置(即使项目给了样例),希望解答!!!

启动失败

这个SpringBoot用项目的2.5.6版本,打包文件各种缺失
image

尝试升级到2.6.2版本,打包成功,启动提示不能循环依赖,这个还得额外处理依赖的问题

Maven Install error

没有找到安装的步骤,于是按照我自己的理解,使用mvn install时会报错

[ERROR] Failed to execute goal on project austin-data-house: Could not resolve dependencies for project com.java3y.austin:austin-data-house:jar:0.0.1-SNAPSHOT: Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde in nexus-163 (http://mirrors.163.com/maven/repository/maven-public/) -> [Help 1]

修改配置优化接口响应

页面接口列表第一次进来耗时都是2秒多,但是同个页面连续查询,除了第一次,后面都是几毫秒。本地测试的时候通过main()启动项目,debug发现无涉及数据库操作通过校验直接返回的也是两秒多。
下面是通过几处配置的修改将接口响应优化到文档几毫秒返回(还未涉及数据库查询的)比如短信下发数据,58行直接返回。
image

  1. 升级mysql依赖版本,引入druid连接池管理
    /austin/pom.xml
    <properties>
        <druid-spring-boot-starter.version>1.1.22</druid-spring-boot-starter.version>
        <mysql-connector-java.version>8.0.20</mysql-connector-java.version>
    </properties>


    <dependencyManagement>
           <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid-spring-boot-starter.version}</version>
            </dependency>
    </dependencyManagement>

/austin/austin-support/pom.xml 添加

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>
  1. 修改项目工程配置,数据库连接添加druid相关配置
    /austin/austin-web/src/main/resources/application-dev.yml
spring:
  datasource:
    name: austin
    url: jdbc:mysql://127.0.0.1:3306/austin?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
    username: ${austin.database.username:root}
    password: ${austin.database.password:123456}
    # 使用Druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    druid:
      filters: stat
      maxActive: 200
      initialSize: 1
      maxWait: 60000
      minIdle: 1
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: select 'x'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: false
      maxOpenPreparedStatements: 2

优化前
image

看下优化后的接口响应
image

关于 README 中的图床问题

在 Gitee 中看到相关的 Issue

有点好奇,为什么不将图片放在仓库中,然后在 README 中引用?

另外,有点好奇这个项目,Gitee 和 Github 两边维护,如何进行同步?

是在 git 的 config 中配置两个 remote 地址,push 两次吗

那这样的话,对于 PR,岂不是也要人工同步?

The system has an SSRF vulnerability.

Using SSRF vulnerability to exploit file protocol to read local files.
Add an email message template.You need to fill in your own email address.
Write the attachment link as file:///etc/passwd.
1704639390_659abb9e1e74c6e3debb3
Save and Test
图片2
The email received a message and carried the passwd attachment.
image
image

austion项目打印日志操作有问题

在本地启动了austin项目,发现一些list接口非常耗时,平常2~3秒,明明是简单的查询,没有涉及什么复杂的逻辑。排查之后,发现是log的打印操作这么耗时,个人技术能力有限,希望能够排查下,下图可以看出打印花费两秒多。
image

推送消息的记录是否存储在redis中?

我运行项目,推送通知后查询不到推送记录,原生代码里是否有相关存储逻辑?
我在austin-handler->pending->Task.java中发现是有跑推送任务,但是实际没有进行redis存储
image

代码结构和可读性可以,但老夫有些问题看阁下又当如何应对

  1. 占位符未被替换完成之后,是不是要拦截,不然占位符会有直接发出去的风险。
  2. 从代码功能来看,这个系统应该是push的最下面的中台,不应该有模版id的概念,也不应该有msgType的概念
  3. receiver被过滤掉后接口应该将receiver过滤原因返回,response应该是receiver维度的一个push结果

当消息中间件为Kafka,用户不传tagId,是否会报空指针异常?

@OverRide
public void send(String topic, String jsonValue, String tagId) { //若此时用户不传tagId
if (StrUtil.isNotBlank(tagId)) {
List

headers = Arrays.asList(new RecordHeader(tagIdKey, tagId.getBytes(StandardCharsets.UTF_8)));
kafkaTemplate.send(new ProducerRecord(topic, null, null, null, jsonValue, headers));
} else {
kafkaTemplate.send(topic, jsonValue);
}
}

@Override
public void send(String topic, String jsonValue) { //不传tagId
    send(topic, jsonValue, null);
}

@Bean
public ConcurrentKafkaListenerContainerFactory filterContainerFactory(@Value("${austin.business.tagId.key}") String tagIdKey,
                                                                      @Value("${austin.business.tagId.value}") String tagIdValue) {
    ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory();
    factory.setConsumerFactory(consumerFactory);
    factory.setAckDiscarded(true);

    factory.setRecordFilterStrategy(consumerRecord -> {
        if (Optional.ofNullable(consumerRecord.value()).isPresent()) {
            for (Header header : consumerRecord.headers()) {
                if (header.key().equals(tagIdKey) && new String(header.value()).equals(new String(tagIdValue.getBytes(StandardCharsets.UTF_8)))) {  //若用户不传tagId,这行代码是否会报空指针异常?
                    return false;
                }
            }
        }
        //返回true将会被丢弃
        return true;
    });
    return factory;
}

你好,maven打包提示关联的jar,已经找不到了。

Failed to execute goal on project austin-data-house: Could not resolve dependencies for project com.java3y.austin:austin-data-house:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.apache.hive:hive-exec:jar:2.3.4 -> org.apache.calcite:calcite-core:jar:1.10.0 -> org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde: Failed to read artifact descriptor for org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde: Could not transfer artifact org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [datanucleus (http://www.datanucleus.org/downloads/maven2, default, releases), glassfish-repository (http://maven.glassfish.org/content/groups/glassfish, default, disabled), glassfish-repo-archive (http://maven.glassfish.org/content/groups/glassfish, default, disabled), apache.snapshots (http://repository.apache.org/snapshots, default, snapshots), central (http://repo.maven.apache.org/maven2, default, releases), conjars (http://conjars.org/repo, default, releases+snapshots)] -> [Help 1]

Unable to acquire JDBC Connection

❓ dev环境启动项目后,一段时间不操作,再次操作时出现DB超时问题, 超时时间设置多大合适呢?

2023-01-30 17:08:58.282 [http-nio-8080-exec-3] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - HikariPool-1 - Connection is not available, request timed out after 30014ms.
2023-01-30 17:08:58.286 [http-nio-8080-exec-3] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - No operations allowed after connection closed.
2023-01-30 17:08:58.324 [http-nio-8080-exec-3] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Unable to acquire JDBC Connection; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.