- 博客(22)
- 收藏
- 关注
原创 记一次kafak异步发送变同步阻塞的问题
在发送kafak 消息时,用的kafkaTemplate.send(), 返回的是个Future对象,没有get()去阻塞,发送方法是异步的。但是有次在切内网测试时发现这个方法被阻塞了。经过不断调试,发现当第一次启动发送消息时,如果有网络问题,获取卡夫卡服务器不可达,会造成阻塞。经查阅文档,发现第一次发送消息时生产者回请求kafak服务端,获取该主题的元数据 Metadata,Metadata 内容包括了主题相关分区 Leader 所在节点信息、副本所在节点信息、ISR 列表等,Kafka Produ
2022-03-11 11:05:15
2446
原创 使用restTemplate上传微信素材
给企业微信上传素材时发现微信素材的包体真是复杂,以前还没遇到过,可能是之前的接口都比较简单吧。开始试着上传了几次都是报包体缺失,后面上传上去了,单没法重命名文件名。最終解決,测试代码如下,留着以后备用。 @PostMapping("/up/3") public String v3(MultipartFile file) throws IOException { String chaceUrl = StrUtil.format("https://qyapi.weixin.qq.c
2022-03-09 10:51:42
720
原创 spring cloud stream 使用rocket笔记
趁着打算重新找工作,刚好把之前的笔记整理整理,这篇笔记是当初在使用stream 连接rocketmq时的一些笔记当时我们用的spring cloud stream 版本是3.1,当我去向往常一样去用注解绑定通道时@EnableBinding(),我的编译器亲切的告诉我这个注解已经被废弃了?way?Enables the binding of targets annotated with Input and Output to a broker, according to the list of inte
2021-08-15 23:50:19
925
1
原创 springboot 集成Security 框架(1)
springboot 集成Security 框架之前的项目都是用的Security 作为鉴权框架,项目中实际也用了四五个了,可是发现每次用的时候都记不住了,所以还是记下来吧,作为自己的笔记吧springboot 先引入Security依赖,Security 已经有了boot 的starter 包直接可以引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId&g
2021-08-13 22:38:06
185
原创 微服务环境下的quartz集成的一些想法记录
微服务环境下的quartz集成的一些想法记录当前项目是基于springcloud 应用的架构,当前业务需要我在一个微应用内集成了quartz完成某些需要定时执行的业务,后其他同事的其他应用其他项目也需要使用调度任务,所以有了将调度任务单独抽取成一个子项目,共其他项目使用的需求,之前的调度任务已经利用quartz 实现了自定义的业务任务表,通过接口可以对任务进行维护;开始没有多想,直接重构;我将调度任务除web接口层外的核心抽取到一个子模块,其他需要使用的项目直接依赖这个模块,配置完自动装载等一些配置,原
2021-07-14 17:44:53
531
原创 spring Bean初始化时执行方法
spring bean 初始化、销毁时想要执行方法一般有一下几种方式1:在配置类中 @Bean(initMethod = “init”,destroyMethod = “destory”)注解指定 *2:实现InitializingBean接口重写其afterPropertiesSet方法,实现DisposableBean接口重写destroy方法3:利用java的JSR250规范中的@PostConstruct标注在init方法上,@PreDestroy标注在destroy注解上这几个初始化
2021-05-26 09:06:57
1854
原创 日常问题记录:springboot项目启动加载sql脚本
项目需要在执行单元测试前初始化数据库脚本,开始用flyway做全局脚本加载,由于是web项目,单元测试前需要先加载完spring容器的上下文,项目本身有一些数据库访问要在bean初始化时执行,在一个空数据库里就会导致项目启动阶段就失败了。遂考虑在springboot启动该阶段加载数据库初始化的脚本。springboot 2.X版本在项目启动时想要加载数据库脚本以后的版本需要如下配置 schema: # 指定的数据库脚本位置 - classpath:junitDB/sch
2021-05-20 14:49:10
487
原创 jasypt加密数据库链接遇到的问题
公司要让把项目配置文件加密,给的方案是让用jasypt这个库,网上找了堆资料一通操作,大致是这样的引入springboot的jasypt依赖用的最新版3.0.3 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</ver
2021-05-11 11:23:46
2026
2
原创 若依集成mybatisplus遇到的问题
项目前期准备工作,之前用惯了mybatisplus,就想趁着前期准备时间顺便把下个项目要用的ruoyi框架升级下,遇到的问题顺便记录下。用的最新版3.4.1版本,配置完依赖,官网说引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。所以需要移除若依框架里的mybatis依赖。看了下maven依赖关系,发现pagehelper 分页插件里依赖了mybatis,这里直接排除掉。 <!-- pagehelper 分页插件
2021-01-19 13:55:58
6258
7
原创 spring cloud alibaba 笔记 (四)服务熔断 集成sentinel
Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至
2020-12-01 16:26:31
674
原创 spring cloud alibaba 笔记 (三)nacos 通过Feign服务调用
接上篇:spring cloud alibaba 笔记 (二)nacos 服务发现spring cloud alibaba 自带的是dubbo 组件进行服务间的调用,因为之前没接触过,这里先用Feign,后面有学习了再写下来。Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS 注解。Feign 支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,N
2020-11-27 14:29:30
1101
1
原创 spring cloud alibaba 笔记 (二)nacos 服务发现
接上篇spring cloud alibaba 笔记 (一)nacos 部署接下来创建微应用项目项目结构如下父项目pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation
2020-11-21 18:47:09
217
原创 spring cloud alibaba 笔记 (一)nacos 部署
spring cloud alibaba 笔记 (一)nacos 部署之前想把spring cloud alibaba docker 部署学习记录下来,已经写了几篇,结果我的虚拟机因为docker 的守护进程问题,负载满了,无奈把虚拟机还原了,打算在阿里云上在部署后再接着写,结果部署测试的时候,发现起了4、5个docker容器就剩几百兆内存,我阿里云的内存也不太够,再加上其他的一些事,暂时就放弃了。现在重新开坑。就不用docker 的方式了。nacos 部署之前已经说过的nacos 是一个服务注册组
2020-11-21 15:31:32
231
原创 nacos启动报错
nacos 源码编译后启动报错按照官方操作,下载源码在我的笔记本 windows上编译,移到linux 上启动报错,错误如下startup.sh: line 2: $'\r': command not foundstartup.sh: line 7: $'\r': command not foundstartup.sh: line 15: $'\r': command not found这个错误是因为我是在windows 上编译的生成的文件启动脚本中的换行和linx不一样执行vim sta
2020-11-12 17:59:30
1929
2
原创 java Float.isNaN(float v)
源码学习笔记:关于Float.isNaN 今天在看HashMap源码时,偶然间看到一个方法很有意思 public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " +
2020-11-03 16:37:05
1278
原创 spring-cloud-alibaba+docker搭建三:服务注册
上一篇文章我已经在linux 部署了 nacos 的服务,这篇将新建一个示例工程,并将该工程注册进nacos 中一、创建微应用我将在IDEA 中创建一个maven多模块的工程,用来测试服务注册,首先建立一个spring boot 工程,创建过程相信大家都会,不用多说,这个工程作为父工程,删除里面没用的文件,只保留pom文件,父工程的好处是便于管理依赖版本,网上有很多教程,然后在该工程下建立...
2020-04-27 14:58:57
1565
3
原创 spring-cloud-alibaba+docker搭建二:服务发现nacos+docker部署
上篇文章我选择确定了基础的版本,这篇文章将用docker 部署nacos 服务nacos一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。如果你使用过spring cloud 那么你就知道 nacos 的功能涵盖了 Spring Cloud Config、Spring Cloud Bus、Eureka ,而且还更好用。这是官网的描述,总之很牛逼就对了。地址:naco...
2020-04-27 12:59:37
2380
原创 spring-cloud-alibaba+docker搭建一:基础环境版本选择
本系列文章是我个人学习 spring-cloud-alibaba 的记录,采用docker 容器化搭建spring-cloud-alibaba环境,阅读需要有基础的docker知识,其中的配置我会尽量写清楚来源,授人以鱼不如授人以渔,适合新手入门。如果这篇文章帮到给你请给个收藏点赞。版本选择spring-cloud-alibaba是什么就不用多说了,现在要搭建环境,第一步当然是确定版本,开...
2020-04-27 10:59:11
2052
原创 springboot中mybatisplus基于注解的多对多级联查询
mybatisplus使用注解多对多级联查询mybatis提供了注解和xml两种方式配置我们的sql语句,我在接触使用的过程中更喜欢注解的方式,在我的上一个项目中,我全部使用mybatis注解去完成增删改查,后来我接触了mybatisplus,它我的工作提供了极大的方便,这篇文章就是我基于mybatisplus来完成级联查询的一个简单总结说明。这里假设你已经会mabatisplus的简单使用,如...
2019-08-01 00:17:28
19406
8
原创 springboot 链接多数据库,动态获取数据源信息
springboot 链接多数据库,动态获取数据源信息前言最近公司有个需求需要后端访问多个数据库,在网上查了半天资料,结果发现大部分都是配置的主从库这种数据源固定的情况,不符合我的需求,假设我们有这样一种需求,后端需要从一个数据库的配置表里动态的读取其它mysql数据库的链接配置信息,并根据链接信息动态创建数据库链接,发起请求,而且还要能使用现在的一些链接池。最后找到了这篇博客https:...
2019-04-09 18:12:32
11103
17
原创 mybatis使用注解,多参数增删改查
mybatis 注解方式,多参数增删改查一些准备工作mapper最近要用springboot做一个项目,开始持久层使用的jpa,后来由于业务中涉及到很多不确定数据库字段,以及用户新增的表,用jpa无法完成需求,再加上在更新数据时,jpa会把属性为null的参数也更新,必须要再查一遍,然后拷贝属性后再更新,感觉很影响性能,无奈又用起了mybatis,又不想写mybatis的xml映射文件,遂又开始...
2018-12-03 12:59:52
1263
原创 java使用Access数据库中通配符的一些坑
java使用Access数据库中通配符的一些坑在使用access数据库写一个条件为like的语句: select mess_id ,mess_name,mess_note,mess_txt from messtable where 1=1 and mess_name like ‘*美*’ 意思是查询mess_name中包含‘美’字的数据,因为access中*号代表任意个字符,这个其他数据库...
2018-09-03 18:19:27
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人