![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术干货
南湖小九
那曾经是偶然的一切,我想从中获得更多。从这种偶然,我想获得一种持续,一种坚持,一种投入,一种忠诚。
展开
-
分布式的优点 分布式锁 分布式事务
原理:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。①分布式环境下,一个方法在同一时间只能被一个机器的一个线程执行②高可用的获取锁和释放锁③高性能的获取锁和释放锁④具备可重入特性⑤具备锁失效机制,防止死锁分布式锁的三种实现:A. 基于数据库实现分布式锁在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就是用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁(表中加一个字段,放置方法名,当调用方法,把方法名插转载 2020-07-09 10:33:23 · 185 阅读 · 0 评论 -
Java 编程思想 -- 类再生(七)
类再生Think in Java 第六章 类再生,持续更新中原创 2020-06-03 16:50:36 · 446 阅读 · 0 评论 -
Java编程思想 -- 隐藏实施过程(六)
隐藏实施过程(封装)Think in java 第五章内容更新,把书中内容总结到博客上,学习打卡“进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开。”这一点对于库来说是特别重要的。那个库的用户(客户程序员)必须能依赖自己使用的那一部分,并知道一旦新版本的库出台,自己不需要改写代码。而与此相反,库的创建者必须能自由地进行修改与改进,同时保证客户程序员代码不会受到那些变动的影响。(由此,引出了封装性,访问控制关键字private public protected)原创 2020-06-02 14:10:37 · 239 阅读 · 0 评论 -
Java编程思想 -- 一切都是对象(三)
一切都是对象Think in Java 第二章 Everything is object原创 2020-05-26 14:08:41 · 152 阅读 · 0 评论 -
Redis 缓存雪崩 缓存穿透 缓存击穿
面试常问,同时也必须掌握缓存雪崩缓存雪崩是指,缓存层出现了错误,不能正常工作了。于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。解决方案:(1)redis高可用既然redis有可能挂掉,那我多增设几台redis,这样一台挂掉之后其他的还可以继续工作,其实就是搭建的集群。(Redis 集群)(2)限流降级在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。(3)数据预热数据加热的含义就是.转载 2020-05-25 15:26:03 · 76 阅读 · 0 评论 -
Redis 面试题之 持久化机制
Redis持久化机制的理解和应用,面试叕问到了,结果我没准备好答不上来 :( so sad .Redis支持RDB和AOF两种持久化机制持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数 据恢复。RDB持久化RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存 比较大的实例会造成长时间阻塞,线上环境不建议使用b...转载 2020-05-25 14:53:44 · 203 阅读 · 0 评论 -
Java编程思想 -- 对象入门(二)
对象入门原创 2020-05-25 17:43:44 · 127 阅读 · 0 评论 -
Apache Ant 编译打包详解与Maven、Gradle区别
Apache Ant 编译打包详解与Maven、Gradle区别JVM生态圈由三大构建工具所统治:Apache Ant带着Ivy Maven Gradel什么是Ant、Maven、Gradle?Ant with IvyAnt是第一个“现代”构建工具,在很多方面它有些像Make。2000年发布,在很短时间内成为Java项目上最流行的构建工具。它的学习曲线很缓,因此不需要什么特殊的准备就能上手。它基于过程式编程的idea。在最初的版本之后,逐渐具备了支持插件的功能。主要的不足..翻译 2020-05-14 14:33:21 · 629 阅读 · 0 评论 -
高并发解决方案 超详细!!!
高并发解决方案1. 高并发和大流量解决方案高并发解决方案案例 流量优化:防盗链处理 前端优化:减少HTTP请求,合并css或js,添加异步请求,启用浏览器缓存和文件压缩,CDN加速,建立独立图片服务器, 服务端优化:页面静态化,并发处理,队列处理 数据库优化:数据库缓存,分库分表,分区操作,读写分离,负载均衡 web服务器优化:负载均衡,nginx反向代理,7,4层LVS软件2.web资源防盗链盗链:在自己的页面上展示一些并不在自己服务...转载 2020-05-13 17:55:53 · 1700 阅读 · 0 评论 -
LeetCode算法题之删除相同邮件
这是一题SQL题,但是也从中收获了很多,在此做记录题目:编写一个 SQL 查询,来删除Person表中所有重复的电子邮箱,重复的邮箱里只保留Id最小的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | john@example.com || 2 | bob@example.com || 3 | john@example.com |+----+...原创 2020-05-13 15:02:00 · 126 阅读 · 0 评论 -
Hibernate与MyBatis对比
Hibernate与MyBatis对比相同点Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。Hibernate和MyBatis都支持JDBC和JTA事务处理。不同点(1)hibernat转载 2020-05-11 15:12:13 · 116 阅读 · 0 评论 -
Spring核心之Spring bean容器与bean注入
Spring bean容器Spring Bean 容器(spring 容器(container) 管理 bean的整个生命周期)Spring IOC 控制反转 DI 依赖注入Spring AOP 面向切片编程 Aspect Oriented ProgramingBean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载、实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bea原创 2020-05-11 13:23:30 · 518 阅读 · 0 评论 -
Java编程思想 -- 写在前面(一)
这个系列的博客是记录我学习Thinking in Java 的 总结心得,以及一些知识点、干货提炼出来 (希望能够坚持,同时如果有理解不对的地方也希望各位同好指出)原创 2020-05-11 09:52:52 · 166 阅读 · 0 评论