工作杂记
aubergines
在攀登新的高峰上不断努力,个人博客http://www.aubergine.cc/
展开
-
使用PDFBOX提取PDF中的文字
使用PDFBOX提取PDF中的文字原创 2022-06-21 12:32:16 · 2141 阅读 · 1 评论 -
线上OOM问题排查
今天上线了一个优化,上完线后测试验证没有问题,本来以为这个事情就告一段落,没有想到四五个小时以后运维就@我说服务的CPU占用过高,不一会就OOM了,赶紧让运维把堆栈dump文件给我,我用的是JProfiler来分析dump文件。比较幸运的是我很容易就找到了自己熟悉的一个类点击最后的show more,可以看到对应的方法堆栈,就可以知道是那块方法的问题或者从Biggest Objects入手也可以...原创 2021-08-05 22:25:13 · 266 阅读 · 0 评论 -
GIT遇到REMOTE HOST IDENTIFICATION HAS CHANGED怎么办
今日遇到如下问题:警告的大概意思就是,主机密钥发生变更,并提示安全风险(可能存在中间人攻击)但是事实是,这是因为我重装系统之后遇到的问题。重装系统后,指纹当然会发生变化了。。。在Xshell实验中,密钥发生变化,会进行交互式提示保存,但是linux里默认是没有这个配置的。思路明白了,我们的目的就是要更新并保存密钥。还好,linux的ssh也提供了对应的指令。使用ssh-keygen -R [your server’s IP] 这条指令,然后回车,提示known_hosts已经更新,即可。更新完转载 2021-08-03 18:20:27 · 925 阅读 · 0 评论 -
微信授权回调区分环境
目前公司有四套环境DEV、TEST、PRE、ONLINE,所以我们的代码能让用户使用了,就和升级打怪一样要经过这四关。这两天又处理了个微信授权回调需要到不同环境的问题,记录下给大家提供一个思路。我们都知道微信公众号或者微信开放平台的网站应用的回调域名只能配置一个,下面是微信开放平台的网站应用的回调域名配置但是我们有多套环境,需要在同步的时候方便的切换到不同的环境方式一:所有的回调授权都在线上处理这种方式是回调都在线上的服务里,在回调的路径上加上环境参数,通过业务逻辑调用对应环境的接口处理对应的逻辑原创 2021-07-28 15:30:18 · 758 阅读 · 2 评论 -
Java好用的合成图片工具
前言:互联网本质还是流量的生意,谁收割的流量最多,谁便是下一个赢家。“自古流量出社交”也就可以解释为什么每个APP都有一个社交梦,每个PM都有一颗想做社交的心。无论是B端产品还是C端产品,能够讲好一个“社交故事”,就很有可能给资本市场带来无穷的想象空间。公司一直有分享合成图片的场景,之前自己写起来比较费劲,最近找了一个比较好用的工具分享给大家码云地址,感谢opensourcechen的分享。话不多说,直接上例子看效果public void testCombineTopicImage() throws原创 2020-10-01 00:35:14 · 474 阅读 · 0 评论 -
记一次压测问题排查过程
今天进行服务压测的时候,A服务的接口会根据传参调用下游的B服务或C服务,压测发现调用B服务的时候吞吐量在4K TPS,但是调用C服务的时候TPS却只有几十。1、排查业务代码调用C服务的逻辑发现并不复杂2、排查C服务的服务器的负载,数据库的负载发现都处于极低的水平,没有慢SQL3、排查打印C服务的堆栈,发现大量的线程处于TIMED_WAITING的状态,怀疑线程池的配置问题4、排查数据库线程池的配置,发现没有问题。打开Druid的监控,发现池中连接数、池中连接数峰值 、活跃连接数峰值正常,与预期一致原创 2020-09-26 00:22:10 · 351 阅读 · 0 评论 -
Redis应用之SortedSet的使用
前言:相对来说我们是比较深度使用redis的,在推荐瀑布流和排行榜等好多的场景我们主要是用的是SortedSet,今天来说一说SortedSet一、基本的用法插入数据,常用的有ZADD和ZINCRBY使用方法Long zadd(byte[] key, double score, byte[] member)插入数据,比我们的推荐场景中,根据用户的行为数据,推荐出来的数据会存放到red...原创 2018-12-24 13:11:38 · 1323 阅读 · 0 评论 -
push项目到GitHub失败
这两天使用Mac新建立的项目Push到GitHub上得时候报了一个403的异常,如下是我的解决的方法2:39 PM Can't finish GitHub sharing process Successfully created project 'spring-cloud' on GitHub, but initial push failed: unable to access ...原创 2018-12-25 22:45:23 · 856 阅读 · 0 评论 -
七牛视频
前言:七牛视频处理的时候、需要把视频转码为固定的格式,同时要对视频进行打水印,并且水印的显示的时间可以灵活的调整,测试了半天。需要视频的水印从第11秒开始,一直到视频的最后,水印的位置,在视频的右上角,相对于X、Y轴有一定的偏移,使用的命令如下:{ "code": 0, "desc": "The fop was completed successfully", "id"...原创 2019-01-21 15:23:12 · 542 阅读 · 0 评论 -
使用Java连接Shell输出日志
前言:自己的搭建了一个平台,为了方便查看日志,使用Java自研了一个查看日志的界面如下登录Shell的工具类public class SessionUtil { private static final Logger infoLogger = LoggerFactory.getLogger("infoLogger"); private Session session; @Value(...原创 2019-01-31 23:59:45 · 2061 阅读 · 0 评论 -
微信静默授权登录
前言:公司的产品一个比较重要的场景是分享到微信中,在微信打开页面后,我们会通过打开微信的用户的信息,进行权限的判断,其中包括游客的,这样我们就没有办法弹窗强制让用户登录,最终选用了微信的静默授权登录1. 微信授权登录前端调用:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http...原创 2019-01-17 09:42:11 · 5373 阅读 · 0 评论 -
Nexus私服上传文件
前言:Nuxus从3.0以后上传Jar、POM就不能通过网页手动上传了,只能通过Maven、Ant、Gradle、Docker CLI等命令的方式上传对应的文件,如下是使用Maven上传文件的几种操作没有pom文件的示例mvn deploy:deploy-file -DgroupId=com.somecompany -DartifactId=project -Dversion=1.0.0 ...原创 2019-02-22 17:50:13 · 2349 阅读 · 0 评论 -
使用thumbnailator处理图片
按比例进行缩放保存到文件中,其中scale是浮点类型的参数,值不能小于0,否则会报IllegalArgumentException异常.包含两种用法,一个参数的时候是根据原图片进行等比例的缩放,两个参数的时候第一个参数宽的,第二个是高的缩放比例Thumbnails.of("c:\\a.jpg").scale(0.3f).toFile("c:\\a1.jpg");Thumbnails.of(...原创 2019-02-13 16:37:27 · 787 阅读 · 0 评论 -
给图片添加满屏的图文水印
####### 前言:为了防止网站的图片资源被盗用,需要给图片打上图文的水印,之前做了一版只是在图片的右下角打上图文水印,这次升级了,要求在整个屏幕上都打上水印。话不多说,直接上代码。 /** * 水印图片的大小 */ public static final double BASE_SIZE = 200d; /** * 图片的宽高倍数 */ public static fi...原创 2019-07-31 18:19:46 · 1960 阅读 · 0 评论 -
个人IDEA配置调整
在使用IDEA的时候,修改一些默认的配置,能大大提高我们的开发效率,下面总结一下我自己修改的配置,供大家参考自动导包,粘贴一段代码后还需要一个个导包是一个让你很抓狂的事情,你可以做如下的修改,按照下图的路径修改insert imports on paste为All,自动导包的快捷键是Ctrl+Alt+OAll:有需要导入的包名时,会自动导入,不会弹提示框ASK:有需要导入的包名时,会弹...原创 2018-12-23 16:33:16 · 310 阅读 · 0 评论 -
IDEA显示Reading
升级完IDEA后打开之前的项目,加入一个新的JAR包,然后引入JAR包的时候,IDEA的下部的提示去显示reading ...../pom.xml,而且Mac电脑的风扇疯狂的转动,不到两分钟IDEA就卡死了,处理办法hosts增加配置127.0.0.1 localhost...原创 2018-12-17 23:29:04 · 1134 阅读 · 0 评论 -
数据迁移
前言:基于公司的战略的考虑,最近负责公司的两个产品线的相似的数据的整合与迁移的工作,中间碰到很多的坑,不得不说对于这种属于底层数据的迁移的工作,要做到万分的小心与谨慎迁移的内容A产品是我们的顶梁柱的产品,B产品是为了打造公司的战略的闭环孵化的产品,最开始的定位两个产品是没有交汇的可能,随着公司战略的调整,目前我们要求把B产品上的一些资源,主要是视频和文库迁移到A产品上,原来A产品上也有视频...原创 2018-12-17 12:31:37 · 376 阅读 · 0 评论 -
Spring security安全登录-当AJAX遇上Redirect
Spring security安全登录-当AJAX遇上Redirect前言:最近做平台引入spring security做为安全认证框架,在登录的时候使用的ajax的请求方式,最开始的做法是调用登录的接口,成功后再前端使用`window.location.href = ./index.html`的方式跳转到希望的页面,考虑到以后会根据用户的权限做页面的跳转,就打算在后台做成功页面的跳转,这个时候想到原创 2018-03-21 10:04:32 · 1495 阅读 · 0 评论 -
session一致性之使用memcached缓存
session的一致性问题原创 2018-03-26 22:16:10 · 484 阅读 · 0 评论 -
优秀文章集锦
详解Java的自动装箱与拆箱:深入浅出的对Java的装箱与拆箱进行了从案例到源码的解析转载 2018-08-10 14:45:06 · 1187 阅读 · 0 评论 -
Nginx负载均衡配置
nging.conf的配置如下user www www;worker_processes 2;error_log logs/error.log;error_log logs/error.log notice;error_log logs/error.log info;pid logs/nginx.pid;events { use epoll;...原创 2018-08-20 17:16:49 · 364 阅读 · 0 评论 -
微信与小程序跳转
公众号和小程序连接跳转方式,目前共有如下三种: 1. 公众号可以把自己关联的小程序放在自定义菜单中,用户点击可直达小程序 2. 公众号模版消息可打开相关小程序。通过公众号,公众号运营者可以推送关联的小程序页面了 { "touser":"OPENID", "template_i原创 2018-08-28 10:07:53 · 762 阅读 · 0 评论 -
我从《阿里巴巴Java开发规范》学到的注意点
前言:其实从阿里巴巴发布开发Java规范的第一版的时候就注意到了,每次更新也都会下载最新的,也随意的翻过几次,由于各种原因最终没有一次把规范完整的看完,主要是发现大部分就是自己的规范,自己平时就是按照这个规范来的。最近在调整历史项目,时间相对来说成块了很多,而且希望在调整的过程中有一个指导,就再一次拿起来规范,这一次一气呵成,终于把规范看完了,如下是我自己认为对自己有用的点,在个人以后的编程生涯中...转载 2018-08-24 09:11:28 · 351 阅读 · 0 评论 -
图片添加图片水印和文字水印
前言:最近需要对图片添加文字水印和图片水印,而且要根据原图片不同的大小,打上不同的大小的水印和文字,保证用户在视觉上看到的水印的大小是一致的。话不多说,上代码,先上处理图片的代码/** * @author: Aubergine * @date: 2018/10/28 11:57 * @param srcImage 原图片的地址 * @param pres...原创 2018-11-01 12:36:13 · 2457 阅读 · 1 评论 -
基于Redis的推荐瀑布流
Redis在目前的互联网公司的应用场景非常的丰富,最近公司为了给产品添加社交属性,仿微信的朋友圈做了一个`骨人云`,包括关注和发现两个频道,再加上本次改版之前的产品首页的五个频道页中的四个频道页,都是推荐的瀑布流,我大量使用`Redis`的SortedSet,这里把我使用的情况总结一下原创 2018-11-02 14:39:11 · 1323 阅读 · 2 评论 -
Java36讲笔记(1)
ClassNotFoundException和NoClassDefFoundError的区别ClassNotFoundException的产生原因:就是找不到指定的class,发生在加载阶段。常见的场景就是:调用class的forName方法时,找不到指定的类ClassLoader 中的 findSystemClass() 方法时,找不到指定的类ClassLoader 中的 loa...原创 2018-11-27 14:43:03 · 249 阅读 · 0 评论 -
图片从七牛迁移到OSS
前言: 最近有需要把存储在七牛的图片迁移到OSS上,记录一下迁移的过程参考阿里云的文档:点我看详情我的配置修改srcType为srcType=qiniu配置上七牛的srcAccessKey,srcSecretKey,srcDomain,srcBucket,其中srcDomain是空间配置的域名配置srcPrefix,看个人的需求,如果是只迁移某一个目录的话,那就什么都不用...原创 2018-11-27 17:44:33 · 1545 阅读 · 0 评论 -
Shell发送POST请求
有些场景用crontab跑定时任务,今天有一个需求调用的接口,接收的请求形式是POST的,纠结了一段时间,终于搞出来了curl -i -X POST -H "'Content-type':'application/json'" -d '{"zuultoken":"abc","currentDate":"2018-11-13 11:46:18"}' http://msa.aubergine.cc/...原创 2018-11-27 18:35:18 · 21606 阅读 · 2 评论 -
Maven自动更新SNAPSHOT包
IDEA配置修改:勾选“Always update snapshots”Maven配置修改:${MAVEN_HOME}/conf/settings.xml配置文件修改 节点下添加如下内容<profile> <id>central</id> &a原创 2018-11-28 20:15:22 · 13693 阅读 · 0 评论 -
markdown编辑器--小书匠
背景先上一张图在widow中使用markdown来编写blog,编辑器的选择一直是一个让我相当头疼的问题,我曾经尝试过网页版的马克飞象,说实在的确实使用起来挺好的,尤其是我一直使用印象笔记,马克飞象可以很方便的把内容同步到印象笔记中,美中不足的是这是一个付费的软件。因为一直使用Sublime Text,相对来说Sublime Text对markdown的支持还是不错的,后来发现其中有一个插件...原创 2018-11-28 20:37:33 · 680 阅读 · 0 评论 -
CentOS 7安装配置Redis数据库
标签: [Centos, Redis]Redis就是一种基于key-value的非关系型数据库。这里我将介绍Redis在CentOS 7下如何安装配置方法/步骤Redis源码获取1.1、进入Redis官网获取Redis最新稳定版下载地址2、通过wget命令下载 Redis 源代码。**Redis编译1、通过tar -xvf redis-3.0.2.tar.gz命令解压下载Redis源码压缩包redi原创 2017-10-08 13:36:27 · 515 阅读 · 0 评论