6 二俊89757

尚未进行身份认证

我要认证

性格踏实沉稳,并善于倾听他人,沟通表达能力较强,生活中善于解决他人困惑和问题; 有代码洁癖,喜欢代码review,喜欢思考重构自己负责的代码; 遵循阿里开发手册,有良好的代码规范; 对于计算机开发有浓厚的兴趣,有较强的学习和理解能力,自学过PS,AI,Sketch等软件; 乐于接受新鲜事物,并且能够积极应对学习生活中的各项挑战。

等级
TA的排名 15w+

聊聊接口幂等性

一、什么是幂等性幂等性是系统服务对外一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。声明为幂等的服务会认为外部调用失败是常态,并且失败之后必然会有重试。二、接口幂等性对于同一笔支付信息如果我其中某一次处理成功了,我虽然又接收到了消息,但是这时我不处理了,即保证接口的 幂等性。维基百科上的定义:幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。**在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。**幂等

2020-10-19 23:28:27

这可能是Redis比较全的知识整理

Redis和zookeeper做分布式锁的区别,redis为什么适合做分布式锁,它又存在什么问题todoRedis如何实现mq的功能todoRedis实现的消息队列功能和mq有什么区别todoredis单线程为什么执行速度这么快?(1):纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快(2):单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考

2020-10-19 23:24:48

这可能是Solr比较全的知识整理

Solr介绍Solr是建立在Apache Lucene ™之上的流行,快速,开放源代码的企业搜索平台。Solr具有高度的可靠性,可伸缩性和容错性,可提供分布式索引,复制和负载平衡查询,自动故障转移和恢复,集中式配置等。Solr为许多世界上最大的互联网站点提供搜索和导航功能。文档Solr官网Solr8.3官方文档Solr W3Cschool官方文档用法SolrJSolrJ是一个API,它使用Java(或任何基于JVM的语言)编写的应用程序可以轻松地与Solr交谈。SolrJ隐藏了许多连接到So

2020-10-19 23:23:11

这可能是MyBatis比较全的知识整理

MyBatis编程步骤是什么样的创建SqlSessionFactory通过SqlSessionFactory创建SqlSession通过sqlsession执行数据库操作调用session.commit()提交事务调用session.close()关闭会话Mybatis原理sqlsessionFactoryBuilder生成sqlsessionFactory(单例)工厂模式生成sqlsession执行sql以及控制事务Mybatis通过动态代理使Mapper(sql映射器)接口能运行

2020-10-19 23:14:53

Java面试软技能相关问题

怎么保证服务高可用冗余 + 故障转移MySQL主从架构服务超时机制平时怎么学习制定自己的成长计划,给自己人生定一个方向,达成这个方向我需要做哪些事情每年制定自己的todo list,今年我对自己的要求是(1.了解JVM和一个框架系统的学习和掌握源码,2.要产出博客,定时总结)然后制定学习计划,计划每天按照进度学习渠道:看正确的书,选一些传播度和影响力比较好的书;看视频学习,去了解用法;看github一些用法积累和总结:在平台去发布自己根据看书总结的文章,印象笔记总结最近在学习的一

2020-10-19 23:12:51

这可能是Java并发比较全的知识整理

如何优雅的创建线程池Excutor会产生OOM异常,FixedThreadPool和SingleThreadExecutor => 允许的请求队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而引起OOM异常CachedThreadPool => 允许创建的线程数为Integer.MAX_VALUE,可能会创建大量的线程,从而引起OOM异常ScheduledExecutorServicenew ThreadFactoryBuilder()ThreadPoo

2020-10-19 23:09:11

这可能是Java容器比较全的知识整理

LinkedHashMap底层数据结构?能够实现LRU吗?LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序。重新了newNode构建自己的节点对象。put方法中LinkedHashMap重写了afterNodeInsertion和afterNodeAccess方法。public class LRUCache<K,V> extends LinkedHashMap<K,

2020-10-19 23:07:45

这可能是MySQL比较全的知识整理

MySQL索引什么是索引高效获取数据的数据结构,相当于书的目录,使用B+树结构,索引是存储在磁盘文件中的(可能单独的索引文件中,也可能和数据一起存储在数据文件中)索引的分类单列索引普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。唯一索引:索引列中的值必须是唯一的,但是允许为空值。主键索引:是一种特殊的唯一索引,不允许有空值组合索引在表中的多个字段组合上创建的一个索引组合索引的使用,需要遵循最左前缀原

2020-10-19 23:05:30

这可能是JVM比较全的知识整理

Java内存结构线程私有的:程序计数器(当前线程所执行的字节码的行号指示器)虚拟机栈(每次方法调用的数据都是通过栈传递的。局部变量表/对象引用/实例方法)本地方法栈(有一个native关键字修饰,而且不存在方法体,这种用native修饰的方法就是本地方法)线程共享的堆(栈管运行,堆管存储,堆是垃圾收集器管理的主要区域)方法区(存放类的元数据信息,常量和静态变量)直接内存(非运行数据区的一部分)Java内存模型概念Java内存模型(Java Memory

2020-10-19 23:02:04

这可能是Spring比较全的知识整理-2

Spring的Bean怎么动态加载使用 BeanDefinitionBuilder注册bean(BeanDefinitionBuilder.rootBeanDefinition),添加属性&注册bean,beanFactory.registerBeanDefinition(“testBean”, b1.getBeanDefinition());使用 BeanFactoryPostProcessor注册bean。BeanFactoryPostProcessor允许自定义BeanDefinitio

2020-09-19 23:26:37

这可能是Java基础比较全的知识整理

动态代理和静态代理静态代理定义一个接口及其实现类;创建一个代理类同样实现这个接口将目标对象注注入进代理类,然后在代理类的对应方法调用目标类中的对应方法。这样的话,我们就可以通过代理类屏蔽对目标对象的访问,并且可以在目标方法执行前后做一些自己想做的事情。动态代理JDK 动态代理在 Java 动态代理机制中 InvocationHandler 接口和 Proxy 类是核心。Proxy类中使用频率最高的方法是:newProxyInstance()` ,这个方法主要用来生成一个代理对.

2020-09-19 23:09:41

这可能是分布式比较全的知识整理

分布式事务基于MQ的可靠事务消息消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息生产者发送一个半消息broker接收到消息并持久化后响应ACK执行本地事务,本地事务

2020-09-19 21:59:37

这可能是Dubbo比较全的知识整理

一、Dubbo的provider和consumer都配置timeout在Provider上尽量多配置Consumer端属性,原因如下:作服务的提供者,比服务使用方更清楚服务性能参数,如调用的超时时间,合理的重试次数,等等在Provider配置后,Consumer不配置则会使用Provider的配置值,即Provider配置可以作为Consumer的缺省值。否则,Consumer会使用Consumer端的全局设置,这对于Provider不可控的,并且往往是不合理的配置的覆盖规则:方法

2020-09-13 22:33:08

这可能是Spring比较全的知识整理

Spring的Bean怎么动态加载使用 BeanDefinitionBuilder注册bean(BeanDefinitionBuilder.rootBeanDefinition),添加属性&注册bean,beanFactory.registerBeanDefinition(“testBean”, b1.getBeanDefinition());使用 BeanFactoryPostProcessor注册bean。BeanFactoryPostProcessor允许自定义BeanDefinitio

2020-09-13 22:22:17

YApi结合xxl-job自动化测试

一、YApi介绍YApi旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,包括提供了一系列可视化接口管理,还有自动化测试1.1 自动化测试的场景及缺点传统的接口自动化测试成本高,大量的项目没有使用自动化测试保证接口的质量,仅仅依靠手动测试,是非常不可靠和容易出错的。YApi 为了解决这个问题,开发了可视化接口自动化测试功能,只需要配置每个接口的入参和对 RESPONSE 断言,即可实现对接口的自动化测试。而且大部分接口支持Swagger导入或者从Idea

2020-08-06 22:13:33

MyBatis如何解析mapper和Spring中@MapperScan原理

我们在启动项目的时候,spring就会帮我们实例化好bean,那我们使用mybatis-spring的时候,编 写的maper是怎么交给spring容器的呢?这就是今天要探讨的问题。一、MyBatis1.1 MyBatis简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Ol.

2020-08-03 22:03:03

Redis从入门到深入-高级数据类型(21)

1. Bitmaps1.1 Bitmaps类型的基础操作获取指定key对应偏移量上的bit值getbit key offset设置指定key对应偏移量上的bit值, value 只能是1或 0setbit key offset value1.2 Bitmaps类型的扩展操作业务场景-电影网站统计每天某一部电影是否被点播统计每天有多少部电影被点播统计每周/月/年有多少部电影被点播统计年度哪部电影没有被点播业务分析1.3 Bitmaps类型的扩展操作

2020-08-03 22:01:36

Redis从入门到深入-布隆过滤器(20)

1. 布隆过滤器前言不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把他说清楚,讲明白。。1.1 缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可是这是一次错误的条件查询,数据库当然也不会存在,也不会往redis里面写值,返回给用户一个空,这样的操作一次

2020-07-29 23:36:47

Redis从入门到深入-服务端配置(19)

1. 服务端设定设置服务器以守护线程的方式运行daemonize yes|no绑定主机地址bind 127.0.0.1设置服务端口号port 6379设置数据库数量databases 162. 日志配置设置服务器以指定日志记录级别loglevel debug|verbose|notice|warning日志记录文件名logfile 端口号.log注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,降低写日志io的频度3

2020-07-29 23:35:41

Redis从入门到深入-删除策略(18)

1. 删除策略1.1 过期数据redis中的数据特征redis是一种内存级数据库, 所有数据均存放在内存中, 内存中的数据可以通过TTL指令获取其状态XX:具有时效性的数据-1:永久有效的数据-2:已经过期的数据或被删除的数据或未定义的数据过期的数据真的删除了吗?1.2 数据删除策略1.定时删除2.惰性删除3.定期删除1.3 时效性数据的存储结构1.4 数据删除策略的目标在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降, 甚

2020-07-29 23:34:59

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取