- 博客(25)
- 收藏
- 关注
原创 Springboot项目FTP工具类实现
在项目中涉及ftp文件操作一般有两种方式,一种是ftp操作,使用21号端口,一种是sftp操作,使用22号端口。sftp因为文件传输进行加密,会比ftp安全,但是导致了传输速度低不少,在项目中可以根据对安全性和性能要求,选择哪种ftp操作方式。本文将介绍两种方式的工具类实现。
2023-10-19 17:45:42
874
原创 springboot集成商业paas版rocketmq
一直秉着项目中使用开源软件的原则,期间也遇到过开源软件bug,所以在项目生产环境也尽量不要使用最新版开源软件。有幸参与土豪公司项目,使用了商业版的rocketMq,与开源的使用有点差别,直接上干货记录下。
2023-01-03 10:40:47
691
1
原创 kubesphere在linux上离线安装
利用项目空闲期,决定选型个PASS平台,让项目运行在上面看上去更高大上点。本人以前使用过openshift,刚开始倾向于使用比较熟悉的平台,选型时跟其他技术大咖沟通交流了下,好几位反馈kubesphere比较不错,看了下是国内开源的PASS平台,也比较新,本着支持国货的原则,最终选择使用kubesphere,记录下部署和使用过程。很多时候生产环境是跟公网隔离的,在使用部署直接选择了离线部署kebesphere,不多说直接上干货。...
2022-06-09 12:12:23
1829
3
原创 springboot项目通过bean的name或者type获取类
项目中获取类实例,我们一般使用@Autowired或者@Resource直接注入使用。但在某些场景下,我们实现类@Service或者@Componet注解,私有变量无法自动注入,这时我们就需要自己在new的时候初始化。常见于线程里面有需要注入的service类,这时候我们在new线程时候,无法自动注入,需要自己手动获取bean,本文介绍springboot项目通过bean的name和type获取类实例工具类,直接上代码。1、SpringContextUtils.javapackage net.gr
2022-05-05 15:16:32
4063
原创 springboot项目redis工具类
package net.wfl.framework.boot.tools.redis;import com.alibaba.fastjson.JSONObject;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.condition.Conditiona.
2022-05-05 09:46:04
940
原创 springboot封装linux交互工具类
项目中用到linux交互,对此做了封装,作为工具类使用1、pom.xml<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version></dependency>2、 LinuxUtil.javapackage net.wfl.f
2022-04-24 11:16:13
1697
原创 springboot集成及封装xxl-job
现有项目都是分布式部署,一个项目模块也许需要多个实例运行。定时任务在项目中一般是不可缺少的,springboot自带的@Scheduled注解单节点运行是没有问题的,但是多实例运行会导致同一个定时任务运行多次,结果不是预期的,虽然可以通过分布式锁,让多实例上只一个节点运行。在定位任务选型中,本人选型使用xxl-job,优点不多说,直接上代码。1、pom.xml <dependency> <groupId>com.xuxueli</groupId
2022-04-24 10:45:29
894
原创 springboot项目elsearch工具类实现
项目中用到了es,通过ELK存储日志,然后通过系统界面查询,对此es常用操作做了封装,不多说,直接上代码。环境:jdk(1.8)+es(7.15.2)+springboot(2.3.5.RELEASE)1、pom.xml<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client&l
2022-04-21 10:47:22
2862
原创 ES常见查询示例
一、ES查询示例1、查看es信息GET /2、创建索引PUT demo_person3、删除索引DELETE demo_person说明:DELETE /index_one,index_two --删除两个索引DELETE /index_* --删除index_k开头的索引DELETE /_all --删除全部索引DELETE /* --删除全部索引4、创建索引包含setting和mappingPUT demo_person{...
2022-04-18 15:29:33
30689
1
原创 ELK从零搭建(filebeat+kafka+logstash+es+kibana)
当系统规模比较大,模块非常多时,或者一些重要日志需要归档时,就需要有个日志统一管理平台。本人所在公司有个需求,边缘端的日志需要统一上传管理,方便后续问题定位。方案是边缘端定时打包日志上传到fastdfs,然后把url推送到业务端,业务根据url从fastdfs上获取到日志,解压缩到指定目录,filebeat获取到日志发生变化,然后解析发送到kafka,logstash监听kafka把日志存储到es里面,然后业务系统可以在界面查询。本文主要介绍EKL搭建,对于业务系统ES操作封装后续有时间介绍。一、fil
2022-04-13 15:15:58
6801
原创 skywalking向前端页面返回traceId
没有使用链路跟踪时,页面报错都是要到日志里定位,在分布式部署的项目中,还是比较麻烦的。项目中链路跟踪本人选型了skywalking,为了方便定位页面问题,实现了web界面reponse中返回skywalking的traceId,不多说直接上代码实现。1、pom.xml引入 <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-tr
2022-03-31 12:06:24
2889
原创 linux环境skywalking搭建及项目应用
现在项目一般都是多实例,分布式部署,一个请求也许会需要多个项目模块响应,链路比较长。前端页面请求出现问题了,定位需要多个项目挨个查看日志,在生产环境日志量比较大,刷新的也比较快,会给问题定位带来很大的难度,所以链路跟踪是非常必要的。在工作中使用过zipkin和skywalking,也使用过arths,在最近项目选型链路跟踪软件果断选择了skywalking了,好处不多说,直接上从0开始部署方法。一、ES安装1、去ES官网下载(Download Elasticsearch | Elastic),选择l
2022-03-23 11:08:41
5804
1
原创 springboot项目多租户实现
公司规划了一个AIOT平台项目,希望将来可以提供SAAS服务,可设备接入、算法训练及算法接口发布。写此博文时,本人已经实现了IOT部分(已测试完毕发布),多租户不同设备接入以及设备数据转发。本文着重介绍项目中多租户实现。主流的租户实现一般有两种方式,一种是所有表字段冗余租户ID字段,在增删改查时拦截sql语句进行拼接租户ID字段,达到不同租户展示不同数据的目录;另一种方式每个租户对应一个业务逻辑库,增删改查映射到租户对应的业务库,达到多租户效果。本人采用了第二种实现方式,不多说,直接上代码。1、实现涉及
2022-02-17 09:56:58
5258
2
原创 shardingSphere-5.0.0-beta,HINT-INLINE失效bug及解决方法
项目中分库分表中间件我选型了使用ShardingSphere,因为本人是个java码农,ShardingSphere对java支持度比较高。作为开发人员比较愿意直接在项目中配置分库分表,所以项目中使用了sharding-jdbc,项目在去年10月份引入shardingSphere最新版本5.0.0-beta,发现自定义算法HINT-INLINE失效,浪费了一下午定位,发现是一个bug,记录下。1、问题现象我实现了一个多租户管理平台,不同租户之间分库,租户管理员初始库默认ds0,涉及租户超级管理员的数
2022-02-14 13:44:30
1847
原创 springboot项目实现mqtt客户端
公司中项目大多是物联网项目,需要跟设备进行交互,用到的协议比较多,如NB/MQTT/LWM2M/COAP等,项目中不可避免用到了MQTT协议,本文介绍springboot项目MQTT客户端实现,不多说直接上可执行代码。一、EMQ官网java sdk demo,如果只需要用到一个客户端,可以参照下官网demo,修改下应用用项目1、pom.xml依赖引用<dependency> <groupId>org.eclipse.paho</groupId> &..
2022-02-09 14:33:44
13984
18
原创 springboot监听或发布配置到nacos
公司要求平台实现多租户,我实现方案是添加租户,动态创建数据库,然后把最新数据源publish到nacos,通知各实例模块数据源发生变化,各模块接收到通知,从nacos获取最新数据源更新已经初始化的数据源,通过shardingjdbc的分库达到不同租户访问自己数据源的效果,最终实现多租户且数据源完全隔离。整个方案实现细节比较多也有点小复杂,后续有时间写文章详细介绍,此文抠取nacos监听和发布进行分享。1、bootstrap.yml配置spring: profiles: active:
2022-01-18 14:13:12
3939
原创 The props`strategy` cannot be null when uses class based sharding strategy
利用shardingjdbc(5.0.0-beta)分库,自定义了分库策略,项目启动报错:The props`strategy` cannot be null when uses class based sharding strategy发现sharding在定义算法名称的时候,不支持算法命名下划线_,支持横杠-,错误定义配置如下由database_tenant改为database-tenant后,可成功启动项目,并按照自定义分库策略执行...
2022-01-13 20:51:51
1070
原创 JAVA常用http请求工具类封装
几乎每个web项目都会用到http请求,空闲时间封装了一个工具类,分享出来,用到的时候可以直接拷贝使用import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.Url
2021-12-08 15:34:16
2796
原创 springboot自定义注解+mybatis拦截器实现数据权限
基本所有的系统都会涉及菜单访问权限和数据访问权限。对于菜单访问权限一般实现方式都差不多,用户登录时加载具有访问权限的菜单,然后进行展示,用户访问菜单时通过统一的拦截器服务器端再次判断是有具有访问权限,防止前端直接url越权访问;对于细粒度具体到按钮级别的访问控制,实现方式也差不多,一个具体到菜单访问url,一个具体到方法访问url,对于菜单访问权限设计实现此文不做过多介绍。对于数据权限,一般需要根据系统实际的业务场景进行设计实现,那些脱离业务谈数据权限都是扯淡的。参与的一个项目,需要实现如下数据权限,可以设
2021-12-01 14:43:22
4270
3
原创 JVM占用CPU过高或者线程卡死定位
新项目上线初期经常会遇到CPU过高或者线程卡死问题,这虽然是两类性能瓶颈问题,但是定位方法一致,项目中也遇到过几次,分享下定位经验1、登录项目所在服务器,直接执行top命令,可以看到cpu使用情况,详细看到某个进程占用cpu的情况和执行时间,此时一般会发现某个进程占用cpu超过100%,且执行时间特别长,此进程一般就是罪魁祸首。利用ps -ef | grep 1388924可以发现此进程为项目执行的进程2、找到占用cpu过高或者执行时间很长的进程,然后执行top -Ph 1388924(..
2021-11-16 16:06:45
3285
原创 JVM一直FullGC内存溢出定位
JVM内存溢出是java编码比较常见的一种性能问题,这种问题在开发和测试环境不容易发现,但是上线初期项目运行一段时间,很容易出现。比较常见于excel导出,非分页大数据量查询等,在工作期间也多次遇到和处理此类问题,分享下定位方法。内存溢出现象:界面访问突然卡顿,刷新后无法加载出页面。用F12查看,一直处于后端请求直到超时报错;后端查询日志,基本无日志输出,仅仅从日志层面无法看出什么原因导致。内存溢出原因:大量创建对象,对象处于存活状态,对象在老年代中fullGc无法回收,一直fullgc导致st..
2021-11-09 11:41:11
3579
原创 Fastdfs搭建及springboot集成封装
背景:有机会从0-1架构设计智慧消防领域的解决方案项目,涉及到文件的存储,果断放弃了传统的服务器直接文件存储和ftp存储,选择使用国内比较热的fastdfs,新的项目肯定选择使用最新的版本V6.07,记录下Fastdfs的搭建及项目中封装使用开发环境:springboot(2.3.5.RELEASE)+fastdfs(V6.07)+ubuntu一、安装fdfs1、下载最新版本的fastdfs,FastDFS 发行版 - Gitee.com,上传到linux指定目录2、进入tar包所在目录
2021-11-04 10:43:44
1714
原创 kafka服务端设置用户和密码登录及springboot访问实现
一、背景:做物联网项目,需要用MQ做消息队列做缓冲,选择了使用kafka,部署在公网环境,部署kafka后没有设置登录验证,刚刚部署就被恶意扫描到,向kafka里面push超过1G的文件,直接导致kafka宕掉,虽然无法获取主机权限,但是比较膈应,因此设置了登录 验证,记录下安装、设置及项目程序代码实现整个过程二、部署环境:Linux+Ubuntu+kafka(2.8.0)+zookeeper(3.5.9,单机版kafka默认自带)三、部署安装1、从官网下载kafka,Apache Kafka.
2021-11-02 11:01:58
17034
3
原创 springboot集成ShardingSphere-JDBC(5.0.0-beta)
一、背景:因为项目需要,要求对两个大表进行分表,每个月分一个表,保证单表数据不会特别大,后续查询限定时间段,保证整体查询和统计性能。作为搞java的农民工,自然选择了java契合度比较高的分库中间件:shardingjdbc,使用也肯定使用最新版本5.0.0-beta,经过一顿折腾,终于分库成功,直接上代码。二、开发环境:springboot(2.3.5.RELEASE)+mybatis-plus(3.4.3)+mysql(8.0.26)+shardingSphere-jdbc(5.0.0-beta)
2021-10-28 17:15:27
4387
3
原创 springboot集成flink并发布flink集群端运行
背景:近期项目需要,引入flink,研究了下flink,步步踩坑终于可以单独运行,也可发布到集群运行,记录下踩坑点。开发环境:idea+springboot(2.3.5.RELEASSE)+kafka(2.8.1)+mysql(8.0.26)。废话不多说,直接上可执行代码。以下代码实现了某个时间间隔,设备不上传数据,判断为离线的逻辑一、项目application创建/** * flink任务提交application * * @author wangfenglei */@Spring
2021-10-21 15:50:45
22813
30
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人