![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
文章平均质量分 89
分布式系统
攻城狮不是猫
公众号:攻城狮不是猫,分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、 云原生、大数据与云计算技术和渗透技术。另外,还会分字各种视频资源,面试题和面试技巧。
展开
-
分布式学习——Zookeeper介绍(三)——Zookeeper的安装
在Zookeeper概述中简单介绍了Zookeepr,工欲善其事,必先利其器。那么本文就介绍如何安装Zookeeper。Zookeeper有三种安装方式:单机模式、集群模式、伪集群模式。单机模式单机模式表示只运行在一台服务器上,适合测试环境; 安装步骤如下:一、下载ZooKeeper二、解压三、在conf目录下创建一个配置文件zoo.cfgtic原创 2018-01-08 13:29:44 · 289 阅读 · 1 评论 -
分布式学习——Zookeeper介绍(二)——Zookeeper概述
在Zookeeper介绍(一)——背景知识中介绍过,随着网站的不断发展,逐渐从集中式演变到分布式。但是,在分布式系统中存在着很多数据一致性的问题。那么,有没有什么系统或者组件能够帮助我们解决这些一致性问题呢?本文将简单介绍一个分布式服务协调组件——Zookeeper。什么是ZookeeperZookeeper是一个开放源码的分布式服务协调组件,是Google Chubby的开源实现原创 2018-01-08 13:24:10 · 195 阅读 · 1 评论 -
分布式学习——Zookeeper介绍(一)——背景知识
本文主要介绍什么是分布式系统以及分布式系统存在哪些问题。分布式互联网技术的发展,导致大型网站需要的计算能力和存储能力越来越高。网站架构逐渐从集中式转变成分布式。什么是分布式把一个计算任务分解为若干个计算单元,并分派到若干个不同的计算机中去执行,然后再汇总计算结果。分布式的工作方式有点类似于团队合作。当有一项任务分配到某个团队之后,团队内部的成员开始各司其职,原创 2018-01-08 13:22:20 · 423 阅读 · 1 评论 -
分布式学习——分布式一致性算法——paxos
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在关于分布式事务、两阶段提交协议、三阶提交协议一文中主要用于解决分布式一致性问题的集中协议,那么这篇文章主要讲解业内公认的比较难的也是最行之有效的paxos算法。我原创 2018-01-08 13:20:04 · 208 阅读 · 0 评论 -
分布式学习——关于分布式事务、两阶段提交协议、三阶提交协议
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提交。分布式原创 2018-01-08 13:10:44 · 1069 阅读 · 0 评论 -
7. 链路日志打印实现设计
在前面的文章中,我们已经实现了一个Starter包,能够在使用作为客户端请求工具时,记录调用链路信息。在本文,将实现Jaeger框架下的链路日志打印,也就是提供一个来将Span的信息打印出来。相关版本依赖如下。0.33.04.1.01.8.1Springboot2.7.6github本文回顾了链路日志的打印格式,并定义了其对应的实体对象,最后实现了打印链路日志的Reporter。Starter包工程目录结构如下所示。原创 2024-05-10 13:56:30 · 1018 阅读 · 0 评论 -
6. 分布式链路追踪RestTemplate拦截器实现设计
本文将对4. 分布式链路追踪客户端工具包Starter设计一文中的的拦截器进行一个增强设计,以使得使用调用下游时,可以得到3. 分布式链路追踪的链路日志设计一文中所定义的链路日志的字段内容。相关版本依赖如下。0.33.04.1.01.8.1Springboot2.7.6github本文对的分布式链路追踪拦截器的实现进行了说明,并分析了如何提供装饰器进行功能扩展与增强。原创 2024-05-10 13:53:57 · 1008 阅读 · 0 评论 -
5. 分布式链路追踪TracingFilter改造增强设计
在4. 分布式链路追踪客户端工具包Starter设计一文中,我们实现了基础的Starter包,里面提供了我们自己定义的Servlet过滤器和拦截器,其中Servlet过滤器叫做,仅提供了提取,创建Span和开启Span的基础功能,所以本文将围绕如何增强Servlet过滤器展开讨论。相关版本依赖如下。0.33.04.1.01.8.1Springboot2.7.6github本文在4. 分布式链路追踪客户端工具包Starter设计的基础上,使用替换了我们自己实现的,并且基于和装饰器进行了扩展增强。原创 2024-05-09 14:59:23 · 375 阅读 · 0 评论 -
4. 分布式链路追踪客户端工具包Starter设计
本文将从零搭建分布式链路追踪客户端工具包的Starter,并将在后续文章中逐步丰富支持的场景。这里首先将搭建一个最基础的Starter,能提供的功能和1. 看完这篇文章我奶奶都懂Opentracing了一文中的示例demo类似。相关版本依赖如下。0.33.04.1.01.8.1Springboot2.7.6github在本文,首先实现了一个基础的Starter包,为分布式链路追踪提供了Servlet过滤器和拦截器,其次实现了一个demo,后续分布式链路追踪Starter的功能,将用该demo。原创 2024-05-09 14:58:21 · 475 阅读 · 0 评论 -
3. 分布式链路追踪的链路日志设计
分布式链路追踪的客户端实现中,我们会通过各种手段和规则得到一个又一个的Span,得到这些Span后,需要在分布式链路追踪的服务端这边汇总这些Span并拼接出一条请求链路,那么这里就存在一个问题,客户端得到的Span如何给到服务端,通常是会在每个Span调用finish()方法时将Span发送给服务端,这里的发送有多种形式,例如把Span主动的push到Kafka的Topic,还例如把Span当作一条日志打印出来再由Filebeat采集,我们的本系列文章中,就选择将Span以链路日志。原创 2024-05-08 10:53:24 · 736 阅读 · 0 评论 -
看完这篇文章我奶奶都懂Opentracing了 (三)
三. 扩展点分析通过前面的分析我们了解到,对分布式链路追踪中的各种概念进行了统一的定义,某种程度上,已经成为分布式链路追踪的规范。在语言中,定义了诸如和等概念对应的接口,不同的分布式链路实现方需要结合具体的实现方案来提供相应实现,例如本文选择的,其提供的实现了接口,实现了接口等。现在接口定义已经有了,具体的实现也有了,该怎么用起来呢。在本文的示例中,具体的使用案例就是我们提供的拦截器,以及过滤器,那么问题就来了,为什么我知道可以这么用,是因为我比较聪明吗,那必然不是,当然是。原创 2024-05-07 20:41:55 · 497 阅读 · 0 评论 -
看完这篇文章我奶奶都懂Opentracing了 (二)
二. 概念分析。原创 2024-05-07 20:41:18 · 648 阅读 · 0 评论 -
2. 外婆都称赞的基于Jaeger的Span模型改造
我们的目标是基于Jaeger来实现分布式链路追踪的Java客户端工具包,实际就是一个Springboot的Starter,在1. 看完这篇文章我奶奶都懂Opentracing了一文中我们详细的学习了一下的相关概念以及阅读了相关的源码,同时特别重要的是我们还知道了为我们造了很多轮子,这些轮子大部分时候都是可以直接用的,我们只需要指定具体的实现框架例如Jaeger和提供相应的扩展点例如Span装饰器,我们就能够造出来我们自己的轮子。那么毫无疑问的,我们的分布式链路追踪的Java客户端工具包,会按照规范并使用。原创 2024-05-08 10:50:19 · 977 阅读 · 0 评论 -
看完这篇文章我奶奶都懂Opentracing了(一)
如果要基于开发分布式链路追踪Java客户端工具包,首先肯定需要了解中的各种概念,包括但不限于Span和Scope等,其实这些概念在的官方文档中是有比较详尽的说明的,英文不好也能靠着机器翻译读得通,但是读得通不代表读得懂,从来没有接触过分布式链路追踪的人就算把官方文档通读完,整体的概念还是显得比较抽象,所以本文作为入门,旨在让从来没接触过分布式链路追踪的人也能理解中的各种概念,为后续阅读相关源码和自行实现分布式链路追踪客户端工具包打好基础。本文会从一个简单的例子入手,结合相关场景和源码实现,阐述中的。原创 2024-05-07 20:40:23 · 857 阅读 · 0 评论