自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s部署redis一主两从三哨兵

k8s部署redis一主两从三哨兵,1. 一共6个容器,1个主节点、2个从节点、3个哨兵节点。2. 编写namespace脚本,创建专门的namespace3. 编写configmap脚本,分别将主节点、从节点、哨兵的配置写在里面4. 编写secret脚本,将redis的密码保存在里面5. 编写storageClass脚本,用于自动创建磁盘资源6. 编写service脚本,1个提供redis之间的网络,1个提供哨兵之间的网络,1个对外提供服务7. 编写statefulSet脚本,1个提供redi

2022-12-17 13:51:41 2622 3

原创 k8s部署mysql一主两从

一、k8s部署mysql主从需要解决上面问题 1. 启动顺序有要求,master节点必须比slave节点先启动2. 节点挂掉了,新的pod启动必须使用原先pod的资源3. master与slave的配置不一样4. master启动之后需要设置主从授权账户,slave需要执行change master命令,以及加入主从的命令5. 希望客户账户名密码自己配置6. slave需要知道master节点的地址

2022-11-27 14:54:41 2574 3

原创 一次性搞定分布式限流————手写分布式限流框架

目录一、目标和需求分析二、初步设计三、客户端的实现1)限流器参数定义(1)限流规则定义(2)客户端配置定义2)限流器实现(1)接口定义(2)限流器的抽象实现(2)访问策略实现(3)单机限流器的实现(4)分布式限流器的实现3)分发服务器管理类实现4)限流器注册实现(1)限流器构造工厂(2)限流注册器5)注解实现四、服务器实现gitee:https://gitee.com/qiaodaimadewangcai/flood-myth一、目标和需求分析为了框架能满足当代互联网的基本需求,和使用的便利,优先实现

2021-08-16 16:27:35 751 1

原创 基于filebeat+kafka+ELK的大数据日志收集系统

目录日志收集系统简介常用的日志收集系统对比日志收集系统架构架构设计考虑可用性filebeat死掉kafka死掉logstash死掉es和hdfs正常关闭es和hdfs异常停机或不可访问logstash变慢hdfs变慢可靠性可扩展性filebeat层kafka层logstash、es、hdfs层系统监控发送速度,拥堵情况,写入速度日志大小监控异常日志监控日志收集系统简介日志收集是大数据的基石。许多公司的业务平台每天都会产生大量的日志数据。收集业务日志数据,供离线和在线的分析系统使用,正是日志收集系统的要

2021-06-04 16:33:02 1153 3

原创 记一次mysql数据库恢复,frm和ibd恢复mysql数据库

因为员工操作不当,在原本就有mysql的环境上重新安装了一次mysql导致数据丢失,但是frm和ibd文件都还在。目录一、恢复步骤概要二、实际操作1)备份文件2)安装原本版本的数据库3)创建和原本一致的库4)frm获取到原先的表结构(1)dbsake安装(2)使用dbsake读取表结构(3)回复表结构5)卸载表空间6)拷贝原本的ibd,到新的库中(1)确定新数据库的数据存放位置(2)将ibd文件复制过来7)命令恢复表空间8)完成一、恢复步骤概要1、备份frm、ibd文件2、如果mysql版本发生变化

2021-01-11 15:04:47 840

原创 SpringBoot使用grpc优雅的编译protobuf

目录一、介绍二、下载(非必要)三、idea安装protobuf插件(非必要)四、使用1、添加maven依赖2、添加maven插件3、创建定义文件4、使用maven创建对象5、直接在代码中使用一、介绍  Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单。您可以定义数据的结构化,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据。官网地址:https://developers.goo

2020-09-28 13:34:29 1407

原创 k8s二进制无坑安装——基础篇

文章目录一、准备虚拟机1、修改所有机器的主机名2、修改所有机器的ip地址和DNS(虚拟机)3、所有机器关闭selinux4、所有机器关闭防火墙5、所有机器安装环境工具二、准备虚拟机网络环境1、其中一台机器上安装bind91)安装bind92)修改bind9主配置文件3)修改bind9区域配置文件4)启动bind95)检测域名解析是否成功2、修改所有机器上的DNS指向(包括安装了bind9的机器)三、准备签发证书环境1、下载软件2、颁发自签证书1)创建certs文件夹2)创建CA证书签名请求(csr)的jso

2020-07-16 15:33:23 3507

原创 一次性搞定动态定时任务————SpringBoot定时任务动态管理通用解决方案

文章目录一、功能说明二、快速使用三、实现原理1、动态管理实现(1) 配置管理介绍(2) 使用后处理器拦截SpringBoot原本的定时任务(3) 使用ApplicationRunner初始化自定义的定时任务运行器(4) 进行动态管理2、增强接口实现(1) 增强接口(2) 代理抽象类(3) 调用链类(4) cglib动态代理实现(5) 定时任务执行器实现(6) 增强器代理逻辑一、功能说明  SpringBoot的定时任务的加强工具,实现对SpringBoot原生的定时任务进行动态管理,完全兼容原生@Sch

2020-06-02 16:03:22 5522

原创 SpringBoot源码初学者(四):单例bean实例化

ps:bean初始化相关的内容实在太多,不得已只好将其分成上下两篇来讲上篇:主要讲解BeanFactory的相关内容,包括后置处理器的相关内容下篇:主要讲解Bean的实例化此篇为下篇,各位看客最好先去读一下上篇再来看,不然有可能很迷糊系列文章链接:《SpringBoot源码初学者(一):SpringBoot功能扩展接口的使用与源码分析》《SpringBoot源码初学者(二):SpringBoot事件监听器》《SpringBoot源码初学者(三):真·用SpringBoot“new”女朋友的九

2020-05-25 16:35:41 1675 5

原创 服务链路追踪-Sleuth :解决分布式部署下最头疼的溯源问题

文章目录一、服务调用链追踪二、核心功能和体系架构1、核心功能2、设计理念3、数据埋点4、Sleuth与Log系统集成原理1)Log Format Pattern2)MDC5、Sleuth数据结构1)Annotation标记2)服务节点间的ID传递三、整合Sleuth追踪调用链路1、创建Sleuth项目1)创建一个模块命名为sleuth-traceA,修改pom文件2)修改启动文件3)创建配置文件4)在resources中添加日志配置文件logback-spring.xml5)编写controller6)创建

2020-05-09 15:44:17 1351

原创 消息驱动-消息整合利器SpringCloud Stream

文章目录一、初识Stream1、Steam名词说明2、Stream体系架构(1)Input通道(2)Output通道(3)Binder(4)目的地绑定3、消费组和消息分区(1)消费组(2)消费分区二、Stream实战1、Stream急速实战Demo(1)创建一个模块,叫做stream-sample,修改pom文件(2)修改main方法(3)创建配置文件(4)创建业务类2、消费组实现Demo(1)自...

2020-04-20 15:21:56 686

原创 SpringBoot源码初学者(三):真·用SpringBoot“new”女朋友的九种姿势与BeanFactory的解析

ps:bean初始化相关的内容实在太多,不得已只好将其分成上下两篇来讲上篇:主要讲解BeanFactory的相关内容,包括后置处理器的相关内容下篇:主要讲解Bean的实例化系列文章链接:《SpringBoot源码初学者(一):SpringBoot功能扩展接口的使用与源码分析》《SpringBoot源码初学者(二):SpringBoot事件监听器》目录一、啥子是Bean???1、be...

2020-04-14 21:33:12 867 6

原创 分布式配置中心-Config

文章目录一、常规的配置设置方式1、传统配置管理的缺点二、分布式配置中心——Config1、Config的配置文件命名规则2、config小demo(1)前期准备1)创建一个git项目2)在git上创建配置文件(2)服务端代码1)创建一个config-server(配置中心的服务模块)模块,修改配置文件2)修改配置文件3)创建配置文件application.yml4)运行模块进行测试(3)客户端代码...

2020-04-03 09:41:10 857

原创 服务容错-Hystrix与聚合服务信息-Turbine

文章目录一、服务雪崩、降级与熔断1、服务雪崩2、服务降级与熔断二、Hystrix1、Hystrix工作原理三、Hystrix服务降级1、服务降级常用方案(1)静默处理(2)默认值(3)缓存异常(4)切换备库(5)重试(6)人工干预2、服务降级 Fallback降级小demo(1)创建hystrix-fallback模块,修改pom文件(2)修改启动类(3)创建fallback降级处理类1)其他模块...

2020-04-02 08:44:27 378

原创 SpringBoot源码初学者(二):SpringBoot事件监听器

ps:真正适合阅读源码的新手来看的SpringBoot源码讲解,如果你真的想读懂SpringBoot源码,可以按照以下推荐的方式来阅读文章打开ide,打开SpringBoot源码,跟着文章一起写注释,写自己的注释不要过于纠结没讲到的地方,毕竟SpringBoot源码那么多,想全讲完是不可能的,只要跟着文章认真阅读,SpringBoot是如何运行的一定可以有一个较为深刻的理解文章适合通篇阅读...

2020-03-29 22:24:34 655 2

原创 SpringBoot源码初学者(一):SpringBoot功能扩展接口的使用与源码分析

ps:  在长期的源码学习中,我一直没有找到一个讲解SpringBoot源码的文章,适合刚开始阅读源码的新手,包括我之前的写的一些文章,说实话SpringBoot的源码的确不适合新手,跳转多、结构复杂混乱,很容易迷乱其中。长时间的学习当中,也总结出这些文章的部分问题:没有说明用法,直接讲解源码,其实很多新手对SpringBoot了解不够多,还不明白怎么用,更不要想能理解源码了源码阅读跳跃...

2020-03-18 17:33:19 809 2

原创 分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)

一、接口幂等性  接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。  幂等性的核心思想:通过唯一的业务...

2020-03-06 13:49:32 1551

原创 分布式事务与数据一致性

如果不会mycat和sharding-jdbc一定要看,不然文章看不懂mycat和sharding-jdbc详解:https://blog.csdn.net/qq_34886352/article/details/104458171一、分布式全局id1、分库分表引发的id问题  在正常的单库系统下,为了效率id通常采用自增的方式,但是分库分表的情况,依旧采用这种方法,那么每张表每个库的id...

2020-03-02 11:06:55 711

原创 数据库读写分离、分库分表——mycat与shardingjdbc

文章目录一、数据切分1、垂直切分2、水平切分3、分库分表的两种模式二、使用MyCat分库分表1、系统环境2、mysql安装(1)下载mysql的yum引导(2)将文件上传到linux系统上(3)安装mysql(4)启动mysql(5)查询登录的默认密码(6)登录mysql(7)修改默认密码(8)创建用户并授权3、mycat安装(1)下载地址(2)将文件上传到linux系统上(3)解压压缩包(4)修...

2020-02-23 12:50:39 2141 1

原创 kafak快速入门到海量日志收集与日志异常警报

文章目录一、kafka环境安装二、kafka常用命令三、SpringBoot整合kafka1、添加maven依赖2、生产者配置3、生产者发送消息4、消费者配置5、生产者接收消息四、使用kafka进行海量日志收集1、海量日志收集结构2、使用log4j2日志输出(1)引入jar(2)日志配置(3)日志输出(4)MDC线程变量(sl4j的特性)3、使用filebeat日志搜集(1)安装filebeat4...

2020-02-13 18:02:42 1599

原创 分布式搜索引擎Elasticsearch——进阶

一、深度分页1、什么是深度分页  es 默认采用的分页方式是 from+ size 的形式,当from值非常大的时候,比如10000、5000,我们就称作深度分页。在深度分页的情况下,查询效率下是非常低的,比如from = 5000, size=10, es需要在各个分片上匹配排序并得到5000*10条有效数据,然后在结果集中取最后10条,如果有5个分片,那么es就需要汇总2.5w条数据,进行...

2020-01-13 15:30:26 814

原创 分布式搜索引擎Elasticsearch——基础

文章目录一、Lucene与Solr与Elasticsearch二、ES核心术语三、ES核心概念四、倒排索引五、ES的安装(centos7)1、下载地址(这里安装linux版本)2、解压压缩包3、修改配置文件(1)修改核心配置文件(2)修改JVM配置文件4、启动ES(1)添加系统用户并授权(2)ES启动(3)修改配置文件(4)再次启动ES六、安装ES-head插件(可视化管理插件)1、使用谷歌市场安...

2020-01-07 15:50:45 665

原创 redis从安装到三主三从集群

一、为什么要使用Redis1、读写的二八原则  大多数场景下用户的写操作次数远远小于读操作次数,例如:用户使用淘宝的时候,绝大部分时间是查询商品,下单购买的操作频率相对较低,将频繁读取的数据,写入到reids中,可以减少读取数据库的次数,降低数据库的负载,同时也能加快读取速度2、信息的统一管理  当系统部署多个节点的时候,每个节点的缓存数据独立管理,会导致系统之间的数据出现不一致,交互不及...

2019-12-30 11:46:21 1677 1

原创 Nginx从安装到高可用

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++(2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre-devel(3)zlib压缩和解压缩依赖yum install -y zlib...

2019-12-17 15:56:11 2477 1

原创 全网最细致的spring源码分析(七):属性注入

之前的源码阅读中,我们已经将spring创建bean的大致流程进行了了解,但大脑里依旧充满了各式各样的疑惑,这次我们更深一层去了解spring是如何进行属性注入的。 之前在说明依赖注入的时候其实提到属性注入的方法populateBean(String beanName, RootBeanDefinition mbd, @Nullable BeanWrapper ...

2019-09-09 15:08:05 889

原创 全网最细致的spring源码分析(六):spring实例化策略

上一章节,实例化过程中反复提到实例化策略,这到底是做什么的呢?事实上,在经过前面的分析,我们已经得到了足够用于实例化的所有信息,完全可以使用最简单的反射方式直接构建实例对象,但spring却不仅仅如此。 spring初始化策略主要使用SimpleInstantiationStrategy类下的instantiate(RootBeanDefinition bd, @...

2019-09-04 15:59:10 793

原创 全网最细致的spring源码分析(五):spring的带参实例化与通用实例化(autowireConstructor AND instantiateBean)

spring中实例化对象的情况,通常分为两种,一种是通用的实例化,另一种是带有参数的实例化。带参的实例化存在着不确定性,在判断对应参数上做了大量工作,同样的实例化过程也是相当复杂。一、autowireConstructor autowireConstructor方法在ConstructorResolver类中,老规矩说明一下入参和返回值。public...

2019-09-03 17:26:55 1223 1

原创 设计模式思维智慧的结晶(一):导论

一、什么是设计模式 这里引用克里斯托弗·亚历山大( Christopher Alexander)的一句话:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动“ 虽然克里斯托弗·亚历山大是一个建筑领域的专家,但这句话也能很完美的阐释设计模式的特点:解决重复问题、减少重复劳动,是一...

2019-07-16 14:25:12 328

原创 全网最细致的spring源码分析(四):spring创建一个bean对象的逻辑和源码解析

spring最为基础也是极为重要的一个元素单位便是bean,bean由开发者编写的普通java类经过spring按照开发者指定的规则生成而来,作为pojo的替代对象进行使用,之前的学习中已经知道spring通过doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Objec...

2019-07-01 16:29:51 416

原创 SpringSecurity入门到源码分析(二):自定义用户信息获取方式和密码加密

之前我们一起学习了如何使用SpringSecurity搭建出一个有权限限制和登录认证的系统,但是这个系统实在是太low了,不仅满足不了我们的使用场景的实际需求,更是无法“软件工程师”和“程序员”的区别,不!那种级别的代码只能被称为“码畜”,提高逼格刻不容缓。一、UserDetailsService 我们自定义获取用户信息的时候就需要实现这个接口,他只需要...

2019-06-27 14:46:27 931

原创 SpringSecurity入门到源码分析(一):项目搭建与基本原理

最近工作中用到了SpringSecurity来做SSO登录,之前一直用的是shiro+cas的方式做SSO登录,学习过程中也是遇到了不少的坑,写点东西记录学到的知识,也做个知识分享。一、SpringSecurity简介 SpringSecurity基于Spring框架,提供一套web安全性的解决方案。主要包括用户认证和用户授权两个方面:用户认证就是我们常说的...

2019-05-24 16:58:51 949

原创 全网最细致的spring源码分析(三):spring中的循环依赖问题与解决方法

一、什么是循环依赖 循环依赖就是在多个bean中,相互持有对方,导致在创建的时候无法加载。不如:beanA引用了beanB,beanB又应用了beanC,beanC最后又引用回了beanA,成了一个无限的循环。循环依赖是对象与对象之间才会发生的,而方法之间的相互调用的情况,叫做循环调用,此招无解最终会因为方法之间调用过多导致内存溢出。在代码中表现大概就是如下的情况:...

2019-03-28 16:32:10 2334 1

原创 全网最细致的spring源码分析(二):spring在创建bean对象的之前的骚操作

一、回顾 上回说到Spring在获取单例Bean的时候,有一种情况会调用ObjectFactory下的createBean方法创建bean。 当然不可能指望在一个方法中就完成创建bean的复杂逻辑,而且跟踪如此之多的spring代码,多多少少也能发现一些规律,一层套一层的验证判断、各种类之间的协作,直到出现一个以do开头的方法来真正的完成工作,其他的方法只是在做...

2019-03-28 11:25:55 1260 1

原创 全网最细致的spring源码分析(一):spring是如何获取到单例bean对象

由于bean对象的产生和获取过去繁琐,所有将bean的获取和产生分成两部分来讲,这里我们只讨论spring是如何获取到单例bean对象的。spring在缓存中获取单例bean的逻辑用于储存bean的四种不同的map: singletonObjects:用于保存BeanName和创建bean实例之间的关系,beanname->beaninstance。 ...

2019-03-07 17:03:32 1412

原创 一站式学习数据结构:B树

相关代码下载:https://github.com/guoyixing/datastructure一、为什么有二叉搜索树还需要b树        本质上二叉搜索树和b树都是为了快速的搜寻数据而存在,那么b树与Avl等其他搜索树有什么区别,或者说有什么优势?        这个问题还需要从现在的数据库规模和内存容量说起,随着互联网的高速发展,今天典型的数据集都需要以TB单位度量,数据库规...

2018-12-06 16:17:06 379

原创 大数据(三十二):kafka消费过程

一、kafka在zookeeper中的存储结构producer不在zk中注册,消费者在zk中注册。 二、kafka消费过程分析kafka提供了两套consumer API:高级Consumer Api和低级Api1.高级Api 优点: 编写简单,不需要自行管理offset,系统通过zookeeper自行管理 不需要管理分区,副本等情况,系统自...

2018-11-20 15:42:20 1037

原创 大数据(三十一):kafka命令行操作和生产者写入流程

一、命令行操作1.查看当前服务器中的所有topicbin/kafka-topics.sh --zookeeper localhost:2181 --list2.创建topicbin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 3 --partitions 1 --topic f...

2018-11-14 16:54:15 8497

原创 大数据(三十):zookeeper集群与kafka集群部署

一、安装Zookeeper1.集群规划在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。2.解压安装       1.解压zookeeper安装包到/usr/local/目录下tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/       2.在/usr/local/zookeepe...

2018-11-13 16:45:01 342

原创 大数据(二十九):kafka简介、架构、原理

一、kafka是什么在流式计算中,kafka一般用来缓存数据,storm通过消费kafka的数据进行计算。1.Apache kafka是一个开源的消息系统,由scala写成,是由Apache软件基金会开发的一个开源消息系统项目。2.kafka最初始由Linkedin公司开发,并于2011年初开源。2012年10月从Apache incubator毕业。该项目的目标是为处理实时数据提供一...

2018-11-13 11:26:18 392

原创 大数据(二十八):Sqoop命令&参数

一、import        将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。1.命令:bin/sqoop import \--connect jdbc:mysql://linux01:3306/company \--username root \--password root \--tab...

2018-10-22 17:20:10 257

空空如也

空空如也

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

TA关注的人

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