自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nacos源码流程图

Nacos服务注册与发现源码Nacos GRPC通信Nacos配置中心

2024-03-15 13:41:39 608

原创 Spring源码流程图

1.IOC源码流程图地址:2.AOP源码流程图地址:3.事务源码。

2024-03-12 19:58:51 572

原创 Seata源码流程图

1.第一阶段分支事务的注册2.第一阶段开启全局事务3.第二阶段全局事务的提交4.第二阶段全局事务的回滚

2024-03-08 15:43:11 677

原创 Mysql事务隔离级别与锁机制

当系统并发量高的时候,Innodb的整体性能和MYISAM相比就会有比较明显的优势了。buffer pool的大小是有限的,一直往里面加入缓存页,free链表会有移除为空的时候,当free链表为空,有新的页数据需要加入进来,就需要对已经加载到buffer pool中的缓存页进行淘汰处理,系统肯定希望淘汰最不频繁使用的缓存页。Buffer pool是Innodb向操作系统申请的一块连续的内存空间,在多线程环境下,访问buffer pool的各种链表都需要加锁处理,在多线程并发的情况下,会严重影响请求的速度。

2023-10-09 11:39:05 245

原创 Mysql索引优化实战

1、MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index效率高,filesort效率低。2、order by满足两种情况会使用Using index。order by语句使用索引最左前列。使用where子句与order by子句条件列组合满足索引最左前列。3、尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。4、如果order by的条件不在索引列上,就会产生Using filesort。

2023-07-26 20:28:39 261

原创 Mysql数据结构与EXPLAIN详解

单列索引其实也可以看做联合索引,索引列为1的联合索引,从下图就可以看出联合索引的底层存储跟单列索引时类似的,区别在于联合索引是每个树节点中包含多个索引值,在通过索引查找记录时,会先将联合索引中第一个索引列与节点中第一个索引值进行匹配,匹配成功接着匹配第二个索引列和索引值,直到联合索引的所有索引列都匹配完;因为主键索引下面的data是整行记录的数据,数据量比较大,而二级索引的叶子节点的data只是主键索引的数据,所以显示二级索引的。对于允许NULL值的索引列,也会占用一个字节,key_len也就是1。

2023-07-17 11:48:35 98

原创 Redis基本数据类型和使用场景

注意:原先列表的值会被移除。被调用时,如果给定 key 内至少有一个非空列表,那么弹出遇到的第一个非空列表的最左边元素,并和被弹出元素所属的列表的名字 key 一起,组成结果返回给调用者。注意:只会返回第一个集合在第二个集合中不存在的元素,也就是只看第一个集合在其他集合不存在的元素。将一个值插入到已存在的列表最左边,如果该key对应的列表不存在,插入失败返回0,插入成功列表中所有元素的个数。将一个值插入到已存在的列表最右边,如果该key对应的列表不存在,插入失败返回0,插入成功列表中所有元素的个数。

2023-07-12 19:25:21 165

原创 Kubernetes集群搭建与使用

14年诞生,15年K8S发布了1.0版本,K8S已经成为了云原生时代的基础设施云原生应用都上了云之后,还是和原来本地部署运行之后的结果是一样的。CNCF(CloudNativeComputingFoudation),2015年7月份底成立,属于linux基金会,初衷围绕“云原生”服务云计算,支持编排容器化微服务架构应用。http//cncf.io创建一个whoami-deploment名称的service再次查看service可以对该pod进行扩容删除service。...

2022-07-24 14:17:23 458

原创 Docker之进阶

1.在 centos创建network namespace(1) 创建ns1

2022-06-12 19:10:34 400

原创 Docker之入门

一、安装docker1.安装(1)卸载之前的dockeryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \

2022-05-30 12:26:49 853

原创 分布式中间件之Kafka

安装kafka下载地址​ https://kafka.apache.org/documentation/#gettingStarted解压tar -zxvf kafka_2.12-2.4.1-C /usr/local/进入到config目录,编辑 server.properties 配置文件# 每个broker节点的id,集群架构下要唯一broker.id = 0# kafka对外提供的ip和端口号#listeners=PLAINTEXT://:9092 # 这是系统默认的# 这里的ip

2021-11-06 22:57:32 2989 2

原创 分布式中间件之Redis

下载Rediswindows版本:https://github.com/MicrosoftArchive/redis/tags (官网没有,只能去github下载,也只有3.2版本以下的)linux版本: https://download.redis.io/releases/RDB(快照)redis是内存数据库,一旦断电或者宕机,内存中的数据将全部丢失,redis为了解决这个问题,提供了rdb和aof两种方式来持久化数据。默认情况下redis会把内存里面的数据保存在一个叫做 dump.rdb 二进

2021-10-27 00:40:25 927

原创 阿里巴巴中间件之Seata

一、在了解Seata之前先简单看一下两阶段提交1.准备阶段事务协调者(事务管理器)给每个参与者(资源管理器)发送 Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交。(关于每一个参与者在准备阶段具体做了什么目前 我还没有参考到确切的资料,但是有一点非常确定:参与者在准备阶段完 成了几乎所有正式提交的动作,有的材料上说是进行了“试探性的提 交”,只保留了最后一步耗时非常短暂的正式提交操作给第二阶段执行。)2.提交阶段如果协

2021-08-04 06:35:44 2102

原创 Sentinel规则持久化到配置中心

Sentinel默认把规则存储在jvm内存,分布式系统自然要存储在配置中心,供所有服务去拉取规则。客户端可以通过配置中心去实时监听到,同时sentinel-dashboard也能动态刷新,但是默认是不支持sentinel-dashboard推送到配置中心的,之前曾经给官方上报过issues,他们的回复是自己去扩展实现。当时就没多去在意,后来才明白过来人家有实现了,只不过是商业版的,去阿里云开通AHAS即可。昨天看文档说提供的有接口供我们扩展实现,下面就演示一个sentinel-dashboard推送到配

2021-07-05 22:47:50 785 2

原创 Dubbo之服务注册与发布

服务注册与发布书接上回,接着分析dubbo的服务注册。首先了解一下dubbo怎么解析自定义的标签的。xml在 dubbo-config 模块的 dubbo-config-spring 下面,找到resources下面的META-INF下面的spring.handlers文件,该文件主要是指定标签校验为本地实现类,该文件里面的内容也是以key、value存储的,key就是我们在xml里面必须要添加的schema头,value就是解析的类,然后再去定义一个xsd文件,通过我们的定义按照这个文件进行约束供

2021-06-11 20:49:26 3660

原创 阿里巴巴中间件之Dubbo

Dubbo2012年开源,中间几年没有维护,2017年9月份又重拾起来,2018年捐给Apache基金会。 在Dubbo开源之后一些公司进行了使用,在Dubbo停止维护之后,这些公司就基于dubbo自己开发了一个RPC框架,比如京东的jsf,新浪的motan,蚂蚁金服的sofa,当当的dubbox。通信协议RestTemplate(Http Client)WebService(soap) wsdl(Web Services Description Language)Hessian(基于http协

2021-03-17 21:46:00 2148

原创 阿里巴巴中间件之RocketMQ

RocketMQ2012年开源,2017年捐给apacherocketMQ借鉴了一些kafka的思想与kafka不同的是,他是一个真正的消息中间件,kafka最开始设计之初是做日志处理的。设计一个消息中间件的需求通信的支持,基于NIO(Netty)消息的序列化和反序列化是否跨语言消息的ack(确认)消息的持久化(内存、db、磁盘存储)高可用(集群) 主从是否支持多协议RocketMq特性经受历年双十一的考验集群(为分布式而生的消息中间件)持久化(零拷贝/磁盘顺序存储,随

2021-02-11 16:43:13 761

原创 阿里巴巴中间件之Sentinel

一.Sentinel之限流限流解决的问题a.恶意流量b.保护系统限流的场景黄金周或者节假日去景点的时候,某些景点会进行限制每天的人流量。数据库的连接数达到最大连接数的时候会阻塞阈值,保护数据库。线程池的线程数会设置最大线程数,超过最大线程数的时候-> 拒绝策略,或者直接返回异常。常见的限流算法滑动窗口漏桶令牌桶sentinel的限流算法:基于滑动窗口来实现的(源码分析里面会讲到)滑动窗口限流发送端和接收端都会维护一个数组的序列,这个序列被称之为一个窗口,发送方的窗口

2021-01-03 19:51:14 1466 3

原创 阿里巴巴中间件之Nacos

一.Nacos是什么?Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。来看一下Nacos的全景图如图所示,他可以无缝的集成其他的中间件,如:Spring Cloud、Apache Dubbo、Kubernetes等。使用 Nacos 简化

2020-11-09 06:39:31 2616 1

原创 IDEA中git提交的时候忽略文件

1.创建一个文件夹2.右键单机要忽略的文件,然后点击 Move to Another Changelist3.点击OK按钮4.大功告成!

2020-09-02 18:09:46 764

原创 基于Netty实现一个自己的RPC框架

仿照阿里巴巴的服务治理框架dubbo的架构实现一个自己的rpc框架,贴一个dubbo的架构图吧这是从dubbo官网截取的最新的架构图,后续我应该会继续更新关于dubbo的应用、原理、以及源码的帖子,所以这一次不会过多的去讲dubbo。简单介绍一下自己实现的,模块一共也是这么多,只不过Monitor模块没去实现,因为此模块可有可无,意义不是很大,就没去实现。registry:所有的服务注册到这里(本项目使用map来实现)。api:去对外暴露接口。provider:服务的提供者,实现对外暴露的接口

2020-08-09 21:43:24 395

原创 mysql查询指定日期每一天的数据

mysql查询从指定日期到指定日期每一天的数据,数据库没有该天的数据也显示 @RequestMapping(value = "/queryWorkScore", method = RequestMethod.GET) public List queryWorkScore(String startTime, String endTime) { int num = calcBetweenDate(startTime, endTime); StringBuilder st

2020-08-04 08:21:06 1666

原创 Oracle查询指定日期到今天共有多少天,根据天分组

SELECT to_char(dateTime, 'YYYY-MM-DD' ) AS time FROM generate_series( to_timestamp ( '2019-11-01', 'YYYY-MM-DD' ), to_timestamp (to_char(sysdate), 'YYYY-MM-DD' ), '1 days' ) AS dateTime GROUP BY time ORDER BY time desc

2020-08-04 08:20:11 4358

原创 浅谈分布式注册中心Zookeeper之客户端源码

zookeeper客户端的主类入口是Zookeeper类,负责与zookeeper server端的通信以及触发watcher等,下面就开始从第一行代码开始看起。1.首先从构造方法开始,把我们自己的zk地址传进去,这个构造方法又调用了一个默认的构造方法,去进行连接。 ConnectStringParser connectStringParser = new ConnectStringParser( connectString); 这行代码主要是解析服务获取 IP以及端

2020-08-02 22:56:00 132

原创 浅谈分布式注册中心Zookeeper之服务端源码

前两年阿里把Dubbo这个项目重拾起来开始维护,他们推荐的注册中心Zookeeper的热度也又上来了,不过据dubbo的维护者说,他们当初并没有使用zk作为注册中心,今天就来聊聊zk的服务端源码。在这之前,先讲一下zookeeper的一致性,依赖了ZAB协议,ZAB协议是分布式协调服务为Zookeeper专门设计的一种崩溃恢复的原子广播协议,两种基本的模式:崩溃恢复和消息广播。这两个模式是相辅相成的,消息广播模式就是zookeeper不出现任何问题,并且正常工作的模式,崩溃恢复看字面意思就是当zookee

2020-05-25 16:41:12 325

原创 春天来了,继续手写自己的Spring,从0到1,从IOC到DI、AOP、MVC四个阶段,项目已经传到了github和码云上面

熬了一周的时间,每天坐在电脑面前十几个小时,边看spring的源码,边从网上找资料,从0到1,把这个应用层框架给搞出来了。最后又基于springboot的约定大于配置的封装思想,把配置文件全部给剔除了,全部使用注解即可启动服务,下面阐述一下该项目的核心流程。1.初始化阶段...

2020-04-15 02:19:53 3745 20

空空如也

空空如也

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

TA关注的人

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