自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

搓搓那年时光静好

记录点点滴滴

  • 博客(427)
  • 资源 (55)
  • 收藏
  • 关注

原创 leetCode判断是否回文

给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。import java.util.*;public class Solution { public boolean judge (String str) { int left=0; int right=str.length()-1; for(int i=0;i<=str.length()-1;i++){ if(str.c

2021-03-17 23:43:43 188

原创 反转字符串

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000) /** * 反转字符串 * @param str string字符串 * @return string字符串 */ public String solve (String str) { //可以用字符串数组去做 if(str == null || str.length() == 0){ return str; .

2021-03-17 01:07:51 199

原创 螺旋矩阵算法实现

首先设定上下左右边界其次向右移动到最右,此时第一行因为已经使用过了,可以将其从图中删去,体现在代码中就是重新定义上边界判断若重新定义后,上下边界交错,表明螺旋矩阵遍历结束,跳出循环,返回答案若上下边界不交错,则遍历还未结束,接着向下向左向上移动,操作过程与第一,二步同理不断循环以上步骤,直到某两条边界交错,跳出循环,返回答案public List<Integer> spiralOrder(int[][] matrix) { List<Integer> .

2021-03-16 23:37:03 402

原创 为什么kafka不支持主从分离

首先明确一下:主从分离与否没有绝对的优劣,它仅仅是一种架构设计,各自有适用的场景。第二、如你所说,Redis和MySQL都支持主从读写分离,我个人觉得这和它们的使用场景有关。对于那种读操作很多而写操作相对不频繁的负载类型而言,采用读写分离是非常不错的方案——我们可以添加很多follower横向扩展,提升读操作性能。反观Kafka,它的主要场景还是在消息引擎而不是以数据存储的方式对外提供读服务,通常涉及频繁地生产消息和消费消息,这不属于典型的读多写少场景,因此读写分离方案在这个场景下并不太适合。第三.

2021-03-16 12:55:22 270

原创 kafka基本知识概念

消息:Record。Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。副本:Replica。Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。副本还分为领导者副本和追随者副本,各自有不同的角色划分。副本是在分.

2021-03-15 20:22:57 190

原创 斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1),n≤39;public class Recursive { private int size; private int[] array; Recursive(int capacity){ this.array = new int[capacity]; } public static void main(String[] arg.

2021-03-14 22:45:42 168

转载 SpringBoot自动装配原理

什么是 SpringBoot 自动装配? 我们现在提到自动装配的时候,一般会和 Spring Boot 联系在一起。但是,实际上 Spring Framework 早就实现了这个功能。Spring Boot 只是在其基础上,通过 SPI 的方式,做了进一步优化。SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器(此处涉及到 J..

2021-03-14 17:17:58 126

原创 索引知识点总结

(1)索引的出现就是为了提高数据查询效率,就像书的目录一样(2)索引不但写在内存中,还写在硬盘中(3)索引是存储引擎实现的(4)索引的常见模型1)哈希表:以键-值(key-value)存储数据的结构~~把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置~~哈希冲突的处理办法:链表~~哈希表适用场景:只有等值查询的场景2)有...

2021-03-12 23:16:14 382

原创 64位操作系统JAVA对象头

2021-03-12 10:09:13 525

原创 G1垃圾收集器详解以及调优参数设置

(1)G1垃圾回收器,将堆内存进行了更细致的划分和管理,分为一个个Region。每个Region大小是2的整数倍。可以理解,将堆内存划分成一个Region池子。这里的每个Region,可能属于新生代,也可能属于老年代使用。(2)G1回收器对新生代和老年代都会进行工作,使用复制回收算法,可以高效,并且避免内存碎片的产生。(3)G1还规划了一个大对象Region区域。这是G1特有的一个专门用来存放大对象的地方。默认超过1/2 Region大小的对象就是大对象。(4)G1中,新生代和老年代的大小是不固

2021-03-10 20:46:42 5750

原创 dubbo负载均衡策略和集群容错机制

(1)dubbo负载均衡策略(1)dubbo负载均衡策略1)random loadbalance默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来负载均衡,权重越大分配流量越高,一般就用这个默认的就可以了。2)roundrobin loadbalance还有roundrobin loadbalance,这个的话默认就是均匀地将流量打到各个机器上去,但是如果各个机器的性能不一样,容易导致性能差的机器

2021-03-08 00:00:58 1137

原创 手写一个LRU

public class LRUCache<K, V> extends LinkedHashMap<K, V> { private final int CACHE_SIZE; // 这里就是传递进来最多能缓存多少数据 public LRUCache(int cacheSize) { super((int) Math.ceil(cacheSize / 0.75) + 1, 0.75f, true); // 这块就是设置一个hashmap的初.

2021-03-07 22:07:00 193

原创 如何设计一个消息队列中间件

比如说这个消息队列系统,我们来从以下几个角度来考虑一下(1)首先这个mq得支持可伸缩性吧,就是需要的时候快速扩容,就可以增加吞吐量和容量,那怎么搞?设计个分布式的系统呗,参照一下kafka的设计理念,broker -> topic -> partition,每个partition放一个机器,就存一部分数据。如果现在资源不够了,简单啊,给topic增加partition,然后做数据迁移,增加机器,不就可以存放更多数据,提供更高的吞吐量了?(2)其次你得考虑一下这个mq的数据要不要落地磁盘吧

2021-03-07 15:22:06 270

原创 几百万消息积压怎么处理

1)先修复consumer的问题,确保其恢复消费速度,然后将现有cnosumer都停掉2)新建一个topic,partition是原来的10倍,临时建立好原先10倍或者20倍的queue数量3)然后写一个临时的分发数据的consumer程序,这个程序部署上去消费积压的数据,消费之后不做耗时的处理,直接均匀轮询写入临时建立好的10倍数量的queue4)接着临时征用10倍的机器来部署consumer,每一批consumer消费一个临时queue的数据5)这种做法相当于是临时将queue资源和..

2021-03-07 15:08:42 332

原创 kafka如何保证顺序消费

kafka:一个topic,一个partition,一个consumer,内部单线程消费,写N个内存queue,然后N个线程分别消费一个内存queue即可

2021-03-07 14:48:49 531

原创 RabbitMQ可能出现的数据顺序不对的场景

问题:一个queue,多个consumer消费并行;解决办法:rabbitmq:拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理...

2021-03-07 14:32:27 485

原创 kafka可能存在的消息丢失问题

这块比较常见的一个场景,就是kafka某个broker宕机,然后重新选举partiton的leader时。大家想想,要是此时其他的follower刚好还有些数据没有同步,结果此时leader挂了,然后选举某个follower成leader之后,他不就少了一些数据?这就丢了一些数据啊。生产环境也遇到过,我们也是,之前kafka的leader机器宕机了,将follower切换为leader之后,就会发现说这个数据就丢了所以此时一般是要求起码设置如下4个参数:给这个topic设置replicati..

2021-03-07 00:02:35 548

原创 rabbitMQ可能存在的消息丢失问题

2021-03-06 23:43:21 251

原创 kafka消费端可能出现的重复消费问题

2021-03-06 22:16:09 269

原创 kafka高可用架构

2021-03-06 15:53:41 255

原创 Spring IOC容器初始化基本步骤

IOC容器初始化基本步骤1.初始化入口由容器实现中的refresh()方法调用来实现;2.对Bean定义载入IoC容器使用的方法是loadBeanDefinition();通过ResourceLoader来完成资源文件的定位,DefaultResourceLoader是默认的实现,同时上下文本身就给出了ResourceLoader的实现,可以通过类路径,文件系统,URL等方式来定位资源.如果是XmlBeanFactory作为IoC容器,那么需求为它指定Bean定位的资源,也就是说Bean定义

2021-02-28 20:32:30 202 1

原创 并发集合类小结

非阻塞队列ConcurrentHashMap 支持并发安全 不支持排序ConcurrentSkipListMap 支持并发安全 支持排序ConcurrentSkipListSet 支持并发安全 不允许重复元素ConcurrentLinkedQueue 支持并发 支持列头操作ConcurrentLinkedDeque 支持并发 支持列双向操作CopyOnWriteArrayListCopyOnWriteArraySet阻塞队列ArrayBlockingQueue 有界阻塞队列Prior.

2021-02-18 16:28:50 121 1

转载 MVCC多版本控制机制

转:https://segmentfault.com/a/1190000012650596基础知识背景:事务相关ACID特性 高并发事务相关的问题, 像是脏读,不可重复读,幻读,更新丢失等问题; MySQL应对高并发事务是如何给出解决方案的(其中包含各个隔离级别的简介); 各个隔离级别的具体介绍及与锁的关系;多版本控制: 指的是一种提高并发的技术。最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样...

2021-02-18 16:22:50 321

原创 改进版本Future,将结果推送过来,而非主动阻塞拉取等待

public class FutureInAction3 { public static void main(String[] args) { Future<String> future = invoke(() -> { try { Thread.sleep(10000L); return "I am Finished."; } catch (Inte.

2021-02-16 11:28:24 191

原创 自己动手实现一个Future

public class FutureInAction { public static void main(String[] args) throws InterruptedException {// Future<String> future = invoke(() -> {// try {// Thread.sleep(10000);// return "I am fini.

2021-02-16 11:11:50 266

原创 分区表使用注意事项

1:啥是分区表?创建表的时候,使用了数据分区相关的语法,存储数据的时候,存储引擎会根据分区规则将不同的数据存入不同的分区文件。2:使用分区表的劣势?2-1:MySQL 在第一次打开分区表的时候,需要访问所有的分区——打开的表较多,性能糟糕也可能报打开的表超过设置的问题。2-2:在 server 层,认为这是同一张表,因此所有分区共用同一个 MDL 锁——锁粒度大,影响并发度,站在Server看也是合理的,不过站在存储引擎的角度看就不合理了。2-3:在引擎层,认为这是不同的表,因此 MDL 锁之后的

2021-02-15 19:12:16 761

原创 自增主键不连续的问题

在什么场景下自增主键可能不连续?1:唯一键冲突2:事务回滚3:自增主键的批量申请深层次原因是,不判断自增主键是否已存在和减少加锁的时间范围和粒度->为了更高的性能->自增主键不能回退->自增主键不连续自增主键是怎么做的唯一性的?自增值加1,自增锁控制并发自增主键的生成性能如何?这个需要测试一下,数据库的自增主键也用做生成唯一数字,作为其他单号,比如:并发量小的订单号,性能可能一般。自增主键有最大值嘛?如果有,到了咋弄?最大值应该有,因为数字总有个范围,到了当做字符串的一

2021-02-15 18:33:53 728

原创 关于MySQL事务隔离级别的问题

1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent read view)2.事务在启动时会拍一个快照,这个快照是基于整个库的.基于整个库的意思就是说一个事务内,整个库的修改对于该事务都是不可见的(对于快照读的情况)如果在事务内select t表,另外的事务执行了DDL t表,根据发生时间,要嘛锁住要嘛报错(参考第六章)3.事务是如何实现的MVCC呢?(1)每个事务都有一个事务ID,叫做transaction id(严格递增)(2)事务在启动时,找到已提交的最大事务I

2021-02-15 00:37:32 223

原创 面试问题总结

最近朋友面试问的问题1.介绍一下你在项目中所做的模块。2.单点登录的原理,你们jwt中包含哪些信息?3.Feign客户端的远程调用是怎么实现的?协议是什么?Hystrics熔断保护的实现原理?4.Redis的有哪些模式?5.项目中的搜索功能是怎么实现的?ES+kibana ik分词6.MQ怎么知道消息被指定的消费者消费?怎么使不同的生产者生产的消息被不同的消费者消费?1.引入第三方登录时,怎么使得你自己的token和第三方的token关联起来?2.讲一下为什么JVM要分为堆...

2021-01-17 11:43:28 139

原创 HashMap常考问题

第一题:当key为null时,这次put操作,数据将被放入哪个桶位?为什么?第二题:为什么HashMap内部的散列表数组的长度一定是2的次方数?第三题: . HashMap内部的散列表结构,什么时候初始化?以及初始化大小分别有哪几种情况?第四题: HashMap为什么需要扩容?谈谈你的理解第五题: HashMap扩 容算法,请你描述一下!第六题: HashMap内部散列表中存放的node元素中的hash属性值,与你插入的key的hashcode是否一致,为什么?第七题: JDK1.8中Hash

2021-01-17 09:41:04 313 1

原创 MySQL全局锁和表锁

总结:根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁一、全局锁:对整个数据库实例加锁。MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态。使用该命令之后,数据更新语句、数据定义语句和更新类事务的提交语句等操作都会被阻塞。使用场景:全库逻辑备份。风险:1.如果在主库备份,在备份期间不能更新,业务停摆2.如果在从库备份,备份期间不能执行主库同步的binlog,导致主从延迟官方自带的逻辑备份工具

2021-01-11 12:18:01 141

原创 MySQL索引总结(下)

回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID from T where k between 3 and 5在引擎内部使用覆盖索引在索引K上其实读了三个记录,R3~R5(对应的索引k上的记录项),但对于MySQL的Server层来说,它就是找引擎拿到了两条记录,因此MySQL认为扫描行数是2最左前缀原则:B+Tree这种索引结构,可以利用索引的"最左前缀"来定位记录只要满足最左前缀,就可以利用索引来加速检索。最左前缀可以是联合索引

2021-01-10 13:12:05 129

原创 如何避免长事务对业务的影响?

首先,从应用开发端来看:1. 确认是否使用了 set autocommit=0。这个确认工作可以在测试环境中开展,把 MySQL 的 general_log 开起来,然后随便跑一个业务逻辑,通过 general_log 的日志来确认。一般框架如果会设置这个值,也就会提供参数来控制行为,你的目标就是把它改成 1。2.确认是否有不必要的只读事务。有些框架会习惯不管什么语句先用 begin/commit 框起来。我见过有些是业务并没有这个需要,但是也把好几个 select 语句放到了事务中。这种只读事务可

2021-01-09 18:44:20 259

原创 MySQL索引总结(上)

1.索引的作用:提高数据查询效率2.常见索引模型:哈希表、有序数组、搜索树3.哈希表:键 - 值(key - value)。4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置5.哈希冲突的处理办法:链表6.哈希表适用场景:只有等值查询的场景7.有序数组:按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(log(N))8.有序数组查询效率高,更新效率低9.有序数组的适用场景:静态存储引擎。10.二叉搜索树:每个节点的左儿子小于

2021-01-09 17:44:47 173

原创 程序员小灰-单链表增删查联系JAVA版本

public class TestLinkList { private Node head; // 尾节点指针 private Node last; // 链表实际长度 private int size; public static void main(String[] args) throws Exception { // 头节点指针 TestLinkList myLinkedList = new TestLinkList();.

2020-12-22 22:20:40 177

原创 消息队列常考问题记录

你们的业务系统传递消息时,消息链路如何追踪,才能在系统bug时快速排查MQ的问题? 如果给你系统设计一个 MQ 数据全链路零丢失方案,如何设计? 你们生产环境中的MQ集群是如何规划的?能抗多少并发? 如何给你们的系统设计一个消息幂等性机制? 消费系统故障导致的百万消息积压问题遇到过吗?如何处理的? 如果给你们系统设计一个消息延迟调度机制,如何设计? 如何设计一套 Kafka 到 RocketMQ 的双写 + 双读技术方案,实现无缝迁移! ...

2020-12-22 11:29:08 165 2

原创 RabbitMQ总结

1.掌握MQ在各种场景下的应用;2.熟悉了解/深入探究主流消息中间件特点,架构,原理,底层机制;3.学习Rabbit基础原理和API级别使用;4.巧妙运用Rabbit高级特性服务于你的应用服用,架构设计;5.学会MQ与Spring体系整合,更搞笑的实现MQ与应用服务的集成;6.构建高可靠性的MQ服务,搭建完备的平台化体系;7.紧密结合互联网大厂的架构设计思路,构建自己的架构设计思想;8.解决各种场景,需求下的MQ中间件设计与落地;9.封装基础组件,让别人站在你的肩膀上编码;.

2020-12-20 16:35:22 202

原创 如何进行线上系统的JVM调优

1.分析系统的背景和核心业务流程2.预估高峰时长及当时的活跃用户3.预估产生多少请求及每个请求处理时长4.预估需要部署多少台机器及每台机器每秒抗多少请求5.预估一个对象的内存大小及每秒产生对象总大小6.然后对JVM参数进行调优;7.要使用系统压测工具,进行分组压测8.使用分布式链路追踪监控系统查看效果,记录tp99,tp999,接口可用率,耗时以及JVM内存回收情况,内存对象生命周期等信息;...

2020-11-15 17:20:11 449

原创 G1垃圾收集器使用注意事项

对于新生代,主要目标是避免短期存活的对象进入老年代。1. 预估系统每次GC后存活对象,确保Survivor能放得下。2. 避免高峰期间,新生代对象满足动态年龄判断条件,导致短期存活对象进入老年代。3. 大对象有大对象Region,不占用老年代空间,基本不用考虑。对于老年代;1. 对于可预测停顿时间,需要合理设置,并不是越小越好,如果过小,有可能多次回收效果不大,最终导致回收失败FullGC,停顿系统线程。2. G1HeapWastePercent 这个参数,我觉得应该可以适当提高,避免万一

2020-11-15 17:01:08 1102 1

原创 Synchronized如何保证原子性 可见性 有序性

原子性:枷锁和释放锁,ObjectMonitor;可见性:加了Load屏障和Store屏障,释放锁flush数据,枷锁会refresh数据;有序性:Acquire屏障和Release屏障,保证同步代码内部的指令可以重排序,但是同步代码内部的指令和外面的指令是不能重排;...

2020-10-25 16:11:26 1285 1

springmvc+extjs4实例树

springmvc+extjs4实例树

2014-04-17

ExtJS医院管理

ExtJS医院管理

2014-04-17

Firefox_FireBug_调试技巧

Firefox FireBug 调试技巧 对于初学前台技术的如extjs之类 的东东 会用Firefox FireBug是很重要的

2014-04-12

extjs增删改查实例Java版本

自己牺牲了一个铜板给大家找的,希望对初学者们都有用哈

2014-04-12

达内C++资源下载地址

达内C++资源下载地址

2014-04-05

ajax李刚教程

李刚系列教程,ajax,大家可以看看

2014-04-05

导出excle表格

非常实用的导出excle、pdf代码,开源,希望能帮助大家

2014-04-01

extjs后台管理界面

一个不错的extjs后台界面,开源的哦

2014-04-01

手机滚动示例

一个不错的特效,一个不错的特效

2014-04-01

动态图片_lanrentuku.com

动态图片,我从网上下的觉得不错,分享给大家!!

2014-03-19

sublime Text2皮肤

sublime text2 一个对于程序员来说非常好用的软件皮肤,之所以没有上传软件是因为它可以很容易的从官网上下到,皮肤是给大家没事的时候可以折腾折腾

2014-03-19

后台静态模板

几套后台的开发JSP界面,上传上来给大家看看,希望能帮助到大家!

2014-03-13

Linux常用命令全集

是我从网上下的,我担心有些人找时候不好找,就共享一下,希望能帮助大家!

2014-03-13

各大互联网公司面试题

快到毕业生的季节了,在这里我下载了一个国内互联网公司的面试题,大家参考着看看吧,有腾讯、阿里、微软等、免费的哦

2014-02-21

英雄会算法代码

英雄会算法代码,C语言描写

2014-02-17

myeclipse10.7破解

myeclipse10.7破解钥匙。

2014-02-10

UE编辑器使用说明

简单描述UE的使用,非常使用!创建过程等

2014-01-23

Editplus代码格式化(css.js.html)

免费给大家,这个我使用成功了,推荐给大家!

2014-01-23

安卓开发包

安卓开发包

2013-12-15

网络工程规划与设计

网络工程规划与设计课件

2013-10-26

TestThreadSafe.java

博客示例代码

2020-06-09

微信H5支付DEMO-可直接填写参数调用

微信H5支付DEMO-可直接填写参数调用 微信H5支付DEMO-可直接填写参数调用

2018-08-11

java并发包源码分析(3)ThreadLocal

java并发包源码分析(3)ThreadLocal 详细配图讲解 java并发包源码分析(3)ThreadLocal 详细配图讲解

2018-07-05

SecureCRT+FX+keygen_x86+x64_ver8.0

SecureCRT+FX+keygen_x86+x64_ver8.0

2017-06-23

Java最小动态树显示

java最小动态树演示

2016-07-11

程序员面试宝典第四版

程序员面试宝典第四版

2016-01-31

BlackICE

BlackICE

2014-08-03

autoruns查看系统进程,查找病毒木马的好工具

查看系统进程,查找病毒木马的好工具 查看系统进程,查找病毒木马的好工具 查看系统进程,查找病毒木马的好工具 查看系统进程,查找病毒木马的好工具 查看系统进程,查找病毒木马的好工具 查看系统进程,查找病毒木马的好工具

2014-08-03

Hibernateannotation

Hibernate注解文档

2014-06-10

poi.jar包

poi.jar用处,很多,我怕我忘记了,所以先传上来

2014-06-10

gson.jar包

gson.jar完成json能完成的一切,而且更方便

2014-06-10

Git的配置与使用

Git的配置与使用

2014-06-10

项目整合管理

项目整合管理

2014-06-10

springTranction

spring事物的测试

2014-06-10

C Programming Language

C Programming Language

2014-06-10

json数据格式

json数据格式转化、

2014-04-26

sniffer的使用

sniffer教程使用

2014-04-26

jcom.jar的使用

jcom可以用来打印文档和生成PDF,我怕弄丢了, 所以上传!!

2014-04-26

后台模板25个

后台模板

2014-04-18

commons-lang3-3.1

commons-lang3-3.1.jar上传给大家,省的我弄丢了!= =

2014-04-18

空空如也

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

TA关注的人

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