- 博客(21)
- 收藏
- 关注
原创 ddia-读书笔记 第五章 数据复制
复制主要是指通过网络在多台机器上保存相同的副本,来达到以下目的高可用:部分故障,依然可用 连接断开与容错: 允许程序在网络中断时继续工作 低延迟: 数据放在离用户较近的地方 可扩展: 多副本读取本章假设每个副本保存完整数据,第六章再讨论分区三种流行的复制数据变化的方法主从复制主副本写,从副本只读复制方式同步复制 异步复制需要考虑的问题新加从节点 节点失效 异步复制滞后,通过以下一致性模型来处理 写后读一致性 :保证用户总能看到自己所提交的最新数据 单..
2021-09-20 13:39:16 130
原创 ddia-读书笔记 第三章 数据存储和检索
数据存储和检索如何存储数据,如何查找数据最简单的结构底层结构:一个纯文本文件,其中每行包含一个key-value对插入: 每次插入即追加新的内容到文件末尾,相同的值不会覆盖。查询: 查看文件中最后一次出现的值来找到最新的值。追加到文件尾部的方式通常足够高效,这种机制叫做日志(log),这里的日志表示的是一个仅能追加的记录序列集合。问题: 查找会很慢,需要遍历从头到尾,o(n)。为了高效的查找,需要新的结构:索引。索引为了高效的查找数据,需要索引。基本思想都是保留一些额外的元数据,作为路标
2020-08-13 23:04:40 225
原创 ddia-读书笔记 第二章 数据模型与查询语言
数据模型与查询语言欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行
2020-08-13 22:33:34 245
原创 ddia-读书笔记 第一章
第一章 可靠、可扩展与可维护的应用系统数据系统(data system)的核心设计目标可靠性(Reliability). 当出现意外情况,系统可以继续正常运转 可扩展性(Scalability). 随着规模的增长,例如数据量,流量或复杂性,系统应以合理的方式匹配这种增长 可维护性(Maintainability).故障类型硬件错误 冗余 通过软件容错 软件错误 全面测试 进程隔离 监控 及时发现差异 人为失误 以最小出错的方式来设计系统 充分测试 .
2020-08-12 22:43:19 291
原创 数据库的数据结构 LSM-Tree 和 B-tree
数据库最基本的两件事情: 插入和查询涉及2个问题,如何存储数据和查找数据。最简单的结构底层结构:一个纯文本文件,其中每行包含一个key-value对插入: 每次插入即追加新的内容到文件末尾,相同的值不会覆盖。查询: 查看文件中最后一次出现的值来找到最新的值。追加到文件尾部的方式通常足够高效,这种机制叫做日志(log),这里的日志表示的是一个仅能追加的记录序列集合。问题: 查找会很慢,需要遍历从头到尾,o(n)。为了高效的查找,需要新的结构:索引。索引背后的基本想法.
2020-06-27 15:37:01 706
原创 并发编程模型
并发编程模型现代操作系统提供三种基本的构造并发程序的方法进程 线程 I/O 多路复用PPC (Process per Connection)新的连接就新建一个进程处理优点:简单,进程有独立的地址空间、缺点:进程间通信复杂,操作系统进程调度和切换压力大,TPC(Thread Per Connection)新的连接就新建一个线程优点:无需进程间通信缺点:...
2019-08-11 21:51:32 114
转载 mysql 学习笔记 09-
09 普通索引和唯一索引对于查询普通索引找到之后 还会继续向下遍历到不等于条件唯一索引找到直接退出。由于是按页读取的,所以遍历代价很小。对于更新change buffer如果更新时,数据也在内存中就直接更新,如果不在,则在不影响数据一致性的前提下,将更新操作缓存在change buffer,这样就不需要从磁盘读取。在下次查询这个数据页的时候,然后再执行change bu...
2019-07-07 13:44:35 195
转载 mysql 学习笔记 04-08
04 索引索引的常见模型哈希表、有序数组和搜索树。哈希表这种结构适用于只有等值查询的场景有序数组索引只适用于静态存储引擎InnoDB 使用了 B+ 树索引模型,所以数据都是存储在B+ 树中的B+ 树能够很好地配合磁盘的读写特性,减少单次查询的磁盘访问次数基于非主键索引的查询需要多扫描一棵索引树。因此,我们在应用中应该尽量使用主键查询。主键长度越小,普通索引的叶...
2019-06-30 11:46:16 90
转载 mysql 学习笔记 01-03
01大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、...
2019-06-30 11:00:54 93
原创 Google Play Billing 支付后端服务器对接
写在前面最近工作需要接入google Play Billing,看了半天的英文文档,走了很多弯路,所以在这里记录一下。注意1,本文记录的是Google Play Billing 是google play(谷歌商店) 的内购,需要app在商店上架。不是google pay。这个要特别注意2,本文主要记录的是后端服务器的对接过程,Google Play Billing不需要服务器也是...
2018-12-08 21:22:37 9381 1
原创 Redis 分布式锁终极版
先直接上代码/** * 简单redis分布式实现 解决宕机死锁和解锁了别人的锁的问题 * Created by ljb on 2017/12/26. */@Service("simpleLockDistributeService")public class SimpleLockDistributeService{ private static final Logger...
2018-07-17 13:06:25 389
原创 Java 并发 面试
1、synchronized 的实现原理以及锁优化?Synchronized是通过对象内部的一个叫做监视器锁(monitor)monitorenter和monitorexit命令实现Java早期版本中,synchronized属于重量级锁Java 6之后Java官方对从JVM层面对synchronized较大优化锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(不能降级)第二个线程进来偏向锁没有释放...
2018-04-13 17:47:19 688
原创 Java 集合 面试
Java 集合Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:Collection:代表一组对象,每一个对象都是它的子元素。Set:不包含重复元素的Collection。List:有顺序的collection,并且可以包含重复元素。Map:可以把键(key)映射到值(value)的对象,键不能重复。ArrayList 底层基于数组 增加超过容量...
2018-04-13 17:43:12 259
原创 spring boot http2 No ALPN classes available报错
报错如下先查看jdk和对应包版本关系http://www.eclipse.org/jetty/documentation/9.4.x/alpn-chapter.html#alpn-versionsjar包下载地址:http://mvnrepository.com/artifact/org.mortbay.jetty.alpn/alpn-boot在java启动参数里面添加 -Xbootclasspa...
2018-04-13 17:20:17 891
原创 elasticsearch 安装
1,下载安装包https://www.elastic.co/downloads/elasticsearch2,安装head进入bin目录 plugin install mobz/elasticsearch-head访问地址:http://{es-host}:9200/_plugin/head/3,安装中文分词器(ik)github 地址 https://github.com/medcl/elast
2017-12-28 15:05:07 186
原创 zookeeper 永久监听节点 来保证集群间一致性
先是封装的 zkClientpublic class ZkClient { public Logger logger = LoggerFactory.getLogger(getClass()); public ZooKeeper zookeeper; private static int SESSION_TIME_OUT = 2000; private IWatc...
2017-11-21 19:44:36 2983
原创 GitHubDesktop安装后 git.exe路径
GitHubDesktop下载地址https://desktop.github.com/ win10系统C:\Users\youName\AppData\Local\GitHubDesktop\app-0.7.0\resources\app\git\cmd
2017-07-31 16:23:46 6568
原创 mysql安装过程中看不到next,无法下一步
应该是系统字体大小显示的原因。解决办法:1,用快捷键b n x f c来进行操作,b-back。n-next。x-execute。f-finish。c-cancel2,更改系统字体大小。
2017-07-08 13:34:27 6830 2
原创 Java 扫描包下所有类(包括jar包)
package com.MyUtils.file;import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.JarURLConnection;import java.net.URI;import java.net.URISyntaxException;i...
2017-06-26 11:20:28 10081
原创 maven 指定jdk版本
当工程中pom.xml 没有指定jdk版本,update之后会变为maven默认的jdk版本解决办法修改maven 使用的 settings.xml文件在里面添加如下 jdk-1.8 true 1.8 1.8 1.8 1.8
2017-06-08 15:47:11 476
原创 Spring Boot 超·简单demo
1, 用IDE创建一个Maven项目2, 修改pom.xml 添加依赖包 4.0.0 test.ljb.spring spirng-cloud 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 1.3.1.RELEASE
2017-06-08 15:21:16 475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人