自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

~单人舞~的博客

一点小心得和整理的java小视角...

  • 博客(114)
  • 资源 (25)
  • 问答 (4)
  • 收藏
  • 关注

原创 浅谈职业生涯接触到的服务架构

从2016年入行开始,伴随着前期几年的的项目和工作变动,陆续的接触到一些服务架构,包括现在的微服务架构;因为在现有的公司这两年接触的Service Mesh比较多,确切来说我一共在两个团队分别实践和使用了两套框架,虽然对现有的架构脉络梳理清楚(庞大且黑盒),引发了我对之前的架构认知的思考,想着既然打算年后换工作,先整理一下自己对服务架构这块浅显的理解,也欢迎大家指教真要动笔才发现对服务架构理解真的很浅,只能持续的阅读和汲取一些优秀博主的精华,加之自己的理解,产出这一篇文章;

2024-10-02 11:36:25 586

原创 工作纪实58-Idea打jar包

有时候需要配合算法使用spark定时DP,调用java相关的jar包做数据处理。idea打jar包有以下三种场景。

2024-09-24 16:58:14 269

原创 工作纪实57-SublimeText正则匹配

有一堆错误数据,需要统计不同格式的错误数;比如:local=4000_7999。

2024-09-09 18:33:47 198

原创 工作纪实56-ES搜索串一致性

最近接收到了一个需求,一个用户有一组数据,比如字符串:abcdefg,如果新增的数据是abdcdfge,则视为是同一条数据,可以理解为即使顺序不同,但是实际上也是唯一串;

2024-08-22 10:15:39 508

原创 工作纪实55-数组取笛卡尔积

比如:arr1=[1,2], arr2=[3,4,5]⇒ result = [1,3],[1,4],[1,5],[2,3],[2,4],[2,5]手上有个需求,需要对历史数据清洗,有一段场景是有N个数组,分别要对每个数组做交叉取一个值,行成笛卡尔积。搞定,使用三次for循环也是没办法;各位是否有其他的好办法,欢迎留言。

2024-08-19 19:19:45 129

原创 工作纪实54-git使用ssh方式

生成秘钥的命令很关键,不要忽视公司的情况去网上搜,有时候是无用功,不同公司的git版本不一样,有的甚至做二次封装,以实际情况为准。

2024-07-30 19:42:00 290

原创 工作纪实53-log4j日志打印文件隔离

指定了包的日志输出,又指定了这个包下面子包的日志输出,如果在子包的定义标签上加上additivity=false,那么子包中的日志不会打印在父包中,只会在子包中输出。在项目中,我有一堆业务日志需要打印,另一部分的日志,是没有格式的,需要被云平台离线解析并收集到kafka或者hdfs、hive等,需要将日志隔离打印到不同的文件。算法同学希望单独在dump.log中进行日志打印,而后他们去配置采集的逻辑,发现web.log居然也有dump.log的日志,重复打印了;关键代码:additivity。

2024-07-19 17:38:57 406

原创 工作纪实52-jar包冲突

项目种RPC调用,引入服务方的jar包依赖不规范时,引入后会存在很多的包冲突。

2024-07-15 11:07:08 177

原创 技术人人性的弱点

作为一名8年的java,技术上自我感觉勉强跟得上,但是某些层面真的是硬伤,欢迎各位和我一起讨论。

2024-07-12 00:32:46 222

转载 (粉丝福利局)java面试-场景题汇总

这样,在已经得知到已读消息的数量和具体消息 id 的情况下,我们可以直接使用消息 id 来查询没有消费过的数据。这个方案看起来没什么问题,但实际上,我们把所有用户通知的消息全部放在一个表里面,如果有 10W 个用户,那么同样的消息需要存储 10W 条。只需要设计一个消息内容表和一个用户通知表,当创建一条系统通知后,数据插入到消息内容表。每个用户去获取未读消息的时候,只需要查询大于当前维护的 msg_id_offset 的数据即可。如果是站内渠道,在插入消息内容后异步的插入记录到用户通知表。

2024-07-05 16:18:19 2036

原创 LeetCode125-验证回文串

字符串转换处理是关键一定不要忽略大小写左右指针很灵活。

2024-07-05 15:12:40 239

原创 LeetCode415-字符串相加

常规的思路就可以解决先把计算做分解高位补0或者截取高位都可以处理,但是细想一下补0更方便。

2024-07-05 11:31:51 330

原创 LeetCode258-各位相加

2个单位数相加一定不会超过19,抓住这一点做循环的两位数相加即可。

2024-07-04 19:30:25 218

原创 LeetCode-无重复字符的最长子串

使用滑动窗口算法,left和right指针;right指针遭遇相同的值的时候,意味着left指针需要往右边移动一下,此时需要清空bucket,不用担心丢失数据,因为max早就记录了,只需要不断地移动两个指针比较接口最大值max要反复取下面的代码很关键,如果right指针遭遇了相同的字符串,如果;if (left!= 0) {

2024-07-02 20:13:43 246

原创 3、加密算法-AES和RSA

它是一个唯一对应一个消息或文本的固定长度的值,它由一个单项Hash函数对消息进行计算而产出;不定长的数据===》数字摘要算法(Hash)====>定长的数据不用纠结非对称加密的公私秘钥在前端or后台生成,关键是看场景和主导方RSA拿来做签名是:私钥加密,公钥解密RSA拿来做数据传输加密是:公钥加密,私钥解密jwt的token案例在了解RSA的逻辑之后,会变得非常简单。

2024-07-02 10:11:26 1259

原创 工作纪实51-手撸AB实验分流策略

前几天写了一篇关于哈希算法的文章,起源就是在构思AB实验平台的时候,用到了哈希,所以对其做了深入的了解AB实验平台是一般互联网做策略、样式实验会用到的一个系统,一般开启某个实验之后,需要对线上流量进行分流:客户端->实验平台->策略平台->应用服务,大概是这个链路。

2024-06-28 18:02:10 3452 2

原创 2、Hash算法-自我解读

哈希算法和一致性哈希,不是一回事儿TreeMap 的 ceilingEntry 方法的作用是在 TreeMap 中找到大于或等于指定键值的最小键值对,使用它可以模拟哈希环如果构建了虚拟节点,其实投射到哈希环上的哈希值,都是虚拟节点的哈希值,只不过每个虚拟节点的指向性是一个真实的Node机器,但是这样不妨碍它确实是让数据分布变得更均匀虚拟节点个数挂载的越多,数据分布越均衡,大家可以试一下改一下值,我代码里面设置的是3。

2024-06-28 02:21:31 1068

原创 1、加密算法-MD5随机盐

MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。

2024-06-27 12:17:57 1086

原创 LeetCode26-删除有序数组中的重复项

快慢指针是优质解,起点位置要一致,频率可以有快慢。

2024-06-25 12:18:27 321

原创 LeetCode21-合并两个有序链表

优先推荐循环解法。

2024-06-24 16:41:53 305

原创 LeetCode206-反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

2024-06-16 15:08:56 402

原创 LeetCode88-删除有序数组中的重复项

需要理解题意,数组本身是有序的,也就意味相同值肯定是挨着的需要理解一下为什么slow=2,是因为要从数组的第一个开始重新进行赋值。

2024-06-16 14:44:39 288

原创 LeetCode-数学基础开篇

f(x)a>0且a≠1)【a: 底数(常量),x: 指数(变量)特征:指数函数在x轴没有交点,是光滑的曲线。

2024-06-05 23:39:16 184

原创 LeetCode70-爬楼梯

其实和高中的数学归纳法有点像,对前面的几个情况进行穷举就会发现是一个斐波那契数列递归法写法简单,但是对栈内存的开销存在一定的损耗,推荐for循环。

2024-06-05 22:17:01 410

原创 LeetCode122-买卖股票的最佳时机

其实就是次日-前一日的差价>0,就可以卖了再买,一直循环即可。

2024-05-30 23:48:00 321

原创 LeetCode1-两数之合

用map去存两数相减另一半的index下标,只需要挨个存一遍,即可找到合适的。

2024-05-30 23:33:07 259

原创 LeetCode22-原地移除元素

如果使用单指针遍历数组,每遇到一个目标值就需要将后面所有元素向前移动一位。这样会产生大量的赋值操作,效率较低。双指针方法只需要在遇到目标值时,将当前位置的值替换为数组末尾的值,然后缩小右指针的范围。这样可以大大减少不必要的赋值操作。不要纠结绝对的有序,另外right的边界需要自己理解一下。

2024-05-30 14:33:46 433

原创 LeetCode88-合并两个有序数组

使用双指针优点是不用考虑数组的扩容和赋值;直接对两个数组从右往左进行指针移动,哪个大取哪个值放到尾部,同时移动对应数组的指针,较小值的数组指针不动;同时考虑两个数组的边界,移动到下标为-1时,说明已经结束,其他的值直接使用另外一个数组指针移动的值即可拿纸笔画一画更容易理解。

2024-05-30 14:30:59 249

原创 工作纪实50-Idea下载项目乱码

下载了公司的一份项目代码,发现是gbk格式的,但是我的日常习惯又是utf-8,下载项目以后全是乱码,脑瓜子疼借用网友的一张图,如果是一个一个文件这么搞,真的是蛋疼,好几百个文件!

2024-05-28 21:59:16 322

原创 工作纪实49-集合业务数据合并

最近在做推荐相关的一些接口,核心处理流程:prepare=>process=>post;使用接口编程但是在prepare阶段往往存在很多的信息拼接的过程,而我想让整个外部的处理结构平顺,且不想让后续的同事掺杂私活;因此有了这个博客;再次说明一下我的场景:1.prepre阶段需要从两个数据源获取数据,都是Video数据,但是有不同的组成部分,拼接起来就是完整的Video,且都是多线程2.在process阶段必须要拿到完整的数据。

2024-05-22 10:49:28 320

原创 工作纪实48-log4j日志隔离

接到一个需求,需要对日志数据进行打印(区分主日志文件,只输出跟特定业务相关的数据),以便kafka可以对文件进行数据抽取,存储到hive;虽然log4j用的很多,但是有时候真自己配,还是有点生的,记录一下。

2024-05-16 19:15:46 324

原创 工作纪实47-关于线程使用的几点思考

在某些个人认为不是瓶颈的中间件使用比如redis的mget或者pipelineGet都偶尔超过10ms甚至30ms;最近线上存在一些cpu的锯齿情况,类似于推荐项目就一个核心接口,业务逻辑和计算链路很长;

2024-03-29 15:55:41 267

原创 工作纪实46-关于微服务的上线发布姿势

微服务,发布上线,升级

2024-03-07 15:39:09 415

原创 工作纪实45-记一段多线程批处理的代码

多线程、批处理

2024-02-29 13:49:38 120

原创 工作纪实42-内存泄漏(线上问题大乱斗)

还没找到原因,监控里面发现实例的内存使用率每天增加5%,这两天排查一下,哈哈哈。

2024-01-02 14:20:06 360

原创 工作纪实41-多线程写了一段还不错的代码

最近换的部门,对接口性能要求非常高,单台机器的qps高峰大概在300左右,导致我非常谨慎,各种catch和兜底。遇见个场景,2个线程处理任务,必须都在10ms内返回(一共10ms),如果返回不了,就不处理;

2023-12-29 17:50:56 385

原创 工作纪实40-内存飙高(线上问题大乱斗)

内存飙高

2023-12-28 17:53:07 386

原创 工作纪实40-使用redis的几种姿势

线上查问题看某个redis的key值,记录一下。1.直接使用telnet进行连接(贼拉方便)2.使用redis-cli连接。网上一大堆,不做说明。

2023-12-28 14:50:49 671

原创 工作纪实39-排查CPU飙高(业务慢查询)

cpu飙高场景

2023-12-27 10:21:33 589

原创 工作纪实38-排查cpu彪高(死循环)

昨天晚上上线了一个服务,第二天发现CPU持续飙高到70~90%,触发平台的自动扩容,后定位出问题后降低到3%此处由于没有保留现场信息,实际查询的线程栈,可以观察到业务类的X行定位信息,定位死循环。0x926: 线程id,0x是16进制,926是第3步得到的线程id。2125是服务进程的pid,jps可以查看。4.查看对应线程栈信息。

2023-12-19 15:28:36 405

es-head,谷歌浏览器插件,解压可用

es-head,谷歌浏览器插件,解压可用

2023-08-01

Sentinel.rar

sentnel-dashboard生产改造版: 【push模式】实例化监控数据[mysql],持久化流控rule规则配置到redis,

2021-03-02

eureka注册中心jar包【本地测试专用】

eureka注册中心jar包【本地测试专用】

2020-12-23

consul.rar

超级轻便的consul,适用windows-64位系统和开发工程师在本地拿来做中心

2020-03-31

nosqlbooster4mongo-5.1.8.exe

mongo客户端 mongo客户端 mongo客户端 mongo客户端 mongo客户端 mongo客户端

2020-02-03

testng官方文档翻译.md

TestNg的官网中文翻译,一个一个码字码过来的哦 TestNg的官网中文翻译,一个一个码字码过来的哦 TestNg的官网中文翻译,一个一个码字码过来的哦 TestNg的官网中文翻译,一个一个码字码过来的哦 TestNg的官网中文翻译,一个一个码字码过来的哦

2020-01-10

kafka2.11.tar.gz

kafka2.11.tar.gz

2019-03-06

canal.deployer-1.1.3.tar

canal.deployer-1.1.3.tar

2019-03-06

zookeeper-3.4.11安装包

zookeeper-3.4.11安装包 支持window和centos稳定版

2019-03-06

阿里云验证码、短信模板

即插即用,lib库记得引入,只需要更改阿里云提供的accesskey和手机号码,即可

2018-12-03

MongoDb集群

关于MongoDb的技术调研文档,详细的Replica Set集群安装手册!

2018-11-29

SpringBoot集成Quartz分布式定时任务

SpringBoot集成Quartz完全分布式定时任务,即插即用,不好用直接捶我! SpringBoot集成Quartz分布式定时任务 SpringBoot集成Quartz分布式定时任务

2018-11-01

超好看的登录页

找了大半天找到的很好看的登录页,简约时尚!还在等什么,不好看不要分!!!!

2018-10-24

Gradle生成mybatis相关单表接口以及实体类

mybatis代码生成工具,可根据package配置,灵活配置!

2018-10-24

Netty权威指南第二版 MessagePack部分源码

Netty权威指南第二版 MessagePack部分源码 Netty权威指南第二版 MessagePack部分源码 Netty权威指南第二版 MessagePack部分源码 Netty权威指南第二版 MessagePack部分源码

2018-04-12

msgpack-0.6.7jar包

messagepack jar包,netty教程专用 messagepack jar包,netty教程专用 messagepack jar包,netty教程专用 messagepack jar包,netty教程专用

2018-04-11

kafka安装教程

kafka安装教程 kafka安装教程 kafka安装教程 kafka安装教程 kafka安装教程

2018-03-16

hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程

hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程 hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程 hadoop-2.7.5,hbase1.2.6.zookeeper.3.3.6完全分布式安装教程

2018-03-16

quarzt定时任务(包含动态切换数据源)

quarzt定时任务(包含动态切换数据源) quarzt定时任务(包含动态切换数据源)

2017-12-28

SSM整合KindEditor-4.11编辑器

将kindeditor与ssm完美整合,如果你不是ssm框架,也没关系,核心的代码都已做了修改。 完美显示文件、图片、视频的上传 4.11 kindeditor版本: 新增: 俄语语言包,感谢Valery Votintsev (http://codersclub.org/)。 改善: 语言包文件名标准化,zh_CN -> zh-CN, zh_TW -> zh-TW。 Bugfix: [IE6] 当前页面设置了document.domain,销毁编辑器会报错。 Bugfix: 行首全角空格被过滤。 Bugfix: 修复多语言包的一些小错误。 Bugfix: [IE11] 有些设备报错不能显示,对象不支持attachEvent属性或方法。 Bugfix: retina屏幕上按钮裂开。 Bugfix: 编辑图片后点击插入图片,弹出两个dialog。

2017-12-26

slf4j-1.7.25jar包+logback-1.2.3jar包

slf4j-1.7.25jar包+logback-1.2.3jar包 slf4j-1.7.25jar包+logback-1.2.3jar包

2017-12-05

CXF协议WebService+Spring客户端和服务端程序,实现了多数据源动态切换

WebService+Spring客户端和服务端程序,实现了多数据源动态切换 测试的麻油们,依次打开客户端和服务端的main方法就可以测试了

2017-12-05

纯Socket编写的client和server端2个程序,多线程文件异步上传,通信

纯Socket编写的client和server端多线程文件异步上传,通信 步骤和注解还要打印清晰,通信方式为VO实体对象,传统的socket文件上传,只能是接收IO流,无法接收其他的信息,此程序将其改为vo的方式进行的多线程异步上传,客户端和服务端采用的都是多线程异步的方式进行处理

2017-12-05

Sigar java

java利用Sigar去获取服务器的cpu,内存等信息,demo页!有涉及到监控项目的小伙伴可以看看!linux和windows环境的相关文件都有!

2017-09-01

jdk1.8api文档

最新版 JDK 8.0 CHM帮助文档, 带完整的索引和目录,方便查询。 需要了解最新方法和源码的小伙伴赶紧来下载吧。(之前上传的东西有误,所以更新了)

2017-09-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除