分布式
zhangSir134
不断思考,不断总结
展开
-
分布式基础
四大基础理论拜占庭将军问题CAP 理论ACID 理论BASE 理论八大分布式协议和算法Paxos 算法Raft 算法一致性 Hash 算法Gossip 协议算法Quorum NWR 算法FBFT 算法POW 算法ZAB 协议原创 2020-12-14 10:25:45 · 5564 阅读 · 0 评论 -
为什么要用Elasticsearch
概念Elasticsearch 简称ES,是一个分布式全文检索引擎。比如github的代码检索就是用了ES,百度也有用ES。由于Lucene的api相对比较复杂,所以ES其实是对Lucene的封装简化,并且提供了一套比较简单的api文档。es官网使用场景主要是海量数据检索,关键词:海量。因为只有数据量大了才能体现ES的优势。以下是我能想到的或者是之前有遇到过的场景:1、常用的经典组...原创 2020-03-24 00:38:24 · 9757 阅读 · 0 评论 -
skywalking(4)
Byte Buddy库统计方法调用时长1、增强字节码2、拦截器拦截类似于spring的aop,只不过skywalking不能用aop,所以用Byte Buddy技术代替Open Trace整个trace调用,是由多个span组成的有向无环图(就是调用关系图)。spen就是逻辑运行单元,有开始时间和结束时间,一般就是服务的某个实例的一个逻辑片段。每个span可以有多个键值对的log和...原创 2020-03-17 01:54:34 · 7555 阅读 · 0 评论 -
skywalking(3)
javaagent原理skywalking实现代码无侵入,就是用了javaagentjavaagent是java命令的一个参数,可以用于指定一个jar包这个jar包中的MANIFEST.MF中,必须指定Premain-Class项Premain-Class指定的那个类,必须实现premain()方法当虚拟机启动的时候,在执行main函数前,JVM会先运行这个premain()方法使用j...原创 2020-03-17 01:26:35 · 7405 阅读 · 0 评论 -
skywalking(2)
安装1、安装jdk2、安装es3、安装skywalking(backend和ui)应用启动时添加探针(agent)使用java -javaagent:/aa/bb/boot.jar -Dserver.port=8081 -jar boot.jar启动项目jar包查看调用链,追踪等仪表盘,拓扑图,追踪,告警,指标对比常用配置覆盖避免到处修改配置,可以直接在启动时候用启动参数配...原创 2020-03-17 01:09:44 · 7448 阅读 · 0 评论 -
skywalking(1) 基于opentracing规范的APM系统
skywalking是: 基于opentracing规范的APM系统skywalking解决了什么问题?skywalking解决微服务架构下,多服务直接复杂的调用关系了解dapper,分布式链路追踪系统dapper又是谷歌论文,各公司又相继模仿。(我为什么会说又???)APM系统各个公司借鉴谷歌的dapper,实现了自己的分布式链路追踪系统,统称APM系统。OpenTracing...原创 2020-03-16 23:37:39 · 9878 阅读 · 0 评论 -
[配置中心] --- consul
mac下载安装consul1、下载:consul下载地址2、解压到目录/usr/local/bin下3、执行consul文件4、验证:控制台输入consul验证5、启动consul:consul agent -devconsul简单介绍consul可以作为一个注册中心(主),同时又可以作为配置中心(辅)consul底层是实现了raft一致性协议,所以cap中,consul是cp,也...原创 2020-02-15 10:18:36 · 7412 阅读 · 0 评论 -
消息队列(4):Kafka
介绍kafka是一个支持分布式的消息系统,基于发布/订阅模式。kafka由LinkedIn公司开发,2010年成为Apache顶级项目。基本概念1、Brokerkafka集群中的每台机器,都叫一个broker.2、Topic(主题)一个topic代表着一类消息,不同类型的消息,就用不同的topic区分。3、Partition(分区)一个Partition就是一个队列。一个topi...原创 2019-12-13 00:30:20 · 7335 阅读 · 0 评论 -
阿波罗配置中心(apollo)的个人看法
阿波罗应该是近几年比较火的一个分布式配置中心了,说说我个人的理解,希望对一些人有用吧。首先从使用者的角度想我们怎么用配置中心的?1.得有个页面,能有权限管理,能有创建配置key-value。在阿波罗中,这个页面对应的服务叫Protal。存储权限相关信息的,有个数据库,叫Protal DB。存储配置文件信息的,也有个数据库,叫config DB。config DB对应有个服务叫Admi...原创 2019-12-06 21:06:22 · 9140 阅读 · 0 评论 -
为什么CAP不能同时满足的简单理解
为什么CAP不能同时满足的简单理解cap定理:前提是分布式系统中,cap三个只能满足两个,不能同时满足三个特性。Consistency (一致性):所有节点在同一时间的数据都是完全一致的。Availability (可用性):服务一直是可用的。Partition Tolerance (分区容错性): 分布式系统在某个节点或分区故障时,仍然能对外提供满足一致性或可用性的服务。cap只能取其...原创 2019-09-05 20:16:21 · 9336 阅读 · 2 评论 -
分布式锁闲谈
分布式锁闲谈前言服务器单机情况下,要锁住某个资源,我们一般用到的是synchronized,lock等锁,这是java提供的,也确实能很有效的锁住资源。但是在服务器集群的情况下,上面这些单机锁就不起作用了,你能锁住这台机器,但剩下的机器都没锁,就没有意义。所以,一般解决这种问题,我们都用分布式锁。分布式锁原理分布式锁,主要原理就是新增了一个第三方存储介质,代替以前的synchroniz...原创 2019-07-09 21:37:07 · 7444 阅读 · 0 评论 -
[分布式一致性协议] ------ raft协议的解释与理解
raft协议在分布式系统中,为了保证容错性,一般会维护多个副本集群,提高系统的高可用,但与之带来的问题就是多个副本的一致性(consensus)问题。我们认为,对于一个具有一致性的的集群中,同一时刻所有节点对存储在其中的值都应该是相同的,并且在集群大部分节点可用时,集群也是可用的。能完成这种一致性的协议,就叫一致性协议。常见的分布式一致性协议有:两阶段提交协议,三阶段提交协议,向量时...原创 2019-02-18 22:48:38 · 7917 阅读 · 0 评论 -
分布式和集群的区别
分布式和集群的区别分布式是多个不同功能的机器共同完成一件事情集群是多个相同功能的机器完成的是相同的事情分布式是为了分担压力集群是为了稳定性和高可用举个例子:一个厨师开了一个饭店,他要负责做饭和卖饭,他的压力就比较大,比较累,而且他有其他事的话,饭店就得关门;为了减少压力,这时候让他媳妇去卖饭,他只做饭,那么他和他媳妇就组成了一个分布式系统;但是如果他有事,饭...原创 2019-02-15 20:48:35 · 7878 阅读 · 0 评论 -
[分布式] ------ 全局唯一id生成之雪花算法(Twitter_Snowflake)
雪花算法(Twitter_Snowflake)我们知道,分布式全局唯一id的生成,一般是以下几种:基于雪花算法生成基于数据库基于redis基于zookeeper本文说下雪花算法。如下图:如上图:雪花算法生成的id,总共64位第一位作为保留位,默认0中间41位用来存放时间戳,是当前时间与初始时间的差值,(1L << 41) / (1000L * 60 * 60 ...原创 2019-01-27 19:52:27 · 10263 阅读 · 0 评论