自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jacksonary的博客

小白代码备忘录——一个带着点儿伪文青气质的偏执狂

  • 博客(185)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 新博客地址

个人博客迁移: https://jacksonary.github.io/

2021-12-01 21:39:36 389

原创 InnoDB存储引擎

InnoDB存储引擎文章目录InnoDB存储引擎1. MySQL 逻辑架构2. 物理存储3. InnoDB 的结构3.1 InnoDB的内存结构3.1.1 Buffer Pool3.1.2 Change Buffer3.1.3 adaptive hash index3.1.4 log buffer3.2 InnoDB 的磁盘结构3.2.1 表Table关于锁共享锁和排他锁意向锁record lockgap locknext-key lock关于 MySQL 中指定属性宽度关于索引3. InnoDB 的排序

2021-04-23 21:00:15 396

原创 主备延迟监控

主备延迟的模拟文章目录主备延迟的模拟1. 基本工具的安装1.1 安装 percona-toolkit1.2 安装 sysbench2. 搭建延迟监控1. 基本工具的安装1.1 安装 percona-toolkit 这玩意儿工具挺全,有时间可以深入了解一下,我的系统是 debian,流程如下:# 下载软件包wget https://downloads.percona.com/downloads/percona-toolkit/3.3.0/binary/debian/buster/x86_64/pe

2021-04-22 21:03:37 1772

原创 Docker 部署 MySQL 主备架构

Docker 部署 MySQL 主备架构 部署 master 和 slave,可以顺次扩展 slave,流程如下:# 部署 masterdocker run --name mysql-master --privileged=true -v D:\tmp\docker\mysql\master\data:/var/lib/mysql -v D:\tmp\docker\mysql\master\conf\my.cnf:/etc/mysql/my.cnf -v D:\tmp\docker\mysql\mas

2021-04-20 19:27:18 450

原创 主备复制

主备复制文章目录主备复制1. 主备复制的基础-二进制日志1.1 row-based 日志(基于行的日志)1.2 statement-based 日志(基于语句的日志)1.3 mixed 日志2. 主备同步2.1 同步过程2.2 主备拓扑结构2.2.1 一主多备2.2.2 主主复制(双主/双向复制)主动双主被动双主带备双主2.2.3 环形复制2.2.4 多主一备2.2.5 树形(金字塔型)2.3 主备复制方式2.3.1 异步复制2.3.2 半同步复制2.3.3 全同步复制2.4 主备架构中存在的问题2.4.

2021-04-19 20:59:35 338 1

原创 spring 中的模块装配

文章目录1. 自定义装配模块的注解 @EnableXxx2. 指明需要装配哪些配置3. 提供2中需要导入的配置类 Spring 中一直有类似于 @EnbaleXxx 这样注解一键开启 xxx 功能的支持,甚至连配置都不需要就可以使用,对于接入方来说实在是太爽了。最近在写内部中间件就接触到模块装配的知识点,因为对写过中间件的同学都明白,中间件有2点很重要:1.对于业务领域的高度抽象;2. 让接入方爽!重点来了,怎么让对方爽?说白一点,你把业务方的公用的、但又不属于中间件抽象出来的领域行为通过SDK封装好,让

2021-02-26 20:49:19 284

原创 SpringBoot集成Prometheus

SpringBoot集成prometheus:添加依赖: <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> ...

2020-05-08 11:56:12 807

原创 hystrix配置说明

文章目录1. Command 属性相关属性1.1 execution相关配置1.2 fallback相关配置(控制运行 hystrixCommand.getFallback() 方法)1.3 断路器 circuit breaker 相关1.4 指标 metrics 相关1.5 请求上下文 HystrixRequestContext 相关2. 请求合并 request collapser 相关属性...

2020-03-30 19:54:11 1448

原创 FeignClient问题记录

1. 主要依赖 XXXClient主要依赖的是openfeign:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <versi...

2020-03-23 15:32:02 648

原创 关于Docker的挂载

 底层原理不懂就上手,上手出了问题就懵逼,最近在对接阿里云时遇到Docker存储驱动的神坑,爬了几天爬不出来,最后发现是节点中Docker存储驱动的问题,由此引发此次学习,避免类似问题再次懵逼。文章目录1. Volumes(最推荐的挂载方式)2. Bind mounts3. tmpfs mounts4. named pipes5.关于语法5.1 -v/--volume5.2 --mount 关...

2020-01-09 19:37:17 1083

原创 ES学习记录17——关于评分

 ES评分这一块主要依靠function_score,它可以改变查询返回文档的分数。通常计算得分代价比较大,它可以对已经过滤的文档进行评分。function_score中需要定义一个 query 以及一个或多个计算查询的得到文档得分的函数。只有一个计算得分函数的示例如下:GET localhost:9200/index-name/_search?pretty{ "query": { ...

2019-12-18 20:54:41 792

原创 分布式锁-Redisson

 前段时间在kubernetes中做多副本部署时,发现有些服务中存在定时任务,这样一来不同副本都会执行这些定时任务,导致任务重复执行,然后找了一下决定使用 Redisson 来做这个,其实现在来看分布式时锁相对容易多了,就是在同一时刻去获取一把锁,拿到这把锁就可以进行操作,拿不到就不能操作,这里 Redisson 是利用在 Redis 存放一个 Key (其实是setNX)来做这个工作。当然定时任...

2019-12-17 19:53:30 415

原创 Kafka学习记录

基础环境搭建(参照官网)好了之后直接搞,kafka的配置文件server.properties详细说明戳我。下面的Demo都是基于win10搭建出来的基础环境。1. 基本概念 Kafka是一个分布式流处理平台,注意它是使用流来处理数据的(核心特征之一),最终是为了能够进行实时的流处理。它是一个集群,通过 topic 对其中存储的数据进行分类,每条记录包含一个 key、一个value、一个时间戳...

2019-12-13 10:50:28 189

原创 Redis中的Lua脚本

最近琢磨分布式锁时接触到的知识点,简单记一下。1. Redis中的Lua Redis支持Lua,代码直接发送完整脚本即可。基本语法(redis客户端可以直接执行):> eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second1) "key1"2) "key2"3) "first"4) "...

2019-12-10 16:34:05 899

原创 java中几种锁

文章内容来自并发编程网的文章阅读,部分示例代码已修改。文章目录1. 自旋锁1.1 常见3类自旋锁2. 阻塞锁3. 可重入锁1. 自旋锁 自旋锁就是它的名字一样,让当前线程不停的在一个循环体内执行,当循环的条件被其他线程改变时才能进入临界区。自旋锁的示例代码(仅以非公平锁为例)如下:public class SpinLock { /** * 临界区的owner ...

2019-11-20 19:48:41 489

原创 ES常用操作记录

1. 创建索引[PUT] -> ip:9200/index_name,请求体:{ "settings": { "analysis": { "filter": { "remote_synonym": { "type": "dynamic_synonym", "synonyms_path": "http://xxx.oss-cn-beijing.ali...

2019-09-12 18:20:26 2162

原创 利用阿里云拉取墙外镜像

利用阿里云拉取墙外镜像 K8S很多镜像都是国内无法拉取的,利用阿里的镜像仓库可以很容易拉取这些镜像,我的方式如下:1.创建存放Dockerfile的仓库 很简单,直接创建一个仓库用于存放Dockerfile的仓库,比如我的docker-ali-autobuild,经过不断摸索,建议文件结构采用如下方式(即 image-name -> version -> Dockerfile)比...

2019-07-19 19:55:45 1707

原创 Ingress学习笔记

 Ingress是管理外部网咯访问K8S集群中Service的API对象(典型就是HTTP),它可以提供负载均衡、SSL终端以及基于名字的虚拟host。简单点来说它就是外网访问集群应用的媒介,流程如下:+----------+ Ingress +---------+| internet | ---------> | Service |+----------+ ...

2019-07-05 19:43:41 18354 3

原创 k8s实用知识点总结

1. 资源配额1. 预留和限制的概念预留:即至少需要的资源,对应于requestsCpu和requestsMemory;资源限制:最大资源限制,对应于limitsCpu和limitsMemory;2. 单位的含义内存:常用的单位为MiB和Gi,和常规单位的关系如下为:1 MiB = 2^20 bytes = 1024 kibibytes = 1048576 bytes(以2为底...

2019-07-01 20:37:49 1859

原创 UML学习记录

1.基本概念2. UML中的构建模块2.1 事物2.2 关系2.3 图3. UML建模4. UML的基本操作4.1 结构事物4.2 行为事物4.3 分组事物4.4 UML关系5. UML标准图5.1 类图5.2 对象图5.3 UML组件图5.4 UML部署图5.5 UML用例图5.6 UML交互图5.7 UML状态图5.8 UML活动图...

2019-05-30 20:34:36 410

原创 java常用函数收录集

1. 获取当前月份的所有日期 /** * get all date of specified month(date format) * * @param date */ public static void printDays(Date date) { Calendar calendar = Calendar.getInst...

2019-05-16 19:08:21 307

原创 Dockerfile

1. 关于docker build docker build可以基于Dockerfile和context打包出一个镜像,其中context是一系列在PATH或URL中指定的位置中的文件(context是递归的,包含子目录下的文件,build时会将context中的全部内容传递给docker daemon)。其中PATH是指本地文件系统,URL则是git仓库的地址。比如在当前目录下创建镜像:doc...

2019-05-09 12:15:43 6748

原创 关于GraphEasy的简单捣腾

1. windows上安装GraphEasy 从asciiflow了解到这个工具,因为之前一看windows上好像并没有什么好用的工具来画ascii流程图,偶然找到在线asciiflow,越用越费劲,一顿翻,找到了GraphEasy,搞吧,发现好像安装没那么容易,各个教程都是千篇一律……关于windowns上的安装提及甚少!!对于一个敢于尝试(作死)的我,哼!妈了个巴子,就要弄你!不断摸索,终于...

2019-05-08 20:56:58 5230 1

原创 K8S中部署Helm

 K8S中的包管理工具1. 客户端Helm(即Helm) 通过脚本安装:curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > helm.sh,赋权运行:chmod +x helm.sh./helm.sh# 输出Downloading https://kubernetes-helm.storag...

2019-04-29 14:35:24 2045

翻译 3.8 控制器——Job和CronJob

3.8 Job 一个Job创建1个或多个Pod,并确保特定数量的Pod被成功终止,当pods成功完成时,Job将跟踪成功完成的操作。当达到指定数量的成功完成时,任务(即Job)就完成了,删除Job时会清理它创建的Pod。一个简单的例子是创建一个Job对象,以便可靠地运行一个pod完成。如果第一个Pod失败或删除了,Job对象将会开始一个新的Pod。还可以使用一个Job并行运行多个Pod。【Jo...

2019-04-28 13:57:11 1750

翻译 3.6 控制器——Garbage Collection(垃圾回收)和 TTL Controller

3.6 控制器——Garbage Collection(垃圾回收) K8S中的垃圾回收器和JVM的垃圾回收器有点类似,它将删除那些没有owner的对象。K8S中的某些对象是其他对象的owner(我没有想到一个合适词来翻译这个owner…),在owned的对象叫做owner的dependents(也没想好要怎么翻译),总之dependents是附属于owner存在的,每个dependent的对象都...

2019-04-27 15:43:10 680 1

翻译 3.5 控制器——DaemonSet(守护线程集)

3.5 控制器——DaemonSet(守护线程集) 每个DaemonSet可以确保某些甚至全部节点运行一个Pod的副本,当node加入集群时,Pod就会加入这些节点,同样的,当节点从集群中移除时,这些pods被垃圾回收。删除一个DaemonSet将会清理由其创建的Pod。DaemonSet典型的应用场景有:运行群集存储守护程序,比如每个节点上的glusterd和ceph;在每个节点上运行的...

2019-04-27 15:00:49 834

翻译 4. Service

4. Service k8s 中的Pod是朝生夕死的,并且是不会重生的,尤其是在ReplicaSets中动态创建或销毁Pod。然而每个Pod可以获取自己的IP地址,即使这些IP地址是不稳定的(重启等行为可能会导致IP变动),那在集群中,一些Pods怎么向其他的Pods提供可依赖的稳定服务?就像之前所说栗子,前端Pod怎么如何找到、追踪后端Pod。k8s定义了一种抽象,即Service,在集群中定...

2019-04-27 08:17:33 193

翻译 3.4 控制器——StatefulSet(状态集)

3.4 StatefulSet(状态集) statefulset是用于管理有状态应用程序的WorkloadAPI对象,管理Deployment和一组Pod,保证有序和Pod唯一性的。和Deployment类似,状态集StatefulSet基于一个相同的容器规格spec管理Pod,不同的是,状态集Statefuli为他们每个Pod保持一个粘性身份,Pod从同样的规范创建,但不可交换,每个都有一个持...

2019-04-26 18:19:51 1089

翻译 3.3 控制器——Deployments(部署)

3.3 Deployments(部署) Deployments控制器(Deployment controller,Deployment应该也是控制器的一种吧)提供了Pod和ReplicaSets的声明式更新。在Deployment对象中,可以描述对应的desired state,Deployments controller将会已可控的频率去改变实际状态变成desired state,可以定义De...

2019-04-26 09:35:09 1164

翻译 3.2 控制器——副本控制器(ReplicationController)

3.3 副本控制器(ReplicationController) ReplicationController(在kubectl命令中经常缩写为rc或rcs)是实际确保特定数量的Pod副本在任意时刻的运行。如果Pod副本超过指定数量ReplicationController就会终止超出数量的Pod,如果太少就添加Pod。和手动创建Pod不同,ReplicationController操作的Pod在...

2019-04-25 11:05:38 1501

翻译 3.1 控制器——ReplicaSet

3. 控制器(Controller)3.1 副本集(ReplicaSet)定义:副本集(ReplicaSet)的目的是为了保证一组稳定的Pod副本在任意给定时刻都在运行。因此,它通常用于保证特定数量的相同Pod的可用性。 副本集使用一些字段进行定义,这些字段包含了一个选择器(指定如何识别可以获取的pods)、一个数字(表示应该维持多少个副本)、一个Pod模板(pod template,指定了...

2019-04-24 19:54:38 990

翻译 2. Pod

2. Pod2.1 Pod中的基本概念 Pod 是K8S中的重要组成部分,也是K8S对象模型中最小、最简单的可部署对象,Pod代表集群中运行的进程,一个Pod中包含了一个或多个容器、存储资源、唯一的网络IP以及容器运行运行方式的选项(Pod中的内容总是共同定位和安排的)。一个 Pod 是一个部署单元:K8S中一个一应用程序的单个实例(这可能由单个容器或少量紧密耦合并共享资源的容器组成)。Doc...

2019-04-24 09:29:37 552

翻译 1.K8S中的对象

1. K8S 中的对象 Kubernetes 对象是持久化的实体,表示整个集群的状态,通常使用yaml文件来描述这些对象,主要用于描述下面的一些信息:哪些容器化应用在运行(以及在哪个 Node 上);可以被应用使用的资源;关于应用运行时表现的策略,比如重启策略、升级策略,以及容错策略;操作(无论是创建、修改,或者删除) Kubernetes 对象都需要使用 Kubernetes AP...

2019-04-22 18:30:38 1761

原创 Apollo安装以及K8S中部署Apollo

1. 基本环境OS:CentOS7;JDK版本1.8+(java -version);MySQL5.6.5+(SHOW VARIABLES WHERE Variable_name = 'version';);Apollo:服务端1.8+,客户端1.7+;2. Apollo2.1 必要模块 Apollo中的主要模块如下:Config Service提供配置获取、配置更新推送的...

2019-04-12 17:23:40 9244 3

原创 利用 kubeadm 简单搭建k8s(已更新为V1.13.0版本)

1. 基本系统环境1.1 系统内核查看当前系统内核(我这里是5.0.5-1.el7.elrepo.x86_64):uname -a版本必须大于等于3.10,否则需要升级内核:# ELRepo 仓库(可以先看一下 /etc/yum.repos.d/ 中是否有yum 源)rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org...

2019-04-02 16:40:04 7702

翻译 Kubernetes学习笔记1——概览

1. k8s 基本概览 Kubernetes (k8s) 是一种支持容器化应用自动部署、集群调度、灵活可扩展的开源平台,像 Docker 这类容器只是集成在 Kubernetes 中去部署容器的低级组件,除了 docker, k8s 还支持 rocket 容器技术,总的来说,它其实是一个大规模容器集群的管理平台,用于管理云平台中多主机的容器化应用,对这些应用合理编排以使得它们可以高效合作,下面是...

2019-03-25 20:03:59 261

翻译 ES学习记录12.2——短语推荐器(Phrase Suggester)

 term推荐器提供了很方便的API基于特定字符串距离去获取可选的建议词,这些API允许单独从这些流中获取标记,然而,通常需要预先选择的推荐以呈现给最终用户,phrase推荐器在term推荐器的基础上添加额外的逻辑去选择完全修正的短语而不是基于ngram-language模式的单独地修正标记,实际上这些推荐器将能够基于共生和频率选出更好的标记。 总的来说,phrase推荐器需要先前做过映射配置(...

2019-03-22 14:12:18 1852 1

翻译 ES学习记录12.1——术语推荐器(Term suggester)

 term推荐器会基于编辑的距离推荐术语(这翻译的简直丧心病狂啊,其实就是基于已输入的文本进行term的推荐),可能说联想搜索词更好理解点,term推荐器是基于Levenstein edit distance算法推荐术语的,提供的推荐文本是在术语推荐之前就被分析的。term推荐器并不会将上述请求中的查询部分考虑其中。term推荐器的常规选项有:text:表示建议文本,必选参数,可以设置为全局参...

2019-03-21 19:35:37 1022

翻译 ES学习记录12——推荐器(Suggester)

 Suggester(翻译成建议器有点绰,不过很好理解),suggest的特性通过使用建议器suggester推荐给用户正在查找的术语提供基于文本的相似术语term,当前版本的推荐术语的功能还在开发中,并不是齐全的。其实简单的说就是各个搜索引擎提供的自动补全的功能,在搜索框中输入部分搜索词时,下面就有相关推荐的搜索词,上述推荐搜索的动作就是Suggester的工作,类似于利用百度搜索时输入搜索词下...

2019-03-21 19:32:55 1778

json-2.9.4

最新的json的jar包,包含jackson-annotations-2.9.4.jar、jackson-core-2.9.4.jar、jackson-databind-2.9.4.jar

2018-03-16

cmake-3.10.1

cmake是hadoop在windows平台下运行必须的编译资源,以测可用

2018-03-11

SpringMVC教学视频--shangguigu

SpringMVC4的教学视频,包含代码和PPT,适用于初学者。

2018-03-11

Spring4教学视频

shangguigu的Spring4的教学视频,包含代码和PPT,适用于初学者。

2018-03-11

MyBatis教学视频--shangguigu

shangguigu的MyBatis的教学视频,包含代码和PPT,适用于初学者。

2018-03-11

Hibernate4教学视频--上轨谷

Hibernate4的教学视频,包含代码和PPT,适用于初学者。

2018-03-11

Springboot教学视频

SpringBoot的教学视频,包含视频中的代码,适用于初学者

2018-03-11

java设计模式

设计模式最佳选择,java语言实现--鼎鼎大名的HeadFirst,当初自己面试的资源

2017-12-21

java编程思想-第五版

面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和 更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成 清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外, 面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可 从中获益,至少表面如此。 如果说它有缺点,那就是掌握它需付出的代价。思考对象的时候,需要采用 形象思维,而不是程序化的思维。与程序化设计相比,对象的设计过程更具挑战 性——特别是在尝试创建可重复使用(可再生)的对象时。过去,那些初涉面向 对象编程领域的人都必须进行一项令人痛苦的选择:

2017-11-30

Head First设计模板中文版(未加密)

不可多得的一本关于设计模式的好书,java语言实现

2017-08-26

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

TA关注的人

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