自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 探讨生产环境下缓存雪崩的几种场景及解决方案

缓存我们经常使用,但是有时候我们却会忽略缓存中的一些问题。我们将从生产环境的应用的角度,去考虑需要注意的一些异常情况,特别的是在高并发的场景下,如何让我们的缓存在提供高性能支持的同时,去保证数据的准确性,还有系统的稳定性。

2022-05-13 22:25:41 299

原创 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(下)

上篇文章,我们介绍了ZooKeeper集群保证数据一致性和Zookeeper集群Leader选举,这边文章我们接着介绍ZAB协议和Paxos算法

2022-06-03 23:49:38 325 2

原创 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(上)

本文将从ZooKeeper集群如何保证一致性,讲到zookeeper保证数据一致性的协议,然后展开讲Zookeeper集群Leader选举,包括集群三种节点的类型,ZAB协议中节点的四种状态,以及两种情况下Leader选举的过程。然后会详细展开讲解ZAB协议,包括ZAB协议中ZXID的结构,ZAB协议的两个重点,崩溃恢复模式和消息广播模式。然后会通过一个例子来说明ZAB协议中Leader的单点问题,进而引出Paxos算法。文章会分为上下两个篇章,本文为第一部分。

2022-05-28 19:58:57 335 1

原创 一文彻底弄清楚分布式锁

关于实现强一致性的手段,可以使用多种方式来进行实现,有**分布式事务**,有**一致性算法**,还有**分布式锁**等等,那么这篇文章我们就围绕分布式锁这个话题来进行展开,首先,我们会先探究它的原理,然后结合实际应用,对目前较为常见的分布式锁实现方式及注意事项进行详细的分析。

2022-05-18 20:10:46 398 2

原创 负载均衡导学

负载均衡负载均衡(Load Balancing,简称LB),用于在计算机集群、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到资源使用最优化、吞吐率最大化、响应时间最小化,同时避免过载的目的。通常由专用软件或硬件来完成。在分布式系统中,负载均衡组件通常位于客户端和服务端中间,它接收客户端请求并使用特定算法将流量分发到服务端不同节点,以降低单个节点的负载;同时,它可以跟踪和记录资源的状态,如果一个集群中的某个节点响应变慢或者出错率上升,负载均衡组件可以暂停将请求分发到该节点;综上,负载均衡组件可以

2020-10-27 22:53:25 222 1

原创 Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了,赶紧收藏起来

OpenSSL和keytool先说一下两个重要的工具OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。它使用标准的文件格式(PEM/CER/CRT/PKCS等)存储密钥和证书信息。keytool:是密钥和证书管理工具。它出自于Java体系,它使用KeyStore来管理密钥和证书。两者都是可以用来生成加密密钥的工具,keytool出自Java体系,它可以直接操作KeyStore,而OpenSSL不支持

2020-10-11 23:43:21 5063 3

原创 String、byte[]、Base64相互转换,不要再用错了

String与byte[]在Java项目开发过程中,时常会遇到String与byte[]互相转换的过程,比如IO流处理,需要先将文件或字符串转为字节流,接收方需要将字节流转回字符串。那么,在相互转换的过程中,有哪些坑需要注意呢?直接看代码@Testpublic void testStringAndByteArray() { String s1 = "hello world"; byte[] bytes1 = s1.getBytes(); // 实际调用 bytes1.to

2020-10-02 23:06:57 4799

原创 手写MyBatis分页插件,一点也不难

目标通过源码分析MyBatis允许被拦截的四大对象学习插件原理的同时手写自己的插件MyBatis插件又称拦截器(Interceptor)MyBatis使用责任链模式,通过动态代理组织多个插件(拦截器),通过插件可以改变MyBatis的默认行为(例如SQL重写或结果集重写),由于插件会深入到MyBatis的核心,因此在编写自己的插件前最好先了解下它的原理,以便写出安全高效的插件。MyBatis允许在已映射语句执行过程中的某一点进行拦截调用,默认情况下MyBatis允许使用插件来拦截的四大对象:

2020-09-27 22:57:45 482

原创 网易云音乐工程师,亲自揭晓评论实现技术(二)| 技术头条

欢迎大家回到网易云音乐评论技术探秘之旅,上一篇我们介绍了云音乐评论的业务场景和基础架构,这一篇将围绕云音乐评论的核心功能:评论发表、评论获取和评论点赞进行剖析探秘。评论发表首先我们先看上图,这是我们把评论功能抽象出来最核心的数据库表结构,为了更好地理解后文,我们先解释一下字段含义先看一下右边评论表【Comment】:id:评论记录主键resourceId:评论所属的资源contents:评论内容time:评论时间likedCount:评论被点赞次数(这里会有行锁竞争的问题需要处理)st

2020-09-20 23:51:08 679

原创 网易云音乐工程师,亲自揭晓评论实现技术!| 技术头条

​截止2019年二季度,网易云音乐用户数已经突破8亿,成为最活跃的音乐社区,位居在线音乐行业第一阵营。相信大家或多或少都使用过网易云音乐,不知道有没有人跟我一样,在云音乐听歌的时候喜欢打开评论看一看,有时发现评论比歌曲还精彩!话不多说,今天就带大家对网易云音乐评论技术进行一番探秘,其中很多场景的实现方法可以应用到大部分互联网系统。该专题分为上下两篇,本文(上篇)主要讨论以下两个主题: 了解云音乐评论的业务场景 熟悉云音乐评论的基础架构 云音乐评论的业务场景首先最常见的就是歌曲评论

2020-09-14 01:21:15 1147

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除