自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人博客地址:https://javaxiaobear.gitee.io/

【小熊学Java】专注于记录自己所整理的Java技术干货、学习经验、面试资料、刷题记录以及遇到的问题和解决方案,记录自己的成长的点滴

  • 博客(141)
  • 资源 (3)
  • 收藏
  • 关注

原创 2022最新 MySQL 内部技术架构面试题

更多面试题:https://javaxiaobear.gitee.io/Connectors(客户端)MySQL服务器之外的客户端程序,与具体的语言相关,例如Java中的JDBC,图形用户界面SQLyog等。MySQL Server(服务器)第1层:连接层第2层:服务层Management Serveices & Utilities: 系统管理和控制工具SQL Interface:SQL接口:Parser:解析器:语法分析语法分析主要是把输入转化成若干个tokens,包含key和非key。在分析之后,会

2022-12-03 14:21:44 124

原创 手把手教你 centos 7 安装RabbitMQ

我使用的Linux搭建,搭建流程可参考官网:https://www.rabbitmq.com/install-rpm.html查看系统版本号,Rabbitmq 对 Erlang 有版本要求,不能使用太旧的Erlang版本:https://www.rabbitmq.com/which-erlang.htmlErlang下载地址:https://github.com/rabbitmq/erlang-rpm/releases。

2022-12-01 22:23:47 218

原创 2022最新1w字MySQL索引面试题(附md文档)

自适应哈希索引是Innodb引擎的一个特殊功能,当它注意到某些索引值被使用的非常频繁时,会在内存中基于B-Tree所有之上再创建一个哈希索引,这就让B-Tree索引也具有哈希索引的一些优点,比如快速哈希查找。这是一个完全自动的内部行为,用户无法控制或配置使用命令查看INSERT BUFFER AND ADAPTIVE HASH INDEX多叉树(multiway tree)允许每个节点可以有更多的数据项和更多的子节点。2-3树,2-3-4树就是多叉树,多叉树通过。

2022-11-30 15:38:03 119

原创 IDEA的日常快捷键大全

显示当前类结构,支持搜索指定的方法、属性等。查询当前元素在当前文件中的引用,然后按。继续执行,进入下一个断点或执行完程序。批量修改指定的变量名、方法名、类名等。光标选中指定的类,查看继承树结构。强制单步调试(进入函数内部)单步调试(不进入函数内部)选中的结构的大小写的切换。直接定位到当前行的末位。单步调试(进入函数内部)退回到前一个编辑的页面。进入到下一个编辑的页面。直接定位到当前行的首位。选中数行,整体往后移动。选中数行,整体往前移动。切换到下一行代码空位。打开的类文件之间切换。回溯变量或方法的来源。

2022-11-29 09:42:23 127

原创 windows安装配置maven

2]Maven的核心程序并不包含具体功能,仅负责宏观调度。Maven核心程序会到本地仓库中查找插件。如果本地仓库中没有就会从远程中央仓库下载。为了解决这个问题,我们可以将Maven的本地仓库指向一个在联网情况下下载好的目录。%M2_HOME%\bin或D:\develop_tools\apache-maven-3.6.0\bin。解压目录\ D:\develop_tools\apache-maven-3.6.0\conf\。Maven是使用Java开发的,所以必须知道当前系统环境中JDK的安装目录。

2022-11-29 09:33:09 12

原创 IDEA配置tomcat,快速部署tomcat

bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的jar包了,所以建议只把Tomcat需要的jar包放到这个目录下;

2022-11-28 17:53:22 343

原创 分布式全局唯一ID生成方案(附源码)

ID,全称Identifier,中文翻译为标识符,是用来唯一标识对象或记录的符号。比如我们每个人都有自己的身份证号,这个就是我们的标识符,有了这个唯一标识,就能快速识别出每一个人。在计算机世界里,复杂的分布式系统中,经常需要对大量的数据、消息、HTTP 请求等进行唯一标识。比如对于分微服务架构的系统中,服务间相互调用需要唯一标识,幂等处理,调用链路分析,日志追踪的时候都需要使用这个唯一标识,此时我们的系统就迫切的需要一个全局唯一的ID。

2022-11-27 13:47:35 416

原创 Java设计模式——原型模式讲解以及在Spring框架中的使用

原型模式(Prototype 模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即对象.clone()

2022-11-26 10:19:17 384

原创 Java设计模式——工厂模式讲解以及在JDK中源码分析

简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式.定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。思路:将创建的过程写成抽象类和抽象方法步骤将订购手机的类变成抽象类,抽象方法为创建手机/**

2022-11-25 21:54:41 523

原创 Spring Boot 集成百度 Uidgenerator分布式ID生成器

是Java实现的, 基于算法的唯一ID生成器。以组件形式工作在应用项目中, 支持自定义workerId位数和初始化策略, 从而适用于等虚拟化环境下实例自动重启、漂移等场景。在实现上,通过借用未来时间来解决sequence天然存在的并发限制;采用RingBuffer来缓存已生成的UID, 并行化UID的生产和消费, 同时对CacheLine补齐,避免了由RingBuffer带来的硬件级「伪共享」问题. 最终单机QPS可达600万。

2022-11-25 21:50:04 22

原创 设计模式的七大原则(建议收藏)

里氏替换原则 Liskov Substitution Principle 在 1988 年,由麻省理工学院的以为姓里的女士提出的。如果对每个类型为T1的对象o1 ,都有类型为 T2 的对象 o2 ,使得以 T1 定义的所有程序P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类的对象。在 使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法里氏替换原则告诉我们,

2022-11-24 23:34:38 212

原创 【Spring Cloud实战】Spring Cloud Alibaba Sentinel熔断与限流 (最全讲解,附源码)

Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。官网:https://github.com/alibaba/Sentinel中文文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D https://sentinelguard.io/zh-cn/docs/introduction.html。

2022-11-24 23:29:01 303

原创 【Spring Cloud实战】Spring Cloud Alibaba Nacos服务注册与配置中心

nacos前四个字母分别是Naming和Configuration的前两个字母,后面的s是Servicenacos地址:https://nacos.io/zh-cn/docs/what-is-nacos.htmlNacos是一个易于使用的动态服务发现,配置和服务管理平台,用于构建云本机应用程序。使用Spring Cloud Alibaba Nacos Discovery,您可以基于Spring Cloud的编程模型快速访问Nacos服务注册功能。Nacos就是注册中心+配置中心的组合Nacos=

2022-11-23 23:58:16 34

原创 【Spring Cloud实战】Spring Cloud GateWay服务网关

GateWayCloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway一句话:gateway是原zuul1.x版的替代提供了一个在Spring生态系统之上构建的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。

2022-11-23 23:50:37 85

原创 【Spring Cloud实战】Spring Cloud Alibaba入门

中文文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.mdSpring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

2022-11-22 23:06:06 26

原创 【Spring Cloud实战】SpringCloud Sleuth分布式请求链路跟踪

在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。官网资料:https://github.com/spring-cloud/spring-cloud-sleuthSpring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zipkin。

2022-11-22 23:04:29 200

原创 【Spring Cloud实战】Spring Cloud Stream消息驱动

屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型中文指导手册:https://m.wang1314.com/doc/webapp/topic/20971999.html。

2022-11-21 19:32:04 22

原创 【Spring Cloud实战】Spring Cloud Bus消息总线

Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改(例如配置更改)或其他管理指令。一个关键的想法是,Bus就像一个扩展的Spring Boot应用程序的分布式执行器,但也可以用作应用程序之间的通信渠道。当前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上。分布式自动刷新配置功能配合实现配置的动态的刷新BusRabbitMQkafka。

2022-11-21 19:23:19 650

原创 【Spring Cloud实战】Spring Cloud Config分布式配置中心

分布式系统面临的问题–配置问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百个配置文件的管理…

2022-11-20 13:23:52 29

原创 【Spring Cloud实战】Hystrix断路器

分布式面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。

2022-11-20 13:19:36 42

原创 【Spring Cloud实战】OpenFeign服务接口调用

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。

2022-11-19 22:25:37 26

原创 【Spring Cloud实战】Ribbon负载均衡

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。

2022-11-19 22:20:29 538

原创 【Spring Cloud实战】Consul服务注册与发现

Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括: 基于 raft 协议,比较简洁;支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows特性​下载。

2022-11-15 22:17:19 124

原创 安装Oracle、连接Oracle遇到的一系列问题

使用Navicat连接Oracle的一系列问题在Navicat中创建连接时,出现ORA-28009错误解决方法:编辑连接,将用户名修改为system或者其他的用户,但是唯独不能使用sys超级用户点击安装[INS-13001] 环境不满足最低要求 的问题发现其不支持win 10系统,所以需要打开Oracle Client 11g安装包目录,找到/stage/cvu目录下的cvu_prereq.xml文件。然后在这个文件中增加如下内容<OPERATING_SYSTEM RELEASE

2022-11-15 08:32:23 58

原创 【Spring Cloud实战】Eurake服务注册与发现

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

2022-11-14 09:27:24 92

原创 【Spring Cloud实战】消费者直接调用提供者(案例)

1、maven工程复习Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用这个dependencyManagement 元

2022-11-14 08:35:05 39

原创 Spring Cloud入门以及版本管理

Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。它们将在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及诸如Cloud Foundry之类的托管平台.

2022-11-13 14:14:07 186

原创 一篇彻底带你理解微服务

首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应用,来理解什么是微服务。

2022-11-13 14:12:47 156

原创 Java内存溢出的几个区域,注意避坑

在开发过程中,时常会遇到内存溢出的问题,有可能是在生产环境,有的就在开发中,今天就聊一聊内存溢出。存在内存的区域:Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机内存溢出。

2022-11-09 08:53:16 260

原创 浅谈Java学习以及学习路线图

关于这篇,应该很早就要更新了,奈何一直拖拖拖(因为自己在跟着做项目),导致到现在才更新,今天就聊一聊关于我,自己接触Java比较早,但真正实际能到开发阶段,还是在疫情期间,因为要准备实习了,看网上这么卷,所以才开始框架的学习,在此之前,学习的态度的:三天打鱼,两天晒网;现在回想之前的大学时光,感觉自己很荒废,自己也走了不少弯路,强烈建议:如果能找到一个大佬带你学习或者给你提供学习路线等,你将会少走很多弯路!不然大部分应该和我一样,学完一个全新的框架之后,总会纠结到底该学哪个,在此件事情上浪费很多时间。

2022-11-08 08:43:38 79

原创 深入学习Docker网络(看这篇就完全够了)

开启docker后会产生一个名为docker0的虚拟网桥查看Docker网络的情况。

2022-11-06 19:35:58 34

原创 深入理解Java内存区域(最新版面试题)

JVM(Java Virtual Machine)是用于运行Java字节码的虚拟机,包括一套字节码指令集、一组程序寄存器、一个虚拟机栈、一个虚拟机堆、一个方法区和一个垃圾回收器。JVM运行在操作系统之上,不与硬件设备直接交互。Java源文件在通过编译器之后被编译成相应的.Class文件(字节码文件),.Class文件又被JVM中的解释器编译成机器码在不同的操作系统(Windows、Linux、Mac)上运行。每种操作系统的解释器都是不同的,但基于解释器实现的虚拟机是相同的,这也是Java能够跨平台的原因。

2022-11-05 20:57:59 296

原创 记录使用sybase库遇到的问题【附解决方案】

记录一次使用sybase库遇到的问题。

2022-11-04 11:17:53 25

原创 这篇数据库设计规范建议,我必须分享给你

再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。

2022-10-31 09:08:40 176

原创 浅析RabbitMQ的延迟队列

如果设置了队列的 TTL 属性,那么一旦消息过期,就会被队列丢弃(如果配置了死信队列被丢到死信队列中),而第二种方式,消息即使过期,也不一定会被马上丢弃,因为消息是否过期是在即将投递到消费者之前判定的,如果当前队列有严重的消息积压情况,则已过期的消息也许还能存活较长时间;想想看,延时队列,不就是想要消息延迟多久被处理吗,TTL 则刚好能让消息在延迟多久之后成为死信,另一方面,成为死信的消息都会被投递到死信队列里,这样只需要消费者一直消费死信队列里的消息就完事了,因为里面的消息都是希望被立即处理的消息。

2022-10-30 17:05:42 23

原创 这篇数据库设计规范建议,我必须分享给你

再具体点, 比如股票表(股票编号, 股票名称,股票市场,股票交易手续费),这个表就不符合第三范式,因为股票交易手续费是依赖股票市场来确定, 需要再拆分为(股票编号, 股票名称)和(股票市场,股票交易手续费)多张表。数据库是一个项目的最底层设计, 如果设计不清晰,结构模糊, 规范混乱,是很难做成一个成功的项目,而这些需要我们从最基本的开始,对数据库有一套明确的设计规范。再细化:有上面的清晰脉络, 再去填充对象的属性, 仔细考量, 适当加入反范式设计, 冗余一些常用信息,这些就需再仔细去细化, 斟酌与权衡。

2022-10-27 09:49:27 40

原创 CAT链路追踪从入门到实战(看这一篇就够了)

1、为什么要学习?从单体架构到微服务架构的演变, 一个业务请求往往会流转多个服务, 大型互联网产品服务架构尤为复杂,腾讯的抢红包服务, 阿里的交易支付服务, 可能就流转成百上千个服务节点, 面对众多服务, 如何监控管理?服务请求一旦出现问题, 如何快速定位问题?如何保障服务的高可用, 做到全面的监控与预警?如何分析统计服务的运行状况?看下链路监控产品如何解决这些问题。2、什么是CAT?CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。

2022-10-26 21:59:32 79

原创 那些年接到奇怪的需求,如何确定需求?

电商所有模块中,订单系统是非常核心的一个子系统,决定了整个流程能不能顺畅的执行,起着承上启下的作用,其他模块都是围绕订单系统进行构建的。订单系统出问题,或者功能流程设计不完善、不准确,将会造成整个电商系统整体或局部业务流转不顺畅,甚至导致项目的失败。订单系统的作用是:管理订单类型、订单状态,收集关于商品、优惠、用户、收货信息、支付信息等一系列的订单实时数据,进行库存更新、订单下发等一系列动作。订单系统业务的基本模型涉及用户、商品(库存)、订单、付款。

2022-10-25 17:12:20 32

原创 设计模式在MyBatis中体现

我们都知道3类23中设计模式,但是大多数停留在概念上面,很抽象,不知道我们写代码过程中哪些地方运行了哪些设计模式,今天我们来看看MyBatis中运用了哪些设计模式先看看大纲总体LogFactoryLogFactorySqlNode。

2022-10-23 14:30:15 206 5

原创 今天跟大家聊一聊软件架构(图文并茂)

应用之间的服务存在互相调用的情况,但有些场景下,并不需要同步调用,比如某个业务完成后,需要短信通知对方,而短信接收的时间晚几秒钟都是可以接受的,此时就不需要同步处理了,我们可以使用消息队列,把发送短信的内容扔到消息队列中,达到异步处理的效果,从而增强业务系统的性能,此时对于服务之间也达到了解耦的功能,服务之间的依赖减少了。公司发展的初期,资金少、用户少,需要的软件产品的数据和并发量都比较小,这个时期大多数的软件系统只需要单一服务器就可以满足需求,所有的业务逻辑都在单一应用系统,单应用、单数据库。

2022-10-23 14:28:50 266

架构师官方教材.zip

系统架构师相关资料

2021-10-13

python语言程序设计(第二版).pdf

python二级指定教材

2021-09-07

空空如也

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

TA关注的人

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