系统设计
a925907195
best
展开
-
Apache Calcite 简介
1. 什么是Apache Calcite ?Apache Calcite 是一款开源SQL解析工具, 可以将各种SQL语句解析成抽象语法术AST(Abstract Syntax Tree), 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中。Calcite的生前为Optiq(也为Farrago), 为Java语言编写, 通过十多年的发展, 在2013年成为Apach...转载 2020-01-01 22:20:53 · 662 阅读 · 0 评论 -
分布式事务与一致性算法Paxos & raft & zab
1.CAP原理要想数据高可用,就得写多份数据写多分数据就会导致数据一致性问题数据一致性问题会引起性能问题2.一致性模型弱一致性最终一致性(一段时间达到一致性)强一致1、2 异步冗余;3是同步冗余3.扩展服务的方案数据分区: uid % 16数据镜像:让多有的服务器都有相同的数据,提供相当的服务(冗余存储,一般3份为好)4.两种方案的事务问题A向B汇钱...转载 2019-08-04 14:48:33 · 333 阅读 · 0 评论 -
Leveldb 实现原理
郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的话可以一起讨论 Leveldb 的实现原理!LevelDb日知录之一:LevelDb 101...转载 2019-04-23 17:06:46 · 226 阅读 · 0 评论 -
架构设计方法
摘要: 原创出处 https://juejin.im/post/5b2c6669e51d4558c91ba776 「陈彩华」欢迎转载,保留摘要,谢谢!1. 基本概念和目的 2. 架构设计复杂度来源 2.1 高性能 2.2 高可用 2.3 可扩展性 2.4 低成本、安全、规模 3. 架构设计三原则 3.1 合适原则 3.2 简单原则 3.3 演化原则 4. ...转载 2019-02-12 15:00:51 · 240 阅读 · 0 评论 -
几种序列化协议(protobuf,xstream,jackjson,jdk,hessian)相关数据对比
最近研究了下google protobuf协议,顺便对比了一下json,xml,java序列化相关的数据对比,从几个纬度进行对比。 别人的相关测试数据: http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking 测试纬度序列化时间 反序列化时间 bytes大小测试代码准备protobuf文件...转载 2018-11-05 20:22:05 · 991 阅读 · 0 评论 -
分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道来。 一般而言,对于推广营销类短信,它们针对某一群体(譬如注册会员)进行定点推送,有时这个群体的成员...转载 2018-04-25 11:11:07 · 604 阅读 · 0 评论 -
akka系列文章(讲的不错)
akka系列文章目录akka学习教程(十四) akka分布式实战akka学习教程(十三) akka分布式akka学习教程(十二) Spring与Akka的集成akka学习教程(十一) akka持久化akka学习教程(十) agentakka学习教程(九) STM软件事务内存akka学习教程(八) Actor中的Future-询问模式akka学习教程(七) 内置状态转换Procedureakka学习...转载 2018-03-21 10:50:15 · 4907 阅读 · 0 评论 -
git 出现 fatal: Pathspec 'assets/' is in submodule 'public/components/clockpicker',解决方法是
[html] view plain copy简述下出现的情况: 1.之前从github上,clone了一个clockpicker的插件,然后,直接将整个版本库,复制到了项目中 2.发现版本库中,并未记录到该目录!查看 '.gitignore' 等,也并未找到忽略该目录 3.进入clockpicker目录下,发现有.git,转载 2017-10-31 16:42:00 · 1341 阅读 · 0 评论 -
子雨大数据之Spark入门教程
跟林子雨老师联系过,可惜目前没有组建面向非高校的技术讨论平台,在大学能做这么好的技术分享还是很佩服的,希望能组建个平台能供喜欢这方面的朋友共同讨论,技术相互提高。留个qq群号,如果感兴趣的一块讨论:227258283Spark最初诞生于美国加州大学伯克利分校(UC Berkeley)的AMP实验室,是一个可应用于大规模数据处理的快速、通用引擎。2013年,Spark加入Apac转载 2017-08-03 10:53:48 · 1086 阅读 · 0 评论 -
基于Springboot-Netty-Protostuff-ZooKeeper分布式RPC框架
http://mp.weixin.qq.com/s/SgUOrwPgoP3FnzeIkzS7cw目录一、概述二、RPC原理简介三、序列化协议概述1 XML-RPC,SOAP,WebService2 PHPRPC3 Hessian4 JSON-RPC5 Microsoft WCF,WebAPI6 ZeroC Ice,原创 2017-08-02 15:01:54 · 6430 阅读 · 0 评论 -
Kafka 设计与原理详解
目录(?)[-]一Kafka简介1 背景历史2 Kafka诞生3 Kafka现在二Kafka技术概览1 Kafka的特性2 Kafka一些重要设计思想3 kafka 应用场景4 Kafka架构组件5 Kafka TopicPartition三Kafka 核心组件1 ReplicationsPartitions 和Leaders2 Producers3 Con转载 2017-05-17 17:01:01 · 1198 阅读 · 1 评论 -
maven+springMVC+mybatis+velocity+mysql+junit 代码生成器
最近刚把spring的源码过了一遍,但总感觉看完不能就这么结束了,得做点什么留下个脚印,所以自己基于maven+springMVC+mybatis+velocity+mysql+junit搭建个工程项目,并且做了对应框架的代码生成工具。下面就把项目框架介绍下,并在最后附带代码下载地址1.项目基本框架代码生成器基于velocity作为模板生成,目前主要做了jar包的生成以及web原创 2016-11-06 17:07:40 · 1451 阅读 · 0 评论 -
大型网站系统架构演化之路
前言 一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例转载 2014-10-10 15:19:49 · 642 阅读 · 0 评论