Giter VIP home page Giter VIP logo

systemx's Introduction

SystemX

系统以及分布式系统设计原理知识

关于spring

spring依赖注入的好处是什么?

spring依赖注入实现原理是什么?

关系数据库知识

MYSQL的复制原理和流线程

1 主: binlog线程, 记录下所有改变数据的语句, 存入master的binlog中 2 从: io线程, 在使用start slave后, 负责从master上拉取binlog内容, 放进自己的relay log中 3 从: sql执行线程, 执行relay log中的语句

用什么方法保存省市区县

用一个表达树形结构的表来存储(id name pid) id字段,**用0,省市县用区号编码

mysql查询慢了,如何优化索引

InnoDB的索引结构

锁的模式包括哪些 1 共享锁: 读取操作创建的锁, 其他用户可以并发读取数据,但不能获取数据上的排他锁, 直到所有共享锁都已经释放 lock in share mode 2 排它锁: 其他事物不能再对数据加锁, 获得锁的事务既能读数据由能写数据 for update 3 更新锁: 一次只有一个事务可以获得资源的更新锁, 如果事务修改资源,则转换为排他锁, 否则转化为共享锁 锁的粒度有哪几种类型 1 行锁: 粒度最小,并发性最高 2 页锁: 一次锁定一页, 25个行锁可以升级为一个页锁 3 表锁: 粒度大,并发性低 4 数据库锁: 控制整个数据库操作 乐观锁和悲观锁是什么? 1 乐观锁: 假设数据一般情况下不会造成冲突, 在提交更新时, 才对数据进行冲突检测, 如果发生冲突, 返回错误信息让用户去决定 2 悲观锁: 操作数据的时候,就认为会造成冲突, 可以有排他锁和共享锁两种实现

#分布式锁 大型网站都是分布式部署的, 分布式场景的数据一致性问题很重要 有个CAP理论, 一致性(Consistency), 可用性(Availability), 分区容错性(Partition tolerance)最多只能同时满足两个 一般都牺牲强一致性,要高可用行,保证最终一致性. 为了保证最终一致性, 在分布式环境中,需要用分布式锁. 分布式锁应该是什么样的呢? 1 可以保证集群中, 同一个方法在同一时间只能被一台机器上的一个线程执行 2 这把锁应该是一把可重入锁,从而避免死锁 3 有高可用的获取锁和释放锁的功能 4 获取锁和释放锁的性能要好 目前分布式锁的实现,有以下几种方案 1 基于数据库实现分布式锁 2 基于缓存(redis, memcached, tair)实现分布式锁 3 基于zk实现分布式锁

基于数据库表来实现分布式锁 1 创建个表, 把方法或资源名加唯一索引, 要锁住某个方法或者资源时, 加一条记录, 释放时删除这条记录 基于缓存实现分布式锁 1 很多缓存可以集群部署,可以解决单点问题, 性能也会好 基于zk实现分布式锁 1 需要加锁时, 在与该方法对应的指定节点目录下, 生成一个唯一的临时有序节点.

线程有哪些状态 1 新建 new 2 可运行 runnable 3 运行中 running 4 阻塞 blocked 5 死亡 dead

HashMap 1 底层实现: 用开链法解决冲突, 所以是链表的数组, java8中链表节点多了的时候链表换成红黑树 2 遍历方式: 3 冲突比较多,链表比较长的时候,怎么提高效率:

Java的内存模型是啥样的? 1 包含哪几个部分: 栈 堆 方法区 本地方法栈 程序计数器 栈: 局部变量 基本数据类型的值 引用类型的引用, 每个线程有自己的一个栈 堆: 对象本身和数组, 一个jvm只有一个堆 方法区: 类的名称, 方法, 字段, 静态变量, 常量

GC的机制是怎样的? 1 大致说一下 2 如何手动触发全量回收垃圾 3 如何立即触发垃圾回收

systemx's People

Contributors

limerence2015 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.