MyBatis二级缓存使用

  • 注意点:
  • 在最新的3.x版本,实现二级缓存的配置也有了一些改变。
  • 官方建议在service使用缓存,但是你也可以直接在mapper层缓存,这里的二级缓存就是直接在Mapper层进行缓存操作
阅读更多

说说MySQL读写分离的原理?主从同步延时咋解决?

1、面试题

你们有没有做MySQL读写分离?如何实现mysql的读写分离?MySQL主从复制原理的是啥?如何解决mysql主从同步的延时问题?

2、面试官心里分析

这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?

阅读更多

线上服务器进行分库分表(达到亿级数据)

如何设计可以动态扩容缩容的分库分表方案?

  • (1)选择一个数据库中间件,调研、学习、测试
  • (2)设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,3个库每个库4个表
  • (3)基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写
  • (4)完成单库单表到分库分表的迁移,双写方案
  • (5)线上系统开始基于分库分表对外提供服务
  • (6)扩容了,扩容成6个库,每个库需要12个表,你怎么来增加更多库和表呢?
阅读更多

dubbo 支持哪些通信协议?支持哪些序列化协议?

面试题

dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?

面试官心理分析

上一个问题,说说 dubbo 的基本工作原理,那是你必须知道的,至少要知道 dubbo 分成哪些层,然后平时怎么发起 rpc 请求的,注册、发现、调用,这些是基本的。
接着就可以针对底层进行深入的问问了,比如第一步就可以先问问序列化协议这块,就是平时 RPC 的时候怎么走的?

阅读更多

Java 高级 --- 多线程快速入门

多线程快速入门
author: RolandLee
tags: []
categories:

  • java
  • 基础
    date: 2019-01-02 21:36:00

这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书

多线程快速入门

1、线程与进程区别

  • 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。 所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。

  • 使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。

  • 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换,更多的线程需要更多的内存空间,线程的中止需要考虑其对程序运行的影响。通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。

  • 总结:进程是所有线程的集合,每一个线程是进程中的一条执行路径。

阅读更多