背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docker版本:1.13.1 k8s版本:1.9.8 使用yum install jenkins方式安装jenkins。 俺的Jenkins只部署了一台机器。 错误1 使用git branch: "$brans", credentialsId: 'platform-jenkins', u…

2020年04月08日 0条评论 1076点热度 0人点赞 阅读全文

路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中。Elasticsearch如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片1还是分片2中呢? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个公式决定的: shard = hash(routing) % number_of_primary_shards routing是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。 rout…

2019年12月04日 0条评论 681点热度 0人点赞 阅读全文

主从复制 redis主从复制特点: 一个master可以有多个slave 一个slave只能有一个master 数据流是单向的,从master到slave 配置主从 实现方式有两种: 命令方式 配置文件方式 命令方式 在从服务器上执行以下命令即可: slaveof 主服务器的IP 端口号 slaveof命令是异步的,不阻塞。 从服务器现有的数据会先被清空,然后再从主服务器同步数据 停止一台从服务器的复制操作,在此台从服务器上执行以下命令: slaveof no one 配置文件方式 只需要修改从服务器的配置 修改配…

2019年11月22日 0条评论 669点热度 0人点赞 阅读全文

如何用Zookeeper实现分布式锁? 在学习分布式锁之前,需要首先了解一下Zookeeper的[临时顺序节点]。 什么是临时顺序节点? 让我们来回顾一下Zookeeper节点的概念: Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。 Znode分为四种类型: 1.持久节点 (PERSISTENT) 默认的节点类型。创建节点的客户端与zookeeper断开连接后,该节点依旧存在 。 2.持久节点顺序节点(PERSISTENT_SEQUENTIAL) 所谓顺序节点,就是在创建节点…

2019年11月11日 0条评论 625点热度 0人点赞 阅读全文

前言:       由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。   正文:       第一步,自身的业务场景: 在我日常做的项目中,目前涉及了以下这些业务场景: 场景一: 比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而…

2019年11月11日 0条评论 602点热度 0人点赞 阅读全文

引言 为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。 文章结构 本文由以下三个部分组成 1、讲解缓存更新策略 2、对每种策略进行缺点分析 3、针对缺点给出改进方案 正文 先做一个说明,从理论上来说…

2019年10月30日 0条评论 591点热度 0人点赞 阅读全文

随着移动互联网的发展和智能终端的普及,计算机系统早就从单机独立工作过渡到多机器协作,集群按照分布式理论构建出庞大复杂的应用服务,在分布式的基础上正进行一场云原生的技术革命,彻底打破传统的开发方式,解放了新一代的生产力。 分布式系统知识体系大图 关注“阿里巴巴云原生”公众号,回复“分布”,即可下载分布式系统及其知识体系清晰大图! 基础理论 SOA 到 MSA 的进化 SOA 面向服务架构 由于业务发展到一定程度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯。面向服务的设计模…

2019年10月18日 0条评论 659点热度 0人点赞 阅读全文

当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗? 实际上,他们三个总是相伴而生,但侧重点又有不同。 什么是分布式? 分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。 该领域需要解决的问题极多,在不同的技术层面上…

2019年10月18日 0条评论 567点热度 0人点赞 阅读全文

分布式锁有很多种实现方式,下面是用redis实现的一个比较简单实用的方式。源码如下: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data…

2019年07月20日 0条评论 1745点热度 0人点赞 阅读全文

参照mongoDB的ID生成策略,生成唯一ID。 一共12个字节(示例:5cecf0a8a7573ea439fa1a89) 前4个字节表示时间戳 再往后数3个字节表示运行当前程序的机器ID 再往后2个字节表示生成此id的进程的ID 最后3个字节表示由一个随机数开始的计数器生成的值 然后转为16进制的字符串。 源码如下: import lombok.extern.slf4j.Slf4j; import java.io.Serializable; import java.net.NetworkInterface; im…

2019年07月13日 0条评论 1349点热度 0人点赞 阅读全文