摘要:
前言 每一次HTTP请求,数据库的事务的执行,我们追踪代码执行的过程中,需要一个唯一值和这些业务操作相关联,对于单机的系统,可以用数据库的自增ID或者时间戳加一个在本机递增值,即可实现唯一值。但在分布式,又该如何实现唯一性的ID 分布式ID的特性 数据库自增的ID Redis分布式ID Zookee 阅读全文
摘要:
前言 maven是最流行的项目构建系统,如果是java相关的开发,可以说是不可或缺的。虽然还有另外一个模块管理工具grade正在崛起, 不过多数公司常用的还是maven Maven 和 Maven的仓库 Maven 命令和构建生命周期 maven项目pom.xml格式文件详解 Maven怎么做到传递 阅读全文
摘要:
前言 java有synchronize和Lock,mysql 修改类的sql也带有锁。锁定数据状态,让数据状态在并发场景,按我们预想逻辑进行状态转移,然而在分布式,集群的情况下,怎么去锁定数据状态呢 数据库的分布式锁方案 基于redis实现分布式锁 基于zookeeper实现分布式锁 关注公众号,一 阅读全文
摘要:
前言 平时我们都会封装一些处理缓存或其他的小工具。但每个人都封装一次,重复造轮子,有点费时间。有没有一些好的工具库推荐-guava。guava是谷歌基于java封装好的开源库,它的性能、实用性,比我们自己造的轮子更好,毕竟谷歌出品,下面介绍下几个常用的guava工具类 LoadingCache(本地 阅读全文
摘要:
前言 我们常时不会见到shell脚本,但是需要阅读开发linux脚本时,这又是一项必不可少的技能。本文在于提供基础的shell编程语法和简单的实例,帮助同学快速开发,可当做shell手册使用也非常善 shell脚本的执行和模块加载 shell中的变量 位置参数和预定义变量 表达式的运算命令 表达式判 阅读全文
摘要:
前言 sed 全名为 stream editor,是用于文本处理的流编辑器,支持正则表达式。 sed处理文本时是一次处理一行内容 关注公众号,一起交流,微信搜一搜: 潜行前行 sed语法 示例:sed -i 's/原字符串/新字符串/' /home/test.txt sed命令处理的内容是模式空间中 阅读全文
摘要:
前言 AWK是一门解释型的编程语言。用于文本处理,它的名字来源于它的三位作者的姓氏:Alfred Aho, Peter Weinberger 和 Brian Kernighan awk 程序结构 运行awk文件脚本 awk基础语法 awk 程序常用的内建变量 关注公众号,一起交流,微信搜一搜: 潜行 阅读全文
摘要:
前言 上一篇架构篇:分布式理论CAP、BASE,我们了解到分布式存在的问题以及大致的解决理论,但是具体的实现协议或者方案有哪些? 分布式一致性 分布式共识算法 paoxs、Raft、zab 分布式事务一致性 分布式事务一致性的实现方案(XA模式和AT模式) 两阶段提交 三阶段提交 柔性事务TCC A 阅读全文
摘要:
前言 平时并发编程,除了维护修改共享变量的场景,有时我们也需要为每一个线程设置一个私有的变量,进行线程隔离,java提供的ThreadLocal可以帮助我们实现,而讲到ThreadLocal则不得不讲讲java的四种引用,不同的引用类型在GC时表现是不一样的,引用类型Reference有助于我们了解 阅读全文
摘要:
jdk8之前我们一直在用Date、Calender和SimpleDateFormat,但它的API不够强大,还存在线程安全问题,一直被人诟病。jdk8提供了新的时间API,在java.time包里的类是不可变且线程安全的,它和Joda是同一个作者实现的,因此借鉴了Joda很多特点,如果你用习惯Joda,可以很方便地切换到java.time类的使用 阅读全文