自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 原创--JVM详解

第一节:内存结构 为什么要了解虚拟机 JVM 不单单只支持 Java 语言,也支持其他语言(Scala、Kotlin、Groovy 等等) 区块链 2.0--以太坊(比特币是区块链 1.0) 中提供了 EVM 的虚拟机,它的实现和 JVM 类似,基于栈、生成脚本编译成字节码来执行。知 识通用。(理论大于实际) 虚拟机历史 了解即可,无需关注 解释执行和编译执行(针对字节码的执行) 解释执行就是边翻译为机器码边执行、即时编译(编译执行)就是先将一个方法中的所有字节码全部编译成机

2021-06-26 10:48:20 34

原创 消息队列MQ常见问题和解决方案

消息队列常见问题和解决方案说明:此文是笔者对中华石衫老师对消息队列讲解的一篇总结包括笔者自己的一些理解一、为什么使用消息队列?消息队列使用的场景和中间件有很多,但解决的核心问题主要是:异步、解耦、消峰填谷。二、消息队列的优缺点异步、解耦、消峰填谷这是消息队列最大的优点,除了这些消息队列还可以会解决一些我们特殊业务场景的问题。但是缺点主要在于系统的可用性、复杂性、一致性问题,引入消息队列后,需要考虑MQ的可用性,万一MQ崩溃了岂不是要爆炸?而且复杂性明显提高了,需要考虑一些消息队列的常见问

2021-06-26 10:46:41 103

转载 【网络通信】Java NIO

【网络通信】Java NIO目录【网络通信】Java NIO二、NIO2.1 NIO 简介2.2 NIO的组成1)Channel (通道)2)Buffer(缓冲区)3)SelectorNIO的常用方法NIO示例二、NIO事件驱动+多路复用写事件代表底层缓冲区是否有空间,有则响应true2.1 NIO 简介NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了 NIO 框架,对应 java.nio 包,提供了 Channel , Selec

2021-06-09 02:29:58 180

转载 网络--传输层TCP、UDP、流量控制、拥塞避免、三次挥手

网络--传输层TCP、UDP、流量控制、拥塞避免、三次挥手目录网络--传输层TCP、UDP、流量控制、拥塞避免、三次挥手第五章 传输层5.1 OSI和DoD模型5.2 传输层协议和应用层协议的关系5.3 服务和应用层协议的关系5.3.2 如何查看服务侦听的端口5.4 传输层功能和端口范围5.4.1 传输层协议和网络层协议的主要区别5.4.2 传输层的主要功能5.4.3 传输层的端口5.5UDP协议5.5.1 UDP的首部格式常用TCP/UDP协议.

2021-06-09 02:27:45 135

转载 【网络通信】select、poll、epoll

【网络通信】select、poll、epoll目录【网络通信】select、poll、epoll前言0、 网络编程基础原理1 网络编程(Socket)概念一、BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO(多线程BIO)BIO的通信过程三 AIO四、多路复用解释NIO Reactor(NIO的改进)多buffer的分散(Scatter)与聚集(Gather)字符集Charset多路复用管道(Pipe)ep...

2021-06-07 16:05:10 14 1

转载 【网络通信】4、零拷贝、DMA、系统调用、消息队列原理

【网络通信】4、零拷贝、DMA、系统调用、消息队列原理目录【网络通信】4、零拷贝、DMA、系统调用、消息队列原理一、硬中断软中断系统调用:80中断用户内核态切换二、早期IO三、DMA引入DMA后的传统IO四、传统IO五、零拷贝1、mmap零拷贝2、send-file3、消息队列零拷贝4、NIO零拷贝4、零拷贝总结一、硬中断软中断我们知道系统为了安全,在调用一些指令时需要进行用户态和内核态转换,如只有在内核态才能执行读写命令,这样保证了.

2021-06-07 16:03:11 22

转载 ElasticSearch、上架与检索

ElasticSearch、上架与检索目录ElasticSearch、上架与检索一、ELASTIC SEARCH0、简介1、安装elastic search2、初步检索二、进阶检索三、Mapping字段映射四、分词五、elasticsearch-Rest-Client六、SpringBoot整合ElasticSearch1、导入依赖2、测试七、product-es准备八、商品上架gulimall-search九、商品检索2、ES语句DS

2021-06-07 16:00:39 72

转载 【谷粒商城】高级篇-分布式锁与缓存

【谷粒商城】高级篇-分布式锁与缓存目录【谷粒商城】高级篇-分布式锁与缓存缓存1. 本地缓存2. 分布式缓存Redisson缓存和数据库一致性SpringCache版权 笔记-基础篇-1(P1-P28):https://blog.csdn.net/hancoder/article/details/106922139 笔记-基础篇-2(P28-P100):https://blog.csdn.net/hancoder/article/details/107...

2021-06-07 15:54:28 9

转载 【认证服务】验证码、社交登录、分布式session、单点登录

【认证服务】验证码、社交登录、分布式session、单点登录目录【认证服务】验证码、社交登录、分布式session、单点登录认证服务一、gulimall-auth-server二、验证码注册三、社交登录四、分布式session分布式登录总结五、单点登录六、登录拦截器通用登录拦截器购物车的登录拦截器版权 笔记-基础篇-1(P1-P28):https://blog.csdn.net/hancoder/article/details/10692213.

2021-06-07 15:52:50 19

转载 分布式事务与下单

分布式事务与下单目录分布式事务与下单一、gulimall-cart二、购物车1、购物车需求2、购物车VO3、 ThreadLocal用户身份鉴别3. 添加商品到购物车4. 展示购物车5. 选中购物车项6. 修改购物项数量7. 删除购物车项三、消息队列四、Session共享五、订单模型六、服务通信数据共享问题订单登录拦截异步线程的request数据与远程调用cookie的携带七、订单确认页八、接口幂等性讨论九、订单提交十、

2021-06-07 15:51:00 366

转载 【谷粒商城】集群篇-k8s(4/4)

【谷粒商城】集群篇-k8s(4/4)目录一、K8s快速入门1)简介2)架构3)概念4)快速体验二、K8s集群安装1)kubeadm2)前置要求3)部署步骤4)环境准备5)所有节点安装docker、kubeadm、kubelet、kubectl6)部署k8s-master7)安装POD网络插件(CNI)8)加入kubenetes的Node节点9)入门操作kubernetes集群三、docker深入四、K8s细节1、kubectl文档

2021-06-07 15:48:58 55

原创 分布式配置中心Apollo教程

目录分布式配置中心Apollo教程学习链接1 概览1.1 什么是配置1.2 什么是配置中心2 Apollo简介2.1 主流配置中心2.2 Apollo简介2.3 Apollo特性3 Apollo快速入门3.1 执行流程3.2 安装Apollo3.3 代码实现4 Apollo应用4.1 Apollo工作原理4.2 核心概念4.3 项目管理4.4 配置管理4.5 多项目配置4.6 集群管理4.7 配置发布原理5 Apollo

2021-06-05 22:57:40 80

原创 Java高级面试题

中高级JAVA工程师面试题汇总文章目录缓存 memcache的分布式原理 memcache的内存分配机制 如何存放数据到memcached缓存中?(memcache内存分配机制) memcache的惰性失效机制 memcache缓存的无底洞现象 一致性Hash算法的实现原理 Hash环 一致性Hash算法 Hash环的倾斜 虚拟节点解决Hash环倾斜 hash算法平衡性 memcached与redis的区别 Redis的主从复制...

2021-06-05 22:52:49 52

原创 微服务-Nacos数据一致性

Nacos数据一致性目录一、Raft算法二、Nacos中Raft部分源码init()1. 获取Raft集群节点NamingProxy.getServers()获取集群节点NamingProxy.refreshSrvIfNeed()得到节点信息NamingProxy.refreshServerListFromDisk()获取集群节点信息2. Raft集群数据恢复RaftStore.load()3. Raft选举GlobalExecutor.registe...

2021-06-05 22:49:00 80

原创 Oracle-SQL语句执行流程与顺序原理解析

SQL语句执行流程与顺序原理解析Oracle语句执行流程第一步:客户端把语句发给服务器端执行当我们在客户端执行SQL语句时,客户端会把这条SQL语句发送给服务器端,让服务器端的进程来处理这语句。也就是说,Oracle 客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些SQL语句发送给服务器端。服务器进程从用户进程把信息接收到后, 在PGA 中就要此进程分配所需内存,存储相关的信息,如:在会话内存存储相关的登录信息等。虽然在客户端也有一个数据库进程,但是,这个进程的作用跟服务器...

2021-06-05 22:45:55 9

原创 Redis与数据库数据一致性解决方案

Redis与数据库数据一致性解决方案首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。1 正文先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入

2021-06-05 22:41:29 19

原创 微服务分布式事务

一 前言本话题已收入视频讲座《Spring Cloud分布式事务解决方案》大家不妨围观下阿里2017云栖大会《破解世界性技术难题!GTS让分布式事务简单高效》中,阿里声称提出了一种破解世界性难题之分布式事务的终极解决方案,无论是可靠性、还是处理速率都领先于市面上所有的技术。但令人遗憾的是一来项目未开源,二来还必须依赖阿里云的分布式数据库。毕竟,吃饭的家伙可不能轻易示人嘛。虽然如此,但《世界难题...》一文中对事务还是归纳的还是蛮到位的:“一个看似简单的功能,内部可能需要调用多个“服务”并操...

2021-06-05 22:38:16 31

原创 MYSQL优化原理

MYSQL优化原理说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了M.

2021-06-05 22:34:13 6

原创 java面试题2021

java面试题2021如下题目如果全部能搞定,至少涨薪50%:[第一部分] 面试要领[第1题] 流程必知必会[第2题] JDK源码[第二部分] 类和对象[第二篇] 面向对象基础[第1题] 面向对象是什么?[第2题] 类加载的过程[第3题] 类加载器有哪些[第4题] 双亲委派模式[第5题] 编写自己的类加载器[第6题] 对象的创建[第7题] jvm的优化[第8题] 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?[第9题] JDK和JRE的区别是什么?...

2021-06-05 22:30:47 35

原创 Hashmap实现原理及hash冲突(碰撞)解决方法

HashMap的实现原理及hash冲突(碰撞)解决方法HashMap 采用一种所谓的“Hash算法”来决定每个元素的存储位置。当程序执行 map.put(String,Obect)方法 时,系统将调用String的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。源码如下:public...

2021-06-05 22:28:43 41

原创 Raft协议实战之Redis Sentinel的选举Leader源码解析

Raft协议实战之Redis Sentinel的选举Leader源码解析这可能是我看过的写的最详细的关于redis 选举的文章了,原文链接Raft协议是用来解决分布式系统一致性问题的协议,在很长一段时间,Paxos被认为是解决分布式系统一致性的代名词。但是Paxos难于理解,更难以实现,诸如Google大牛们开发的分布式锁系统Chubby都遭遇了很多坑。Raft协议设计的初衷就是容易实现,保证对于普遍的人群都可以十分舒适容易的去理解。另外,它必须能够让人形成直观的认识,这样系统的构建者才能够...

2021-06-05 22:26:06 8

原创 springboot启动流程解析

导航 博客园 首页 新随笔 联系 订阅 管理 公告 昵称:落日银河 园龄:3年10个月 粉丝:26 关注:2 +加关注 < 2021年6月 > 日 一 二 三 四 五 六 30 31 1 2 ...

2021-06-04 02:52:01 319

原创 spring常见面试题解析

1、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。主要包括以下七个模块:Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务; Spring AOP:AOP服务; Spring Web:提供了基本的面向Web的综合特性,提供对常见框架

2021-06-04 02:50:14 12

原创 ELK入门解析

前言 日志,对于任何系统来说都是及其重要的组成部分。在计算机系统里面,更是如此。但是由于现在的计算机系统大多比较复杂,很多系统都不是在一个地方,甚至都是跨国界的;即使是在一个地方的系统,也有不同的来源,比如,操作系统,应用服务,业务逻辑等等。他们都在不停产生各种各样的日志数据。根据不完全统计,我们全球每天大约要产生2EB的数据。1EB=1024PB 1PB=1024TB面对如此海量的数据,又是分布在各个不同地方,如果我们需要去查找一些重要的信息,难道还是使用传统的方法,去登陆到一...

2021-06-04 02:48:06 11

原创 2021最新面试题

1.多线程与并发 2.集合容器3.JVM虚拟机4.操作系统5.网络基础6.数据结构与算法7.数据库8.性能优化9.分布式Redis缓存10.分布式系统架构11.高并发架构12.Dubbo13.微服务14.Nettty15.消息中间件等多线程与并发编程Synchronized关键字的理解? Synchronized有哪些锁的实现?以及各种锁的升级流程? Volatile关键词的作用,以及内部实现原理? CAS的内部实现? A...

2021-06-04 02:46:04 25 1

原创 Eureka缓存机制

Eureka Server缓存机制Eureka Server的缓存机制依赖于谷歌的gauva cache , 在Eureka中通过com.netflix.eureka.registry.ResponseCacheImpl , 这个操作类来实现缓存的机制。ResponseCacheImplResponseCacheImpl(EurekaServerConfig serverConfig, ServerCodecs serverCodecs, AbstractInstanceRegist...

2021-06-04 02:40:52 163

原创 原创-java锁机制

java锁机制1.1什么是锁? 在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。锁旨在强制实施互斥排他、并发控制策略。 锁通常需要硬件支持才能有效实施。这种支持通常采取一个或多个原子指令的形式,如"test-and-set", "fetch-and-add" or "compare-and-swap"”。这些指令允许单个进程测试锁是否空闲,如果空闲,则通过单个原子操作获取锁。1.2.锁的一个重要属性 粒度...

2021-06-04 02:36:00 14

原创 java线程池原理

线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些”池化资源”技术产生的原因。例如Android中常见到的很多通用组件一般都离不开”池”的概念,如各种图片加载库,网络请求库,即使And...

2021-06-04 02:34:02 197

原创 分布式事务解决方案

什么是事务?事务由一组操作构成,我们希望这组操作能够全部正确执行,如果这一组操作中的任意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是同一个事务中的所有操作,要么全都正确执行,要么全都不要执行。事务的四大特性 ACID说到事务,就不得不提一下事务著名的四大特性。 原子性 原子性要求,事务是一个不可分割的执行单元,事务中的所有操作要么全都执行,要么全都不执行。 一致性 一致性要求,事务在开始前和结束后,数据库的完整性约束没有被破坏。 隔离性 事务的...

2021-06-04 02:31:18 98

原创 原创-Kafka原理

Kafka原理2017年09月22日 22:39:45317人阅读评论(0)收藏举报分类:Kafka(1)目录(?)[+]Kafka这段时间研究RabbitMQ、Kafka、RocketMQ消息队列,发现对她们原理的介绍都过于简单,所以整理了众多资料,写成下面这边Kafka的原理。主要内容包括:功能与使用场景:特性、适用场景、基本概念:Broker、Topic、Partition、Partition、Producer、Consumer、Consu...

2021-06-04 02:29:00 113

原创 原创-Hashmap1.7和1.8有哪些区别

(一) 真实面试题之:Hashmap的结构,1.7和1.8有哪些区别不同点:(1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。(2)扩容后数据存储位置的计算方式也不一样:1. 在JDK1.7的时候是直接用hash值和需要扩容的二进制数进行&(这里就是为什么扩容的时候

2021-06-04 02:24:16 111

转载 JVM笔记(黑马+尚硅谷+张龙整合笔记)

JVM笔记(黑马+尚硅谷+张龙整合笔记)hancoder2020-03-30 22:11:432254收藏33分类专栏:JavaJVM文章标签:JVM笔记黑马尚硅谷张龙版权前要本身整合了如下视频的笔记,并进行了整理:尚硅谷周阳、张龙、黑马程序员黑马ppt非常好:https://download.csdn.net/download/hancoder/12834607 本文及JVM系列笔记地址:https://blog.csdn.net/hancod...

2021-05-18 20:49:55 43

转载 高并发处理之商品详情页

卜大伟2019-01-18 11:13:472487收藏4分类专栏:高并发该文章是根据velocity 2015技术大会的演讲《京东网站单品页618实战》细化而来,希望对大家有用。商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的,只是展示方式不一样。目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基...

2021-05-15 02:22:30 86

转载 Mybatis常见面试题总结

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心Mybatis常见面试题总结张维鹏2018-07-09 21:29:01420375收藏3397分类专栏:SSM+SSH框架文章标签:面试题mybatis版权1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的...

2021-05-15 02:19:24 67

转载 MySQL 主从同步延迟的原因及解决办法

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心MySQL 主从同步延迟的原因及解决办法hao_yunfeng2018-09-04 23:31:2949262收藏129分类专栏:mysqlMysql主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导致主库从库数据不一致问题的及解决方案一、主从数据库的区别从数据库(Slave)是主数据库的备份,当主数据库(M...

2021-05-15 02:17:08 110

转载 java集合超详解

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心java集合超详解feiyanaffection2018-08-03 21:28:15191903收藏2774分类专栏:Java文章标签:Java集合超详解版权一、集合大纲1.集合和数组的区别:2.Collection集合的方法:3.常用集合的分类:Collection接口的接口 对象的集合(...

2021-05-15 02:15:22 14

转载 常用的分布式事务解决方案

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心常用的分布式事务解决方案凌澜星空2018-03-11 14:44:5575315收藏466分类专栏:架构高性能网站微服务项目实战文章标签:微服务分布式架构事务一致性版权众所周知,数据库能实现本地事务,也就是在同一个数据库中,你可以允许一组操作要么全都正确执行,要么全都不执行。这里特别强调了本地事务,也就是目前的...

2021-05-15 02:14:09 51

转载 SpringBoot2 | SpringBoot启动流程源码分析(一)

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心SpringBoot2 | SpringBoot启动流程源码分析(一)置顶张书康2018-08-31 15:29:5873428收藏388分类专栏:SpringBootSpringspringmvc文章标签:SpringBoot2版权微信公众号:吉姆餐厅ak学习更多源码知识,欢迎关注。SpringBoot2...

2021-05-15 02:12:15 34

转载 Java集合类源码分析汇总

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心Java集合类源码分析汇总舟2016-07-16 21:23:482253收藏2转自:http://www.cnblogs.com/hzmark/archive/2013/01/05/JavaCollectionSum.htmlJava集合类基础:http://www.cnblogs.com/hzmark/archive/20...

2021-05-15 02:10:02 19

转载 SpringBoot下MySQL的读写分离

首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校会员中心收藏动态消息创作中心02-下篇-SpringBoot下MySQL的读写分离dusuanyun2018-07-16 09:03:303095收藏3分类专栏:应用配置文章标签:SpringBootMySQL读写分离SpringDataJPAAOP版权前言:关于MySQL读写主从实现,分两步:第一步,需要现有主从的环境,利用docker快...

2021-05-15 02:08:07 10

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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