随笔分类 -  面试专用

上一页 1 2 3 下一页

(重点)如何保证消息的可靠性传输?(消息丢了怎么办?)
摘要:丢消息的情况有多种,可能是生产者丢了,可能是MQ丢了,可能是消费者丢了。 1、rabbitMQ 一般是用来承载核心业务的,数据是绝对不能丢的。解决方案的核心是接收消息方给发送消息方返回ack 一句话总结:生产者开启confirm模式 + MQ持久化消息 + 消费者关闭autoAck,手动提交 ack 阅读全文

posted @ 2020-02-28 17:07 黑子菜园 阅读(434) 评论(0) 推荐(0)

(重点)如何保证消息的幂等性?(如何保证消息不被重复消费?)
摘要:消息重复消费,会造成数据混乱,特别是在涉及消费和财务系统里,此问题的解决显得尤为重要。 以kafka为例 关键字:消费端自动提交offset;写库或者redis时,先去查一下主键、key等是否存在 上图中,最顶上的文本框丢失的文字:并通知kafka当前最大offset; 最右边的文本框丢失的文字:数 阅读全文

posted @ 2020-02-28 15:54 黑子菜园 阅读(872) 评论(0) 推荐(0)

(重点)消息队列MQ如何保证高可用性?
摘要:保证MQ的高可用性,主要是解决MQ的缺点--系统复杂性变高--带来的问题 主要说一下 rabbitMQ 和 kafka 的高可用性 一、rabbitMQ的高可用性 rabbitMQ是基于主从做高可用性的,主要有三种模式:单机模式(不推荐)、普通集群模式(不推荐)、镜像集群模式(推荐) 1、单机模式: 阅读全文

posted @ 2020-02-25 22:09 黑子菜园 阅读(1433) 评论(0) 推荐(0)

mybatis中用到的9种设计模式
摘要:1、Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder 2、工厂模式:例如SqlSessionFactory、ObjectFactory、Map 阅读全文

posted @ 2020-02-25 22:05 黑子菜园 阅读(1863) 评论(0) 推荐(0)

(重点)高并发系统:消息队列MQ
摘要:注:前提是知道什么是消息队列。不懂的去搜索各种消息队列入门(activeMQ、rabbitMQ、rocketMQ、kafka) 1、为什么要使用MQ?(MQ的好处:解耦、异步、削峰) (1)解耦:主要解决系统间的耦合度 场景是系统A会产生用户ID:userId,要把userId通过调用系统B\C\D 阅读全文

posted @ 2020-02-24 21:33 黑子菜园 阅读(2206) 评论(0) 推荐(0)

springBoot常用注解
摘要:springboot启动类写法: @SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, ar 阅读全文

posted @ 2020-02-17 16:25 黑子菜园 阅读(208) 评论(0) 推荐(0)

springBoot 与 springMVC的区别
摘要:springMVC 1、是基于Servlet的一个MVC框架(DispatcherServlet、ModelAndView、ViewResolver),解决web开发问题 缺点是 :配置复杂 要简化使用,才应运而生的springBoot:约定优于配置 springMVC解决的问题是网站应用程序/服务 阅读全文

posted @ 2020-02-17 15:40 黑子菜园 阅读(818) 评论(0) 推荐(0)

spring的IOC和AOP
摘要:1、IOC 控制反转:由spring来控制对象的生命周期和对象之间的关系 依赖注入 DI :(1)组件之间的依赖关系由容器在运行期决定,动态的将某种依赖关系注入到组件中去 (2)通过反射机制实现 优点是: 降低了组件之间的耦合(例如组件A需要创建组件B,由spring注入到A中去,而不是A自己创建) 阅读全文

posted @ 2020-02-17 15:21 黑子菜园 阅读(120) 评论(0) 推荐(0)

(重点)redis学习汇总
摘要:一、redis是用C语言开发的一个开源的高性能键值对内存数据库,可用作数据库、缓存、消息代理: 性能优秀,读写速度非常快;线程安全;丰富的数据类型;支持数据持久化; 高性能:执行耗时久且结果不经常变动的sql,将结果放进缓存,查询时间短。 经典场景是:电商平台,某个产品一天之内信息都不变,但每次查询 阅读全文

posted @ 2020-02-16 18:05 黑子菜园 阅读(175) 评论(0) 推荐(1)

springMVC请求访问的整个过程
摘要://以上个随笔(springMVC项目配置文件)为基础,详述springMVC请求的整个过程流向 web.xml dispatcher-Servlet.xml 用户请求 --> 经DispatcherServlet拦截并分发到对应的控制器 > 由配置,/hello会进入HelloController 阅读全文

posted @ 2020-02-14 20:29 黑子菜园 阅读(661) 评论(0) 推荐(0)

单例模式的三种实现方式
摘要:懒汉、饿汉、双重校验锁 1、懒汉:需要时才会去创建 public Class Singleton{ private static Singleton instance = null; private Singleton(){} public static synchronized Singleton 阅读全文

posted @ 2020-02-13 20:09 黑子菜园 阅读(585) 评论(0) 推荐(0)

JDBC连接数据库的7个步骤
摘要:1、JDBC所需的四个参数username、password、url、driverClass 2、加载JDBC驱动程序 3、创建数据库连接connection对象conn 4、创建preparedStatement 5、执行sql语句 6、遍历结果集 7、处理异常,关闭JDBC对象资源 详细内容: 阅读全文

posted @ 2020-02-13 18:00 黑子菜园 阅读(1781) 评论(0) 推荐(0)

(重点)数据结构汇总
摘要:1、ConcurrentHashMap原理和技术,size方法的实现? java1.7中采用Segment +HashEntry +ReentrantLock实现,是用的分段锁 Java1.8中采用Node + CAS+Synchronized来保证并发安全实现,降低锁的粒度,采用链表 线程安全 C 阅读全文

posted @ 2020-02-13 17:06 黑子菜园 阅读(143) 评论(0) 推荐(0)

(重点)Java基础汇总
摘要:1、事务的ACID性: (1)原子性:要么做,要么都不做。程序操作执行未成功,则所做的更改会被撤销; (2)一致性:比如转账,a转给b一百元,则a的账户少100,b的账户多100,前后数据要一致; (3)隔离性:由数据库锁实现。事务的隔离级别有4种:未提交读、提交读、可重复读、串行化; (4)持久性 阅读全文

posted @ 2020-02-13 15:56 黑子菜园 阅读(110) 评论(0) 推荐(0)

创建线程的四种方式,及线程同步
摘要:1、创建线程的 4 种方式: (1)创建Thread类的子类,重写run方法 class Thread1 extends Thread{ public void run(){ 重写方法体 } } 在main方法中: Thread1 t1 = new Thread1 (); t1.start(); ( 阅读全文

posted @ 2018-04-24 11:44 黑子菜园 阅读(182) 评论(0) 推荐(0)

多线程的sleep、yield、join用法及sleep与wait的区别
摘要:Thread类的方法列表:sleep、yield、join用于线程的协作,围绕线程的调度 注意: 只有sleep方法不释放锁,其他都释放锁 1、join()等待线程结束:调用join方法的线程,执行结束后才会释放锁。主线程main中调用启动线程(调用start),然后调用该线程的join方法,可以达 阅读全文

posted @ 2018-03-27 15:59 黑子菜园 阅读(212) 评论(0) 推荐(0)

spring框架中用到了哪些设计模式
摘要:1、代理模式:在AOP和remoting中被用的比较多 2、单例模式:在spring配置文件中定义的bean默认为单例模式 3、模板方法模式:解决代码重复问题 父类定义骨架(共同方法的实现,调用哪些方法及顺序),某些特定方法由子类实现(父类是空方法,子类继承后再重写) 4、前端控制器模式:sprin 阅读全文

posted @ 2018-03-24 13:07 黑子菜园 阅读(8260) 评论(1) 推荐(2)

java面试记录二:spring加载流程、springmvc请求流程、spring事务失效、synchronized和volatile、JMM和JVM模型、二分查找的实现、垃圾收集器、控制台顺序打印ABC的三种线程实现
摘要:注:部分答案引用网络文章 简答题 1、Spring项目启动后的加载流程 (1)使用spring框架的web项目,在tomcat下,是根据web.xml来启动的。web.xml中负责配置启动springmvc和启动spring,其中,在 <servlet> <servlet-name>springMV 阅读全文

posted @ 2018-03-20 14:25 黑子菜园 阅读(493) 评论(0) 推荐(0)

java面试记录一:跳表、判断二叉树相同、冒泡排序、cookie和session的区别、设计模式(单例、工厂、模板方法、原型、代理、策略)、抽象类与接口的区别
摘要:1、什么是跳表? 跳表实际上就是多层链表 跳表可用在让链表的元素查询接近线性时间 代码结构及java实现参考博客园随笔 2、判断两棵二叉树是否相同?(结构相同,内容相同) 思路:(1)先定义树节点TreeNode:{ Int val; TreeNode left; TreeNode right;// 阅读全文

posted @ 2018-03-05 17:38 黑子菜园 阅读(214) 评论(0) 推荐(0)

跳表的java实现,转载自网络,仅供自己学习使用
摘要:跳表的java实现 阅读全文

posted @ 2018-02-27 10:23 黑子菜园 阅读(252) 评论(0) 推荐(0)

上一页 1 2 3 下一页

导航