分布式系统中接口如何避免表单的重复提交

分布式场景中,保证接口的幂等性十分重要。系统对某接口的多次请求,都应该返回同样的结果,避免因为各种原因,重复请求导致的业务重复处理。对应查询接口而已,其具体天生的幂等性,本文将介绍删除、新增和修改类型的接口,如何保证幂等性。
阅读更多

缓存与数据库双写一致性问题及最佳解决方案

在大型互联网应用当中如果你的应用引入了缓存机制,那么有一个大前提就是你的业务场景上必须得接受数据的新鲜度上有可能会有一定时间的延迟。删除缓存失败是一个极小概率事件,且在不能保证所有操作100%成功的几率下,采用JOB补偿的机制是目前比较成熟的解决方案。大并发量写请求的应用,不可能去实时写DB,基本都采用队列+消息异步写DB的机制,不然会有大量的并发问题。
阅读更多
说说Object类下面有几种方法

说说Object类下面有几种方法

今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的。Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先,这个祖先就是Object类。如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。Object的方法我们在平时基本都会用到,但如果没有准备被忽然这么一问,还是有点懵圈的。
阅读更多

单例模式的几种写法

纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。这里讲解几种笔者常用的写法,但切忌生搬硬套,编程最大的乐趣在于“know everything, control everything”。
阅读更多
你能说说Spring框架中Bean的生命周期吗

你能说说Spring框架中Bean的生命周期吗

1、实例化bean对象;2、设置对象属性;3、检查Aware相关接口并设置相关依赖;4、BeanPostProcessor前置处理;5、检查是否是InitializingBean以决定是否调用afterPropertiesSet方法;6、检查是否配置了自定义的init-method方法;7、BeanPostProcessor后置处理;8、注册必要的Destruction相关回调接口;9、使用中;10、是否实现了DisposableBean接口;11、检查是否配置了自定义的destory方法
阅读更多

Spring、SpringMVC、SpringBoot、SpringCloud有什么区别和联系

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。Spring配置复杂,繁琐,所以推出了Spring boot,约定优于配置,简化了spring的配置流程。Spring Cloud构建于Spring Boot之上,是一个关注全局的服务治理框架。
阅读更多