- 博客(93)
- 资源 (42)
- 收藏
- 关注
原创 平安人寿java工作7年的那些事(复盘)
成了骨干之后 开始带人 但是发现根本留不住人 我总结就是 人家不关心你的业务 就是凭技术赚钱 又拿不到钱 带了很多批的人 心很累。不是白说的 侧面来看 提干你上面得有人 更关键的这块你做过 还有一种就是你没做过 但是你做出来了一个核心关键的东西 也行。开始做微服务 刚出来的时候不太会整 关键是啥呢 没好好学 做开发的 尤其一线做开发的 你不好好学 慢慢就是会被淘汰。期间还有个项目经理的机会给到我 但是我没抓住 有一块业务不熟悉 换了个比我还资深的过来替换了我。笔试过了 面试没过 可惜了 面试官是个胖子。
2024-09-14 15:39:32 421
原创 lock和sync区别
synchronized 是 Java 中的一个关键字,用于同步方法或代码块,确保只有一个线程可以执行被 synchronized 修饰的代码段。Lock 是 Java java.util.concurrent.locks 包中的一个接口,提供了与 synchronized 不同的锁操作。synchronized 锁是非公平的,不保证等待时间最长的线程优先获取锁。Lock 允许更灵活的锁控制,例如尝试获取锁、超时等待、可中断的锁获取等。Lock 可以实现公平锁,即按照线程等待的顺序来分配锁。
2024-09-14 14:28:24 174
原创 java面试热点题
countdownlatch和cyclicbarrier的区别是什么。唯一索引和普通索引区别 changebuffer 页分裂页合并。volatile指令重排序 内存屏障 总线风暴。sentinel和cluster区别使用场景。redis cluster集群同步过程。热key产生原因和后果以及怎么解决。本地缓存需要高时效性怎么办。lock和sync区别。父子线程怎么共享数据。
2024-09-14 12:58:06 134
原创 找了一家征信公司,干了两个多月。。。
那人考虑的不够全面,接口性能差,分配给我这边负责优化,天天盯着我弄。我觉得不正常,别人的接口,有性能问题,我有义务去接盘么?后来做一个项目的时候和我说,你做的内容是最基础的。市面上的估计他们都看过一遍了,然后你看漏了,就答不上来,这些人一般工作不是很饱和。找工作擦亮双眼 50人以内的不要去 各种坑 干不长的 区域 环球中心的不要去 交子金融的也不要去。很多种情况 有不加班的 有外包的 有pua的 画饼的 天天看产出的 大小周的 比比皆是。当时我没怎么放在心上,我这人就这样,交给我的事,尽力做好。
2024-09-14 11:41:17 648
原创 马上消费面试
问自己解决的最有挑战的问题。奇怪的是几场面试下来都在问这个问题。怎样保证kafka消息不丢失 应该问的是ack。直接和我说加班强度挺大的,但是不是每天加班。
2024-03-19 23:17:11 125
原创 成都卫士通线下面试
1、怎样实现10亿数据的计算。女副总问了一句高级工程师和中级工程师的区别。2、怎么解决微服务之间的依赖。3、接口安全怎么设计?
2024-03-19 23:15:00 125
原创 上海卫翎科技(成都线上面试)
2、mysql组合索引根据explain的什么可以判断执行到就第几级 key_length。3、kafka消费积压怎么排查。答案比较震惊 ,是不是发版导致的。1、es嵌套查询怎么实现 nested。
2024-03-19 23:12:22 134
翻译 Elasticsearch 源码解析与优化实战-选举集群元信息
被选出的 Master 和集群元信息的新旧程度没有关系。因此它的第一个任务是选举元信息,让各节点把各自存储的元信息发过来,根据版本号确定最新的元信息,然后把这个信息广播下去,这样集群的所有节点都有了最新的元信息。集群元信息的选举包括两个级别:集群级和索引级。不包含哪个shard存于哪个节点这种信息。这种信息以节点磁盘存储的为准,需要上报。为什么呢?因为读写流程是不经过Master的,Master 不知道各 shard 副本直接的数据差异。HDFS 也有类似的机制,block 信息依赖于DataNode的
2022-03-29 11:29:19 186
翻译 Elasticsearch 源码解析与优化实战-选举主节点
假设有若干节点正在启动,集群启动的第一件事是从已知的活跃机器列表中选择一个作为主节点,选主之后的流程由主节点触发。ES的选主算法是基于Bully算法的改进,主要思路是对节点ID排序,取ID值最大的节点作为Master,每个节点都运行这个流程。是不是非常简单?选主的目的是确定唯一的主节点,初学者可能认为选举出的主节点应该持有最新的元数据信息,实际上这个问题在实现上被分解为两步:先确定唯一的、大家公认的主节点,再想办法把最新的机器元数据复制到选举出的主节点上。基于节点ID排序的简单选举算法有三个附加约定条件:
2022-03-29 11:26:01 449
翻译 Elasticsearch 源码解析与优化实战-分片读写过程中执行关闭
写入过程中关闭:线程在写入数据时,会对Engine加写锁。IndicesService的doStop方法对本节点上全部索引并行执行removeIndex,当执行到Engine的flushAndClose(先flush然后关闭Engine),也会对Engine加写锁。由于写入操作已经加了写锁,此时写锁会等待,直到写入执行完毕。因此数据写入过程不会被中断。但是由于网络模块被关闭,客户端的连接会被断开。客户端应当作为失败处理,虽然ES服务端的写流程还在继续。读取过程中关闭:线程在读取数据时,会对Engin
2022-03-29 11:13:03 188
原创 amend和rebase
如果已经在本地进行了多次提交,可以使用git rebase -i命令对这些小的提交进行合并。如果想将本次要执行的提交和上一次的提交进行合并,则可以使用git commit --amend命令。
2021-08-18 08:18:57 181
原创 Elasticsearch的全文搜索
到目前为止搜索都很简单:搜索特定的名字,通过年龄筛选。让我们尝试一种更高级的搜索,全文搜索——一种传统数据库 很难实现的功能。 我们将会搜索所有喜欢“rock climbing”的员工:GET / megacorp / employee / _search {“query”: {“match”: {“about”: “rock climbing”}}}{ …“hits”: {“total”: 2,“max_score”: 0.16273327,“hits”: [{ …"_score":
2021-08-05 17:25:56 185
原创 Garbage First收集器
在G1收集器出现之前的所有其他收集器,包括CMS在内,垃圾收集的目标范围要么是整个新生代(Minor GC),要么就是整个老年代(Major GC),再要么就是整个Java堆(Full GC)。而G1跳出了这个樊笼,它可以面向堆内存任何部分来组成回收集(Collection Set,一般简称CSet)进行回收,衡量标准不再是它属于哪个分代,而是哪块内存中存放的垃圾数量最多,回收收益最大,这就是G1收集器的Mixed GC模式...
2021-07-28 11:40:25 72
原创 右倒车入库
先记住口诀,口诀记不住,你还练什么?1、左后视镜下延左半部分沿左侧黄线行驶2、左侧肩膀与停车控制线处在一条直线上时停车3、挂倒挡,左后视镜下沿接触停车控制线,向右打满方向4、观察右后视镜,看车身与库角的距离,大于30cm时不动,小于30cm时,适当回方向5、观察到右后轮可以入库时,看左边后视镜6、左后方库角从左后视镜中出现,回正方向7、观察左右后视镜,微调方向,使车身平直8、左后视镜下沿与左前方黄线贴合时停车9、挂一挡出库,机盖前边沿接触前方黄线,方向向左打满
2021-07-27 10:42:25 152
原创 如何理解保险业务的限界上下文
保险业务领域有投保单、核保、财务、回访、保全等保险术语,它们分别应用于保险的不同业务流程。客户投保时,业务人员记录投保信息,系统对应有投保单实体对象。缴费完成后,业务人员将投保单转为保单,系统对应有保单实体对象,保单实体与投保单实体关联。如客户需要修改保单信息,保单变为批单,有保全系统对应有批单实体对象,批单实体与保单实体关联。如果客户发生理赔,生成赔案,系统对应有报案实体对象,报案实体对象与保单或者批单实体关联。投保单、保单、批单、赔案等,这些术语虽然都跟保单有关,但不能将保单这个术语作用在保险全
2021-07-10 22:56:25 145
原创 Elasticsearch
反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。搜索引擎原理就是建立反向索引。Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。Elasticsearch 一个典型应用就是 ELK 日志分析系统。...
2021-06-21 10:09:44 62
原创 HashMap和HashTable有什么区别?其底层实现是什么?
区别:HashMap方法没有synchronized修饰,线程非安全,HashTable线程安全; HashMap允许key和V
2021-06-13 13:27:55 482 4
原创 对象在内存中的初始化过程
Student s = new Student()为例1、首先查看类的符号引用,看是否已经在常量池中,在说明已经加载过了,不在的话需要进行加载,验证,准备,解析,初始化过程。2、上述过程执行完毕以后,又将student加载进内存,也就是存储students.class的字段信息和方法信息,储存到方法区字段信息:存储类中声明的每一个字段的信息,包括字段的名、类型、修饰符。方法信息:类中声明的每一个方法的信息,包括方法名、返回值类型、参数类型、修饰符、异常、方法的字节码。3、然后在自己的线程
2021-06-13 13:17:13 127
原创 ArrayList和LinkedList区别
ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据haihuishejidao...
2021-06-13 13:13:25 71
原创 List和Set的区别
List:有序,按对象进入的顺序保存对象,可重复,允许多个Null元素对象,可以使用Iterator取出所有元素,在逐一遍历,还可以使用get(int index)获取指定下标的元素Set:wuxu
2021-06-13 12:42:53 105
原创 接口和抽象类的区别
抽象类可以存在普通成员函数,而接口中只能存在public abstract方法。抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。chouxianglei
2021-06-13 12:32:49 92
原创 mysql锁升级?
锁升级是指将当前锁的力度降低。举例来说,数据库可以把一个表的1000个行锁升级一个页锁,或者将页锁升级为表锁。如果在数据库中的设计中认为锁是一种稀有资源,而且想避免锁的开销,那shujuku...
2021-06-08 19:22:52 362
原创 兴业数金笔试干货
兴业有个题库,感觉招应届生的。最后一道编程题力扣原题。Leetcode练习(Python):第66题:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...
2021-06-08 18:27:16 4383 5
原创 Spring Cloud Zuul
Spring Cloud Zuul的核心是一系列的filters,其作用可以类比Servlet框架的filter,或者AOP。Spring
2021-06-08 18:20:09 46
原创 内核态和用户态
内核态,是系统正运行于操作系统的内核代码内。用户态,系统正运行于用户的应用程序下。总的来说,系统运行在内核态时比运行在用户态时的要求都要严格些,比如,安全,速率,等等。当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运
2021-06-08 15:22:34 399 1
原创 记限流方法
固定窗口限流算法首先维护一个计数器,将单位时间段当做一个窗口,计数器记录这个窗口接收请求的次数。当次数少于限流阀值,就允许访问,并且计数器+1当次数大于限流阀值,就拒绝访问。当前的时间窗口过去之后,计数器清零。假设单位时间是1秒,限流阀值为3。在单位时间1秒内,每来一个请求,计数器就加1,如果计数器累加的次数超过限流阀值3,后续的请求全部拒绝。等到1s结束后,计数器清0,重新开始计数。/** * 固定窗口时间算法 * @return */boolean fixedWindowsTryAc
2021-06-03 08:31:06 238
原创 nohup
在工作中,我们很经常跑一个很重要的程序,有时候这个程序需要跑好几个小时,甚至需要几天,这个时候如果我们退出终端,或者网络不好连接中断,那么程序就会被中止。而这个情况肯定不是我们想看到的,我们希望即使终端关闭,程序依然可以在跑。这时我们就可以使用 nohup 这个命令。nohup 命令是英语词组 no hangup 的缩写,意思是不挂断,也就是指程序不退出。这个命令会使程序忽略 HUP 信号,保证程序能够正常进行。HUP 信号
2021-05-18 08:18:47 91
原创 synchronized和lock的区别
1、synchroized内置的java关键字,lock是一个java类2、synchroized无法判断获取锁的状态,lock可以判断是否获取到了锁3、synchronized会自动释放锁,lock必须要手动释放锁,如果不释放,死锁4、synchronized线程1获得锁阻塞、线程2等待,傻傻的等;lock锁就不一定会等下去5、synchronized可重入锁,不可以中断的,非公平;lock,可重入锁,可以判断锁,非公平(可以自己设置)6、synchronized适合少量的代码同步问题
2021-05-09 14:56:15 115
原创 微权力下的项目管理
1、爱操心。干一件事之前站在各方面角度都想一想,然后考虑站在整个公司的角度,站在大局的角度,系统性的思考怎么干最好2、目标感要强。为了实现目标我们不择手段首先前提得有目标,所有的东西都是基于目标去分解,所有的活都围绕目标干。3、善于换位思考。这样才能跟所有人沟通好,沟通清楚,把一群人变成一个能够相互沟通协同的组织。这时候因为信息通畅了,大家干活效率才能高。4、应变能力。就是甭管发生什么情况,以不变应万变,能够去适应,能够去变化,不能一根筋,只要为了实现目标,我们什么方式都可以采用,变通性强,灵活
2021-05-09 14:50:19 1114
原创 最大的线程数如何设置
IO密集型判断你程序中十分耗IO得线程cpu密集型几核,就是几,可以保持cpu的效率最高runtime.getruntime().availableprocessors()
2021-05-09 14:38:18 663
原创 让你设计一个mq,你会如何设计
1、实现一个单机的队列数据结构,高效、可扩展2、将单机队列扩展为分布式队列。分布式集群管理3、基于topic定制消息路由策略,发送者路由策略,消费者与队列对应关系,消费者路由策略4、实现高效的网络通信。netty http5、规划日志文件,实现文件高效读写 零拷贝、顺序写,服务重启,快速还原现场。6、定制高级功能,死信队列,延迟队列,事务消息等等...
2021-05-09 14:34:51 379
原创 变更的步骤
提出变更请求项目经理组织完成变更影响分析ccb变更审批变更执行-系统功能变更、技术环境变更、配置项变更功能测试、评审申请人确认培训变更结束
2021-05-09 14:30:32 80
TortoiseSVN-1.6.10.19898-win32-svn-1.6.12中文补丁
2012-12-13
TortoiseSVN-1.6.10.19898-win32-svn-1.6.12
2012-12-13
ext中文手册
2012-02-26
北s真题逻辑推理题详解及数据分析
2024-09-18
mybatis-plus根据mysql表快速生成controller service mapper entity xml
2023-02-17
ES+prometheus-exporter+grafana.rar es监控方案windows版
2021-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人