08 2019 档案
摘要:所谓单例就是在系统中只有一个该类的实例。单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局的对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件
阅读全文
摘要:1.什么是synchronized 我们将其理解为同步锁,可以实现共享资源的同步访问,解决线程并发的安全问题。synchronize翻译成中文:同步,使同步。synchronized:已同步。 1.1 怎么使用的 修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁 修饰静态方
阅读全文
摘要:一致性级别划分 关于分布式系统一致性级别的划分,有些文章划分为 强一致性,顺序一致性以及弱一致性 。 最终一致性属于弱一致性,最终一致性根据更新数据后各进程访问到数据的时间和方式的不同划分为: 因果一致性、 “读己之所写(read your writes)”一致性、 会话(Session)一致性、
阅读全文
摘要:最近在研究分布式系统的一些理论概念,例如关于分布式系统一致性的讨论,看了一些文章我有一些不解。大多数对分布式系统一致性的划分是将其分为三类:强一致性,顺序一致性以及弱一致性。强一致性(Strict Consistency)也称为:原子一致性(Atomic Consistency)、线性一致性(Lin
阅读全文
摘要:Zookeeper是什么 ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服
阅读全文
摘要:上篇文章Zookeeper_阅读源码第一步_在 IDE 里启动 zkServer(单机版)讲了在 idea 里以单机的方式启动zookeeper,这篇介绍一下以集群的方式启动。 集群方式启动,才会真正的用到 Zookeeper 的快速选举算法,单机版不涉及选举。这里我准备启动三个zkServer实例
阅读全文
摘要:Zookeeper是开源的,如果想多了解Zookeeper或看它的源码,最好是能找到它的源码并在 IDE 里启动,可以debug看它咋执行的,能够帮助你理解其原理。 准备源码 所以我们很容易搞到它的源码,例如我们从GitHub上获取源码 或 从Apache官网获取可运行版本的压缩包(内含源码)。这里
阅读全文
摘要:做 MySQL 查询优化遇到明明建了索引查询仍然很慢,看这个 SQL 的执行计划,看它到底有没有用到索引,执行的具体情况。我们可以用 EXPLAIN 命令查看 SQL 的执行计划,SQL 优化的重要性和执行计划密切相关。 EXPLAIN 能够让我们了解到MySQL将如何执行出现在 EXPLAIN 之
阅读全文
摘要:EXPLAIN命令输出的列中Extra字段可选值较多,这里单独说一下。 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息。以下列表说明了此列中可能出现的值。每个项目还指示JSON格式的输出哪个属性显示Extra值。对于其中一些,有一个特定的属性。其他显示为message 属性的文本
阅读全文
摘要:超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HT
阅读全文
摘要:1、sleep方法是Thread类的静态方法; wait方法是Object类的成员方法 2、sleep方法使当前线程暂停执行指定的时间,让出cpu给其他线程,但是它的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep方法后,线程不会释放对象锁; 而当调用wait方法时,线程会
阅读全文
摘要:几个月前,公司架构优化,首先就是前后端分离。 所谓前后端分离,就是在传统的前后端代码都在一个项目里的基础上,将前后端代码抽离,把前端代码从后端项目了分离出来,前后端开发人员各自在自己的项目里开发。 为什么要前后端分离? 随着项目越做越大,功能模块越来越多,代码量越来越多,前后端代码都糅杂在一个项目里
阅读全文
摘要:Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locato
阅读全文
摘要:来自刚被某互联网公司录取的朋友的分享。 整理的面试题1: 1.Java里面有哪几种基础数据类型, 2.Char为何是两个字节, 3.Object有哪些方法 4.final修饰变量,函数,类的作用, 5.ArrayList的父类有哪些, 6.为什么覆盖equal的时候必须覆盖hashcode, 7.反
阅读全文
摘要:昨天在搜抽象工厂模式时,发现有好几篇博文讲的实现方式和我所认知的有出入,而且还看到某某教程讲的也是错误的还在搜索引擎排第一。 大家讲的简单工厂模式和工厂方法模式都是没问题的,关键到抽象工厂模式就不对了。 先从简单工厂模式和工厂方法模式复习一下,然后再看看错的是咋讲的。已经对抽象工厂模式烂熟于心的请忽
阅读全文
摘要:通过ThreadPoolExecutor的方式创建线程池 ThreadPoolExecutor 构造方法: 参数的意义: 1.corePoolSize 指定了线程池里的线程数量,核心线程池大小2.maximumPoolSize 指定了线程池里的最大线程数量3.keepAliveTime 当线程池线程
阅读全文
摘要:IDEA导入阿里规约插件,当你这样写代码时,插件就会自动监测出来,并给你红线提醒。 告诉你手动创建线程池,效果会更好。 在探秘原因之前我们要先了解一下线程池 ThreadPoolExecutor 都有哪些参数及其意义。 ThreadPoolExecutor 构造方法: 参数的意义: 1.corePo
阅读全文
摘要:在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率。本文记录了我在平时积累的常用命令,分享给大家。 git命令 基本命令 文件名为中文时,git status展示中文乱码 解决:执行命令 git config --global core.quotepath false 重新打开gi
阅读全文
摘要:平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了。 以备不时之需,我们要熟悉一下命令行操作MySQL。 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输入命令:mysql -uroot -proot -h127.0.0.1 【-u 用户名 -p密码 -
阅读全文