- 博客(170)
- 资源 (20)
- 收藏
- 关注

原创 redis-底层实现原理
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。背景redis的快除了表面上的内存操作、单线程无竞争,其实底层不同的数据结构实现做了很大的调优;不同的操作类型也做了不同的内存优化;docker run -p 6379:6379 -v /data/redis/data:/data:rw --name ydRedis -d redis:4.0.8 redis-server --appendonly yes --prot
2022-03-20 11:00:11
13333
10

原创 IT架构师学习过程
https://github.com/Zeb-D/my-review架构师成长之路,系统性学习:哪里不会就系统性学哪里! 让我们一起 ???? ???? ????Star勉励吧各知识点目录图数据存储 不只是数据库,更多的是数据存储HBaseMySQLRedistidbSQL练习题分布式 存放了各个分布式理论知识GoLang 职业上第二门语言JavaJava设计模式 23种设计模式jdk源码分析jvmspri
2022-01-23 11:28:48
15182
1

原创 学习方法论与相关建议
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录@[toc]背景背景分析如何防止自己变笨如何提高自己学习效率费曼学习法十步学习法工作原则生活与工作准则背景学了这么专业知识,无论是业务时间,还是工作时间。如果被问下你到底学了什么,短时间靠记忆力还能勉强撮合着回答上,几个月后谁能辩雌雄?工作或业余碰到问题能知道怎么解决吗?还是坚持熟能生巧,可现实的信息杂志太多,这未免投入成本过多?生活与工作应该要如何开展?背景分
2020-08-30 14:30:16
14253

原创 Protobuf详解
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录简介Protobuf如何使用概念定义protobuf**编译protobuf**协议编码与解码grpc何时会pb编码手动本地调试协议编码**protobuf协议核心**可选的`wire type`:Varints 编码Signed Integersprotobuf协议解析走进源码编码链路解码链路简介不管什么编程语言涉及到跨进程通信有不同的通信协议,如熟知的网络通信
2020-06-21 21:20:43
19263

原创 Redis——redis能做干什么
最近阅读了《redis设计与实现》,这是一本比较枯燥的书,毕竟涉及到redis底层数据结构。我写本文章的目的,主要围绕redis设计与实现这本书整体的一个印象,然后梳理了这本书整体思路:为什么要选择Redis:介绍Redis的使用场景与使用Redis的原因;Redis常用命令总结:包括时间复杂度总结与具体数据类型在Redis内部使用的数据结构;Redis的高级功能:包括持久化、复制、哨兵...
2018-07-23 20:32:37
35630
2
原创 WPF 使用 XmlDataProvider 提供数据
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]概述HBase作为NoSQL的一员,在性能上不如memcached和redis,但是持久化存储方面比内存NoSQL强。作为文档型NoSQL在分布式存储上比mongo做sharding和MapReduce分析方便多。HBase是一个分布式存储、数据库...
2021-03-06 01:00:57
14006
1
原创 Write-Ahead-Log-File-Format
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]OverviewWrite ahead log (WAL) serializes memtable operations to persistent medium as log files. In the event of a failure, WA...
2021-02-04 03:07:17
13497
原创 架构师的感悟--过度忙碌使你落后
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]“提出问题”难于“解决问题”作为技术人员,我们已经习惯于作为问题的解决者给出设计方案,而很少以问题提出者的身份去思考设计方案。团队中常见的典型矛盾,就是产品团队和研发团队之间的矛盾。作为研发团队,我们常吐槽产品团队的需求不合理、不懂技术等。其实我们可...
2021-02-04 02:56:45
13573
原创 tidb数据库隔离级别剖析
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]前言在线应用业务中,数据库是一个非常重要的组成部分,特别是现在的微服务架构为了获得水平扩展能力,我们倾向于将状态都存储在数据库中,这要求数据库能够正确、高性能处理请求,但这是一个几乎不可能达到的要求,所以数据库的设计者们定义了隔离级别这一个概念,在高...
2021-02-04 02:56:45
13618
原创 ToB 服务的交付能力优化
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]ToB 服务交付的方式分为公有云部署和私有化部署两种。其中,对成本敏感的中小企业往往采用公有云部署的方式,从而尽量减少成本。客单价较高的大型企业、政府、银行和事业单位,考虑到数据隐私、安全、合规等要求,往往采用私有化部署的方式。基于对公司营收的巨大贡献...
2021-02-04 02:56:45
13636
原创 自我成长与团队管理——一些总结
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。文章目录@[toc]背景自身成长学好技术学好英语团队成长团队建设团队文化建设背景最近身边的同事私下向我交流心声,在学习方面,如没时间学习、不知道怎么找资源学习、不知道怎么学习、平时接触的技术能力没锻炼、以前掌握的技术变成不熟悉了;在工作方面,如经常性开会,方案一直评审没时间专心敲代码;业务方面相似度高如就是一些CRUD;跨部门协同效率低;协调各方面的资源很累,如何提高
2020-07-19 16:40:38
19547
原创 排查问题流程
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]也有同事经常反馈遇到一些棘手的问题不知道怎么去排查,排查问题的思路很重要,希望自己遇到问题时,也能够从容、高效地定位到根因。因此,我就与你说说我在应急排错方面积累的心得。这都是我多年自己总结出来的,希望对你有所帮助。当然了,也希望和大家一起说说自己平时...
2020-07-19 10:38:25
14188
原创 09-Job与CronJob
[toc]Deployment、StatefulSet,以及 DaemonSet 这三个编排概念。你有没有发现它们的共同之处呢?实际上,它们主要编排的对象,都是“在线业务”,即:Long Running Task(长作业)。比如,我在前面举例时常用的 Nginx、Tomcat,以及 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running 状态。但...
2020-07-15 06:39:27
13548
原创 04-kubernetes搭建
[toc]kubeadm 一键部署在理解了容器技术之后,为什么不用容器部署 Kubernetes 呢?这样,我只要给每个 Kubernetes 组件做一个容器镜像,然后在每台宿主机上用 docker run 指令启动这些组件容器,部署不就完成了吗?事实上,在 Kubernetes 早期的部署脚本里,确实有一个脚本就是用 Docker 部署 Kubernetes 项目的,这个脚本相比于 S...
2020-07-15 06:39:27
13589
原创 10-声明式API
[toc]命令式命令行操作很多 Kubernetes 的 API 对象,有的是用来描述应用,有的则是为应用提供各种各样的服务。但是,无一例外地,为了使用这些 API 对象提供的能力,你都需要编写一个对应的 YAML 文件交给 Kubernetes。这个 YAML 文件,正是 Kubernetes 声明式 API 所必须具备的一个要素。不过,是不是只要用 YAML 文件代替了命令行操作,就是...
2020-07-15 06:39:27
14771
2
原创 05-深入解析pod
[toc]Pod的由来在学习和使用 Kubernetes 项目的过程中,已经不止一次地想要问这样一个问题:为什么我们会需要 Pod?“Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统”这样的“三句箴言”可以朗朗上口了,为什么 Kubernetes 项目又突然搞出一个 Pod 来呢?容器的本质到底是什么?容器的本质是进程。容器,就是未来云计算系统中的进程;容器...
2020-07-15 06:39:27
13578
原创 12-Operator工作原理
[toc]Kubernetes 项目中的大部分编排对象(比如 Deployment、StatefulSet、DaemonSet,以及 Job),“有状态应用”的管理方法, Kubernetes 添加自定义 API 对象和编写自定义控制器。可能你已经感觉到,在 Kubernetes 中,管理“有状态应用”是一个比较复杂的过程,尤其是编写 Pod 模板的时候,总有一种“在 YAML 文件里编程序...
2020-07-15 06:39:27
13988
原创 07-深入理解StatefulSet
[toc]背景Deployment 实际上并不足以覆盖所有的应用编排问题。造成这个问题的根本原因,在于 Deployment 对应用做了一个简单化假设。它认为,一个应用的所有 Pod,是完全一样的。所以,它们互相之间没有顺序,也无所谓运行在哪台宿主机上。需要的时候,Deployment 就可以通过 Pod 模板创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 ...
2020-07-15 06:39:27
13692
原创 06-kuberneter控制器模式
[toc]编排概念Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。说得更形象些,“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装...
2020-07-15 06:39:27
13634
原创 kubernetes--核心概念介绍
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]云计算、容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家、软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协作、部署应用并提升你对雇主的价值。本文将会覆盖到一...
2020-07-15 06:39:27
13579
原创 08-DaemonSet
[toc]StatefulSet 其实就是对现有典型运维业务的容器化抽象。也就是说,你一定有方法在不使用 Kubernetes、甚至不使用容器的情况下,自己 DIY 一个类似的方案出来。但是,一旦涉及到升级、版本管理等更工程化的能力,Kubernetes 的好处,才会更加凸现。比如,如何对 StatefulSet 进行“滚动更新”(rolling update)?很简单。你只要修改 Sta...
2020-07-15 06:39:27
13558
原创 13-PV与PVC
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[toc]容器化一个应用比较麻烦的地方,莫过于对其“状态”的管理。而最常见的“状态”,又莫过于存储状态了。Kubernetes 项目处理容器持久化存储的核心原理StatefulSet 管理存储状态的文章,里面有说到过的Persistent Volume(PV...
2020-07-15 06:39:27
13524
原创 JVM之new对象和定位对象
在Java虚拟机中如何创建一个对象,如何定位到一个对象地址后使用。我们直接来说说,Hello hello = new Hello(),这句话在JVM发生了什么?在我们深入这个话题前,请仔细理解JVM的内存区域:class符号引用、分配内存、同步处理、初始化、初始化对象头、对象的访问定位。...
2020-07-15 06:39:27
13092
原创 11-RBAC基于角色的权限控制
[toc]控制器模式看起来好像也不难嘛,我能不能自己写一个编排对象呢?答案当然是可以的。而且,这才是 Kubernetes 项目最具吸引力的地方。在互联网级别的大规模集群里,Kubernetes 内置的编排对象,很难做到完全满足所有需求。所以,很多实际的容器化工作,都会要求你设计一个自己的编排对象,实现自己的控制器模式。而在 Kubernetes 项目里,我们可以基于插件机制来完成这些工...
2020-07-15 06:39:27
13484
2
原创 JVM之内存布局与对象大小
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。Java对象内存布局[TOC]在Java中基本数据类型的大小,例如int类型占4个字节、long类型占8个字节,那么Integer对象和Long对象会占用多少内存呢?本文结合JVM相关的书籍以及网上的大神,从基本数据类型到对应的包装类型、再到引用类型,也...
2020-07-15 06:39:27
13449
原创 核心原理--golang-runtime
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]为什么去了解Runtime?解决疑难杂症&&优化好奇心技术深度的一种运行时到底是个什么东西?Go的调度为什么说是轻量的? Go调度都发生了啥? Go的网络和锁会不会阻塞线程? 什么时候会阻塞线程?Go的对象在内存中是怎样...
2020-07-15 03:39:53
13798
原创 java-io总结
文章来源:https://github.com/Zeb-D/my-review ,请star 强力支持。按照不同的分类方式,可以将把流分为不同的类型。常用的分类有三种:按流的流向划分按操作单元划分按流的角色划分按流的流向划分,可以分为输入流和输出流输入流:将数据从外设或外村(如键盘、鼠标、文件等)传递到应用程序的称为输入流(Input Stream);输出流:将数据从应用程序传...
2020-07-15 03:39:53
13122
1
原创 03-kubernetes的本质
一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。从这个结构中我们不难看出,一个正在运行的 Linux 容器,其实可以被“一分为二”地看待:一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs,这一部分我们称为“容器镜像”(Container Image),是容器的静态视...
2020-06-14 15:42:15
13464
原创 02-容器的基础
[toc]容器本身没有价值,有价值的是“容器编排”。进程容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是 PaaS 最理想的状态嘛。不过,这两个能力说起来简单,但要用技术手段去实现它们,可能大多数人就无从下手了。由于计算机只认识 0...
2020-06-14 15:42:15
13628
原创 01-容器兴起的缘由
就在对开源 PaaS 项目落地的不断尝试中,这个领域的从业者们发现了 PaaS 中最为棘手也最亟待解决的一个问题:究竟如何给应用打包?遗憾的是,无论是 Cloud Foundry、OpenShift,还是 Clodify,面对这个问题都没能给出一个完美的答案,反而在竞争中走向了碎片化的歧途。而就在这时,一个并不引人瞩目的 PaaS 创业公司 dotCloud,却选择了开源自家的一个容器项目 Do...
2020-06-14 15:42:15
13506
原创 00-怎么实现容器技术的提问
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]我与容器打交道的这些年,一直在与关注容器生态的工程师们交流,并经常探讨容器在落地过程中遇到的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:为什么容器里只能跑“一个进程”?为什么我原先一直在用的某个 JVM 参数,在容器里就不好使...
2020-06-14 15:42:15
13278
原创 grpc 超时传递原理
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]引子有个业务方反馈说日志中偶尔出现 xorm 抛出来的“context deadline exceeded”的报错,想咨询下是什么原因。业务方实现的 gRPC Handler 大概代码如下:func (s Svc) BizHandler(ctx c...
2020-04-23 14:08:49
13888
原创 redis-4.0引进多线程
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]Redis 4.0+引进多线程模型为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。...
2020-02-17 07:28:55
13471
1
原创 Unsafe应用详解
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]背景平时在啃并发库会发现一些底层的影子,虽然J.U.C并发库 各个类有不同的逻辑,但具体行为支持还是得靠sun.misc.Unsafe,这个类威力无穷;Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直...
2020-02-17 07:28:55
13418
原创 alibaba-interview
各大IT社区精选阿里面经(附回答)面试必看阿里面试经历及总结(数据研发、Java研发方向)记2017.3.21阿里面试经历,java方向阿里面试经历JAVA总结阿里面试回来,想和Java程序员谈一谈一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”云栖社区系列文章:如何拿到阿里技术offer如何拿到阿里技术offer:从《我为什么来到支付宝》体味阿里社会招聘...
2019-12-07 15:38:26
13101
原创 Java代码与计算机内核
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]本文导读肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好...
2019-11-23 14:18:52
13233
原创 操作系统的内核态和用户态
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及...
2019-11-23 14:18:52
13509
原创 原理分析--TCP粘包与拆包
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]一、TCP粘包、拆包背景假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到字节数是不确定的,故可能存在以下四种情况:服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包服务端一次接受到了两个数据包,D1和D...
2019-11-04 03:32:21
13164
原创 原理分析--TCP大传输下延迟分析
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]背景在多个数据中心避免不了交互,如全量数据同步等类似涉及到网络传输的问题。简单点,各个服务端点进行不同大小数据包传输,按理说数据包大小与时间成线性相关(已排除业务层处理能力);前言本文希望解析清楚,当我们在代码中写下 socket.setSendB...
2019-11-04 03:26:08
14951
原创 go的初步了解
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]一、 Go语言的特点Go语言跟其他的语言例如Java比起来,算得上一门很年轻的语言。Go语言是由Robert Griesemer、Rob Pike和Ken Thompson于2007年在Google开发。并于2009年正式发布。Go语言的设计理念围...
2019-11-04 03:26:08
13098
MySQL技术内幕(第4版).pdf
2017-10-11
HTTP权威指南高清中文版.pdf
2017-09-30
Redis实战-带目录完整版.pdf
2017-09-05
Jsp/Servlet3.0 ppt和代码
2017-06-30
Maven-hibernate4
2017-05-26
Java设计模式-详细代码
2017-05-23
maven-nexus-oss-webapp-1.7.2-bundle.rar
2017-04-27
SSH框架整合需要的Jar包
2016-08-23
数据结构-清华大学严蔚敏PPT.
2014-09-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人