Yu_uuuuu
码龄7年
关注
提问 私信
  • 博客:21,798
    社区:669
    问答:4,304
    26,771
    总访问量
  • 33
    原创
  • 545,714
    排名
  • 16
    粉丝
  • 0
    铁粉

个人简介:个人博客www.yukaiji.com

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-09-11
博客简介:

Yu_uuuuu的博客

博客描述:
点点滴滴
查看详细资料
个人成就
  • 获得20次点赞
  • 内容获得6次评论
  • 获得16次收藏
创作历程
  • 1篇
    2021年
  • 11篇
    2020年
  • 10篇
    2018年
  • 11篇
    2017年
成就勋章
TA的专栏
  • 消息队列
    4篇
  • 分布式与并发
    7篇
  • JAVA基础
    11篇
  • JAVA工具类
    2篇
  • JAVA-MyBatis
    1篇
  • JAVA算法
    1篇
  • JAVA设计模式
    3篇
  • JAVA-多线程
  • Python
    1篇
  • SpringCloud
    3篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

浅谈Kakfa【一】Kafka基本概述与Partition

文章目录一、前言1.为什么引入MQ?2.哪些场景需要MQ?3.使用MQ需要注意哪些?二、Kafka概述与日志存储结构1.Kafka名词解释:2.Kafka特性:3.Kafka日志存储:3.1 Partition的数据文件3.2 数据文件的分段3.3 数据文件的索引3.4 偏移量索引3.6 时间戳索引三、结语一、前言本系列是Kafka基本知识与原理解读,不涉及源码的翻译与解释,可以全面了解Kafka的相关概念与底层实现原理。1.为什么引入MQ?(1) 解耦:将两个或多个互相强关联的系统进行解耦,
原创
发布博客 2021.01.24 ·
759 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

浅谈Zookeeper【三】ZK中Leader选举算法

文章目录一、前言二、Leader选举基本概念集群服务节点状态 State:选票模型 Vote选举网络通信管理器 QuorumCnxManager三、Leader选举触发时机四、Leader选举过程集群初始化选举Leader宕机后选举五、新节点加入与选举规则新节点加入选举规则六、选举算法FastLeaderElection解析七、总结一、前言前面已经介绍过Zookeeper的基础知识以及ZAB协议的一些概念,其中ZAB协议中关键性的发现步骤,也就是Leader选举机制是如何完成的,在这里简单介绍一下。二
原创
发布博客 2020.06.27 ·
1416 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

浅谈Zookeeper【二】ZAB协议原理

ZAB协议介绍ZAB协议(Zookeeper Atomic Broadcast)时Zk中保证数据一致性的重要协议,是基于Paxos算法单独为Zk实现的协议。ZAB协议是一种支持崩溃恢复和原子广播的协议,基于zab协议,zk实现了一种主备模式的系统架构,由单一的主进程来处理客户端的请求,并且为每个请求分配一个全局唯一单调递增的事务ID(zxid),然后由主进程将数据广播给副本进程上去。所以说zk是一个保证顺序一致性的服务。
原创
发布博客 2020.06.21 ·
605 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

浅谈Zookeeper【一】Zookeeper基础知识介绍

前言由于在实际工作中,几乎都是使用公司提供的基础服务或者采用开源的框架,很少与ZK实际打交道,对ZK的底层原理一知半解,无法将各个知识点串起来,所以打算记录下自己所了解的ZK,并且将学习回顾知识汇总。本文作为Zk系列知识的开篇,只介绍Zk的基本知识,附带提一嘴Zk的实际应用场景,不深入介绍原理。Zookeeper介绍一、什么是ZookeeperZookeeper是典型的为解决分布式一致性所带来的问题的方案组件,分布式应用可以基于zk来实现集群管理、服务注册、动态配置、负载均衡、分布式锁、发布订阅等
原创
发布博客 2020.06.20 ·
438 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式与并发【四】浅谈分布式一致性算法Raft

前言之前简单介绍过Paxos算法,并且推导了整个算法的产生,说明了实现过程,但是显而易见Paxos算法非常难理解,并且更难以实现,Raft算法的出现用来代替Paxos算法,实现更加容易,由于本人水平有限,可能文中出现错误,还请大家指出。基础概念介绍Raft是一种用于管理复制日志的一种一致性算法,它将通过一些功能将一致性的一些问题分解,从而更方便理解。一、Raft的重要功能Leader选举、日志复制(数据同步)、日志压缩(数据快照)、安全性等等二、Raft的角色Raft算法中将服务节点分为了三种
原创
发布博客 2020.06.07 ·
889 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[JAVA工具类]-大数据Excel生成导出

前言在实际工作中,经常会需要进行Excel文件的下载导出,并且有时希望通过异步下载来进行实现或者需要下载数据量很大。为防止各个系统重复造轮子,本文通过注解方式来实现Excel的普通、分片生成。依赖Jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId
原创
发布博客 2020.06.01 ·
571 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

分布式与并发【三】浅谈分布式一致性算法Paxos

一、前言说到分布式一致性算法,那么必然不可避免谈到Paxos,Paxos算法在分布式领域地位非常重要,接下来简单记录下Paxos算法的原理。由于个人水平有限,如有错误还请谅解,本文参考书籍《从Paxos到ZooKeeper》与一些网络博客。二、背景在分布式系统中,经常会发生例如网络异常、服务宕机等情况,为了解决出现问题时数据不一致而产生了Paxos算法,可以保证无论在任何情况下都不会破坏数据的一致性。Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效
原创
发布博客 2020.05.31 ·
754 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式与并发【二】浅谈分布式一致性协议2PC与3PC

前言:在分布式系统体系中,为保证数据的一致性,产生了一系列的一致性协议,其中最为著名的就是2PC和3PC协议,以及现在广泛使用的真正解决一致性的Paxos算法,本篇只讲述2PC和3PC,下一篇再介绍Paxos算法。在分布式系统中,每个子节点都能明确认知到自己处理的事务成功或者失败,但是却无法直接获取其他分布式节点的操作结果,因此当一个事务需要跨多个系统操作时,就需要一个中间方也叫做协调者来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点称之为参与者,由协调者来确定事务是否最终需要提交,基于这个思
原创
发布博客 2020.05.23 ·
665 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

分布式与并发【一】浅谈分布式ACID与CAP/BASE理论

前言由于工作中比较忙,好久没有梳理一下自身的知识体系,正好在公司OKR时规划了一下个人能力和影响力的提升,所以准备系统性回顾一下分布式相关的知识,整理成文档分享给大家。一、分布式的特点分布性: 一个分布式的系统中,所有的计算机可以任意分布在不同的地方,可能会在不同的城市和机房。对等性:分布式中的所有机器没有主从之分,并没有一个中心节点主机来控制,每个机器都是主机,都可以处理来自外部的请求,相当于一个副本的概念,当某台机器因为网络或物理原因宕机后不会对对外提供的整个服务造成影响。并发性:由于分布
原创
发布博客 2020.05.23 ·
498 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

RabbitMQ系列【三】RabbitMQ消息队列实践

RabbitMQ消息队列目前常用的有很多种,比如ActiveMQ、Kafka、RocketMQ,甚至使用Redis简单实现一个消息队列。这里主要记录一下RabbitMQ的相关知识。1、RabbitMQ的使用场景2、RabbitMQ的缺点3、RabbitMQ数据传递过程4、RabbitMQ的Exchange类型5、RabbitMQ使用实例RabbitMQ的使用场景消息队列的使用通常有三个重点:异步、削峰、解耦1、当系统耦合较高时,不利于我们维护与扩展,例如,AB两个系统都需要C系统的数据,C系统通过接口调
原创
发布博客 2020.05.23 ·
484 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RabbitMQ系列【二】RabbitMQ高可用集群搭建

RabbitMQ集群的搭建在实际使用消息队列时,可能不可能使用单点服务,这样一旦服务挂掉,那问题就大了,所以这里我通过两台CentOS7虚拟机搭建一个RabbitMQ集群。RabbitMQ集群类型普通模式:就是搭建一个多服务的普通集群,消息队列Queue只在其中一个节点上,集群中的其他服务并不存在,集群中的所有节点具有相同的队列结构,保证能够同步数据。而当我们请求落点在一台不存在Queue的机器上怎么办呢?MQ会临时从有数据的节点拉取数据然后返回给消费者。这样有一个问题,就是只有一个物理Queue在一台节
原创
发布博客 2020.05.23 ·
270 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RabbitMQ系列【一】安装Erlang与RabbitMQ

其实最好的办法就是阅读官网文档rabbitmq安装这里采用的Erlang版本为22.0.1,Mq版本为3.7.15CentOS7安装Erlang下载Erlang安装包,可以到官网去找各种版本wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm升级Erlang安装包rpm -Uvh erlang-solutions-1.0-1.noarch.rpm查看erlang版本,这时候显示的就是你将要安装的版本
原创
发布博客 2020.05.23 ·
421 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot2.0 + thymeleaf 当访问404页面的时候拦截不到请求

发布问题 2019.01.21 ·
0 回答

SpringCloud【三】基于eureka+config创建client提供服务接口

eureka服务中心搭建:https://blog.csdn.net/Yu_uuuuu/article/details/82223790config配置中心搭建:https://blog.csdn.net/Yu_uuuuu/article/details/82351266当前项目GIT:https://github.com/yukaiji/springcloud-client 之前...
原创
发布博客 2018.09.07 ·
666 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

SpringCloud【二】搭建基于Git的配置文件管理config服务

为了避免每次对配置文件的更改需要重新打包部署,SpringCloud提供了一种方式,可以通过config来进行远程管理。每次只要在git上修改配置文件信息,无需服务的重启即可做到更新。本文主要是创建一个config server微服务,并且注册到eureka服务管理中心上。eureka项目的搭建:https://blog.csdn.net/Yu_uuuuu/article/detail...
原创
发布博客 2018.09.03 ·
692 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

SpringCloud【一】搭建Eureka单点或集群服务

当一个项目想采用微服务架构时,首先想到的就是springCloud,SpringCloud可以很好的搭配docker来进行服务的提供。但是怎么来管理这些服务呢,spring目前采用的是eureka注册中心,本文将通过图文的方式来简单搭建一个eureka注册中心单点服务和集群服务。项目链接:https://github.com/yukaiji/springcloud-eureka-serve...
原创
发布博客 2018.08.30 ·
856 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Python爬虫-网贷之家P2P机构排名查询

 python采用3.X版本,依赖三方库BeautifulSoup/requests/pymysql由于最近P2P暴雷事件,写一个爬虫定时去爬取网贷之家对各个公司的排名及当前状况的分析,分为经营正常和异常的公司。将数据存储到数据库中。from bs4 import BeautifulSoupimport requestsimport pymysqlimport datetime...
原创
发布博客 2018.08.30 ·
1384 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

JAVA基础-synchronized关键字

synchronized关键字也叫作互斥锁或者同步。这个关键字的存在是为了解决编程中的线程安全问题的,而线程安全问题出现的主要原因一般为:多个线程操作同一个对象的数据,也就是同时操作共享变量的值。synchronized的出现解决了这个问题,互斥锁的含义为,当一个线程操作一个对象的时候,对该对象增加一个锁,任何其他线程都处在等待状态,不可以对该对象进行操作。当持有锁的线程执行完毕后,会释放持有锁,...
原创
发布博客 2018.04.28 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JAVA基础-volatile关键字

首先我们知道在java中内存的交互有以下几点。ReadLoad 和StoreWrite 两对操作不可分割。Lock(锁定):作用于主内存的变量,他把变量标识为一个线程独占的状态。UnLock(解锁) :作用于主内存的变量,它把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定。Read(读取):作用于主内存的变量,它把一个变量的值从主内存中读取到线程工作内存中,以便随后的loa...
原创
发布博客 2018.04.16 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JAVA基础-JMM内存模型

JAVA内存模型称为JMM,指JAVA虚拟机在内存中工作的方式。其中最主要的是理解JAVA内存模型定义多线程之间的通信方式和保证共享变量的可见性,以及如何对共享变量进行同步。在理解java内存模型之前首先必须知道一些基础的原理。1、数据依赖性 两个操作访问同一个变量时,如果其中的一个为写入操作,那么称这两个操作具有数据依赖性,编译器和处理器不会对有数据依赖性的操作进行重排序,也就是不会改变...
原创
发布博客 2018.04.13 ·
268 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多