自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(386)
  • 资源 (1)
  • 收藏
  • 关注

原创 电脑频繁发出滴咚、咚咚的提示音及解决方案

如果声音频繁发出,影响工作或电脑的正常使用,对于非关键提示音可以取消掉,具体操作步骤如下,本方案除了适用于设备接触不好,经常连接上、断连的场景,对于其他用户想要取消的声音,皆可按如下方法操作,只是选择取消的提示音不同。4. 打开“声音”的设置窗口,点击菜单栏的【声音】,在程序事件中,向下滚动找到“设备中断连接”,将之选中,然后点击第三步处的“声音”,选择下拉框中的“无”即可,问题即可解决。2. 打开如下界面后,点击个性化中的“主题”,再点击右边红色框的“声音”打开。

2024-10-20 23:47:46 304

转载 【深入AQS原理】我画了35张图就是为了让你深入 AQS

谈到并发,我们不得不说,所谓的AQS即是抽象的队列式的同步器,内部定义了很多锁相关的方法,我们熟知的Semaphore等都是基于AQS来实现的。我们先看下AQS相关的UML图:image.png思维导图:image.png上面已经介绍了AQS所提供的核心功能,当然它还有很多其他的特性,这里我们来继续说下Condition这个组件。Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()notify()实现线程间的协作,相比使用Object的wait()

2024-07-23 16:30:40 83

转载 RocketMQ之消费重试以及原理

对于顺序消息,当消费者消费消息失败后,消费者会在本地自动不断进行消息重试,每次间隔时间为 1 秒,重试最大值是 Integer.MAX_VALUE。对于无序消息(普通、定时、延时、事务消息)当消费者消费消息失败时可以通过设置返回状态达到重试的目的。广播模式下消息队列RocketMQ保证每条消息至少被每台客户端消费一次,但是并不会对消费失败的消息进行失败重投,因此业务方需要关注消费失败的情况。当消费者消费消息失败后,消费者会在本地自动不断进行消息重试,每次间隔时间为 1 秒,重试最大值是 Integer.MA

2024-07-22 11:17:49 1065

转载 中台定义:当我们谈中台时到底在谈些什么?

讲了这么关于中台的来龙去脉,以及种种表现形式,也讲了我对于企业平台化与中台化的理解,但你可能仍然会觉得比较抽象,所以我想,一定要试着给中台下个定义。为什么需要一个定义呢?企业级能力复用平台。很简单,是不是有点失望?为什么会有那么多中台?中台化与平台化的区别是什么?中台化和服务化的区别是什么?中台该怎么建设?……这 9 个字看起来简单,重要的是其背后对「中台」价值的阐释,下面就让我为你一一拆解来看。今天我们从企业为什么需要平台化入手,讨论了企业又为什么需要建中台。

2024-07-10 11:31:09 142

转载 数据表设计

比如用户实体属性有:姓名、性别、年龄、身高、三围等。在设计初步E-R图时,要尽量充分地把组织中各部门对信息的要求集中起来,而不需要考虑数据的冗余问题。逻辑结构设计的任务是把建立的全局E-R图,转换成关系模式,就是生成数据库中的表,并确定表的字段。这个阶段,需要决定数据表的名字、字段名字,字段类型的选择,主键,索引,表引擎,表字符集等内容。在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依赖需求对ER模式进行优化。在上面实体之间的关系的基础上,将实体、实体的属性和实体之间的联系转换为关系模型。

2024-06-21 01:14:12 67

转载 云原生时代,程序员应该掌握哪些能力?

到底什么是云原生呢?直到现在也没有一个确切的定义,但有两个常见的错误观点:云原生等同于容器;云原生就是在云上部署应用程序。我们可以先从云原生(CloudNative)这个词语来看,其可以拆分为Cloud 可以理解为应用程序部署在云中;Native 可以理解为应用程序从设计之初就是原生为云而设计的,需要充分利用和发挥云平台的弹性+分布式优势,提升云上资源利用率、缩短开发周期。简单来说,云原生就是在云中构建、运行应用程序的一套完整的技术体系和方法论。这里的技术体系和方法论就目前来说指的是。

2024-05-21 18:45:42 56

转载 双指针算法基本原理和实践

双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。),从而在某些情况下能够简化一些运算。在LeetCode题库中,关于双指针的问题还是挺多的。截图来之 LeetCode 中文官网。

2024-05-15 02:37:00 67

原创 经典算法总结

基本参考自leetcode官方写法,希望能写出简洁、高效、标准的模式。

2024-05-14 15:41:28 393

转载 RMI与RPC的区别

转自:RMI与RPC的区别-腾讯云开发者社区-腾讯云

2024-05-13 16:54:03 55

转载 TPS、QPS、吞吐量、并发用户数区别及理解(二)

一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达 到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下 降。其中C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)可以用下面的方法计算。

2024-05-13 16:46:21 101

转载 深入挖掘 FST 快速序列化压缩内存的利器的特性和原理

FST 序列化全称是 Fast Serialization Tool,它是对 Java 序列化的替换实现。JDK 提供的序列化提升了 10 倍,体积也减少 3-4 倍多支持堆外 Maps,和堆外 Maps 的持久化支持序列化为 JSON。

2024-04-11 02:35:05 162

转载 Dubbo Serialize 层的多种序列化算法

在本课时,我们首先介绍了 Java 序列化的基础知识,帮助你快速了解序列化和反序列化的基本概念。然后,介绍了常见的序列化算法,例如,Arvo、Fastjson、Fst、Kryo、Hessian、Protobuf 等。最后,深入分析了 dubbo-serialization 模块对各个序列化算法的接入方式,其中重点说明了 Hessian2 序列化方式。

2024-04-11 01:52:29 126

转载 应用技术架构 —— 单体架构 & 垂直架构 & SOA 架构

数字化 IT 从业者知识体系》的初衷是为 IT 从业者提供的系统性的数字化知识体系,内容涵盖管理实践、工程实践、技术实践三个层次,涉及软件开发方法、应用技术架构、应用部署与管理、软件交付与协作四大方面。随着互联网的出现和发展,软件用户的数量的急剧增长,应用的用户规模指数级增长,具有海量用户的应用变得普遍。1968 年的软件危机产生了软件工程,并且催生了面向对象的高级语言,例如 1972 的 C 语言,同时产生了我们的单体式的技术架构,单体架构的特点是所有代码逻辑都耦合在一个项目中。

2024-04-07 18:46:50 269

转载 业务架构模式的演进(单体架构、垂直架构、SOA架构、微服务架构)

面向服务架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。这个概念有些难理解,我们可以从垂直架构的不足来理解SOA架构做了什么。同样都是对系统进行拆分,SOA在垂直架构的基础上,抽离出重叠的功能作为公共的服务,来解决重复造轮子的问题。

2024-04-07 18:45:06 155

转载 【进阶篇】Redis实战之Redisson使用技巧详解,干活!

ps:创建 RedissonClient 对象实例的方式多钟多样,可以直接通过在代码中设置 Redis 服务的相关参数创建,也可以通过加载 JSON 格式、 YAML 格式或者 Spring XML 配置文件来创建,详细的参数配置可用移步上文提到的 Redisson 开发文档。但是两者并没有进一步深化,只给了你操作 Redis 数据库的工具,而 Redisson 则是基于 Redis、Lua 和 Netty 建立起了一套的分布式解决方案,比如分布式锁的实现,分布式对象的操作等等。

2024-03-31 00:49:12 4347

转载 【有料】@Transactional 竟也能解决分布式事务?

Spring的本地事务大家都很了解,也经常用,并不支持的跨库事务,那么为什么Sharding-JDBC中却能支持呢?,因此在非硬件、网络的情况下都是可以正常回滚的,一旦因为网络、硬件故障,可能导致某个数据源。)是无法保证跨库的分布式事务,不要被Sharding-JDBC的假象迷惑了。此时很多人都迷糊了,Sharding-JDBC中的本地事务真的是可以保证。拆分成对应数据源的SQL,然后在不同数据源中的执行,最终会提交或者回滚。,这个类就不必多解释了,在学习JDBC的时候应该都有所接触,直接和。

2024-01-05 17:11:38 218

转载 【有料】mysql中B+Tree和B-Tree的区别

由于B+树的非叶节点不存放实际数据,因此每一节点所能容纳的元素数量比B-树多,树高比B-树小,其优点是减少了磁盘的访问次数。虽然B+树找到记录所需的比较次数比B-树多,但一次磁盘访问的时间相当于数百次内存比较的时间,所以实际上B+树的性能可能会更好,而B+树的叶节点也可以用指针连接在一起,方便顺序遍历(例如查看一个目录下的所有文件,一次磁盘访问的所有。而B+树中每一个记录的查找时间基本相同,都需要从根节点到叶节点,并且在叶节点中再比较一下关键字。在这一点上,B-树的性能似乎比B+树好,

2024-01-03 10:06:36 350

转载 Spring-AOP-基于注解的AOP通知执行顺序

通知的选取规则五大通知类型中,环绕通知功能最为强大,因为。如果需要记录异常信息,使用异常通知。其他通知,只能做记录工作,不能做处理,所以执行顺序其实对整个程序影响不大,没有必要太深究。

2023-11-28 19:23:18 733

转载 多种方法解决java.util.NoSuchElementException:java.util.NoSuchElementException: No value present error in j

你学到了多种方法来解决java8流中的错误。转自:https://juejin.cn/post/7131915267398975519。

2023-11-19 04:08:05 5147

转载 redis cluster集群管理工具redis-trib.rb命令小结-运维笔记

设置了--master-id,则以该节点作为新节点的master,如果没有设置--master-id,则调用get_master_with_least_replicas方法,寻找slave数量最少的master节点。没有传递–weight的节点的权重默认为1。--from :需要从哪些源节点上迁移slot,可从多个源节点完成迁移,以逗号隔开,传递的是节点的node id,还可以直接传递--from all,这样源节点就是集群的所有节点,不传递该参数的话,则会在迁移过程中提示用户输入。

2023-11-16 01:29:26 506

转载 【有料】dubbo负载均衡之RoundRobin

承接上文,本文继续来看dubbo的加权RoundRobin负载均衡策略。可以看到,上面的策略能够一定程度上保证请求不会持续打在一个节点上,相对平均。dubbo的RoundRobin其实参考了nginx的负载均衡,逻辑类似,下面来看下dubbo的实现。那么,有没有一种方式,可以让请求平均但不连续的打到某一个节点?考虑有三个节点 A(5)、B(1)、C(1),括号内是该节点的服务负载能力,假设有10个请求(R),下面是普通RoundRobin的做法。注:参考 dubbo源码版本 2.7.1,欢迎指正。

2023-11-08 12:34:19 234

转载 RPC框架:从原理到选型,一文带你搞懂RPC

而 Spring Cloud 就像品牌机,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。Spring Cloud 基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。

2023-10-19 17:26:03 20389 1

转载 【有料】Spring IoC实现原理(附思维导图)

这里,再次做一个知识点的总结:IoC 是一种概念和设计思想,Guice,Spring,Jboss都实现了这种理念,Spring将其发扬光大Spring IoC 容器实现基于反射技术IoC 的3种类型,Spring IOC 支持2种,构造函数注入和属性注入Spring 容器工厂分为两种:ApplicationContext、BeanFactory。异同点:1. BeanFactory 在启动的时候不会去实例化 Bean,ApplicationContext 在启动的时候会。

2023-10-17 11:17:30 332

转载 【有料】面试必杀技,讲一讲Spring中的循环依赖

Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的是为了让你在之后的所有面试中能多一个必杀技,专门用来绝杀面试官!本文的核心思想就是,当面试官问:“请讲一讲Spring中的循环依赖。”的时候,我们到底该怎么回答?主要分下面几点什么是循环依赖?

2023-10-15 03:35:27 91

转载 程序员必备基础:加签验签

A公司这边的商户,发起转账时,A公司先用C公司的公钥,对请求报文加密,加密报文到达C公司的转账系统时,C公司就用自己的私钥把报文揭开。假设在加密的报文在传输过程中,被中间人Actor获取了,他也郁闷,因为他没有私钥,看着天鹅肉,又吃不了。本来想修改报文,给自己账号转一个亿的,哈哈。A在发起转账时,用Actor的公钥,对请求报文加密,加密报文到在传输过程,Actor又截取了,这时候,他用自己的私钥解密,然后修改了报文(给自己转一个亿),再用C的公钥加密,发给C公司,C公司收到报文后,继续用自己的私钥解密。

2023-10-10 11:13:27 2462

转载 【有料】一口气说出前后端 10 种鉴权方案~

最经典的莫过于 APP 内嵌 H5 的使用场景,当用户从 APP 进入内嵌的 H5 时,我们希望 APP 内已登录的用户能够访问到 H5 内受限的资源,而未登录的用户则需要登录后访问。短信验证码的作用就是证明当前操作页面的用户与输入手机号的用户为相同的人,那么实际上只要我们能够获取到当前手机使用的手机卡号,直接使用这个号码进行登录,不需要额外的操作,这就是。对于两个网站 A 和 B,在登录 A 网站的时候用 B 网站的帐号密码,就是联合登录,或者登录 B 网站的时候使用 A 网站的帐号密码,也是联合登录。

2023-09-25 12:41:21 809

转载 【有料】类的静态变量和静态方法能否被子类继承?

如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。//结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。

2023-08-13 03:33:28 1572

转载 【有料】JDK动态代理和CGLib动态代理的对比

JDK动态代理类实现了InvocationHandler接口,重写的invoke方法。JDK动态代理的基础是反射机制(method.invoke(对象,参数))Proxy.newProxyInstance()。

2023-07-14 19:46:17 153

转载 常见缓存问题处理-缓存热点key

希望通过本文,大家明白如何处理生产上遇到的热key问题。

2023-06-13 01:31:02 581

转载 【有料】面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!

看完 RocketMQ 不丢消息处理办法,回头再看这篇kafka,有没有发现,两者解决思路是一样的,区别就是参数配置不一样而已。所以下一次,面试官再问你 XX 消息队列如何保证不丢消息?如果你没用过这个消息队列,也不要哭,微笑面对他,从容给他分析那几步会丢失,然后大致解决思路。最后我们还可以说出我们的思考,虽然提高消息可靠性,但是可能导致消息重发,重复消费。所以对于消费客户端,需要注意保证幂等性。但是要注意了,这时面试官可能就会跟你的话题,让你来聊聊如何保证幂等性,一定先想好再说哦。什么?

2023-06-12 01:41:36 386

转载 【有料】分布式服务限流实战,已经为你排好坑了

可以看到,在 0.1 秒内请求的 30 次请求中,除了初始的 10 个令牌以及随时间恢复的 1 个令牌外,剩下 19 个没有取得令牌的请求均返回了 false,限流脚本正确的将超过限制的请求给判断出来了,业务中此时就可以直接返回系统繁忙或接口请求太过频繁等提示。但实际上我们可以通过对限流两次请求之间的时间和令牌添加速度来计算得出上次请求之后到本次请求时,令牌桶应添加的令牌数量。生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行;

2023-05-31 19:29:11 215

转载 Github点赞接近100k的SpringBoot学习教程+实战推荐!牛批!

前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。然后,vhr(微人事)这个项目的话,是一个前后端分离的人力资源管理系统,后端基于 SpringBoot 开发,前端基于 Vue 开发,并且,项目加入常见的企业级应用所涉及到的技术点,例如 Redis、RabbitMQ 等。基于 Spring Boot 2.X 的开源项目。

2023-05-26 15:30:52 477

转载 Spring Ioc 实例化 Bean 对象有几种方式?

当我们指定Spring使用静态工厂方法来创建Bean实例时,Spring将先解析配置文件,并根据配置文件指定的信息,**通过反射调用静态工厂类的静态工厂方法,并将该静态工厂方法的返回值作为Bean实例,**在这个过程中,Spring不再负责创建Bean实例,方式二:利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法先进行统一的处理等等。1、可用于集成其他框架的bean创建管理方法。GoodsService实体类。

2023-05-25 16:38:34 75

转载 【略有料】BeanFactory 简介以及它 和FactoryBean的区别(阿里面试)

以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取。存在的问题:层与层之间的依赖。service层要用dao层对象需要配置到xml配置文件中,至于对象是怎么创建的,关系是怎么组合的都交给了spring框架去实现。

2023-05-20 01:53:55 630

转载 mysql中utf8和utf8mb4区别

对于表行格式是 COMPACT或 REDUNDANT,InnoDB有单个索引最大字节数 768 的限制,而字段定义的是能存储的字符数,比如 VARCHAR(200) 代表能够存200个汉字,索引定义是字符集类型最大长度算的,即 utf8 maxbytes=3, utf8mb4 maxbytes=4,算下来utf8和utf8mb4两种情况的索引长度分别为600 bytes和800bytes,后者超过了768,导致出错:Error 1071: Specified key was too long;

2023-05-11 19:52:16 1393

转载 【有料】一文看懂MySQL的异步复制、全同步复制与半同步复制

(3) Master服务器接收到来自Slave服务器的IO线程的请求后,其上负责复制的IO线程会根据Slave服务器的IO线程请求的信息分批读取指定binlog日志文件指定位置之后的binlog日志信息,然后返回给Slave端的IO线程。MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从库上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

2023-05-11 17:20:15 735

转载 【有料】MySQL的死锁系列- 锁的类型以及加锁原理

疫情期间在家工作时,同事使用了 insert into on duplicate key update 语句进行插入去重,但是在测试过程中发生了死锁现象:由于开发任务紧急,只是暂时规避了一下,但是对触发死锁的原因和相关原理不甚了解,于是这几天一直在查阅相关资料,总结出一个系列文章供大家参考,本篇是上篇,主要介绍 MySQL 加锁原理和锁的不同模式或类型的基本知识。后续会讲解常见语句的加锁情况和通过 MySQL 死锁日志分析死锁原因。

2023-05-11 02:41:05 195

转载 【有料】面试准备 -- Redis 跳跃表

如下,我们遍历了 level 3 后,记录下当前处在 5 这个节点,那接下来遍历是 5 往后走,发现 100 大于目标 66,所以还是继续下沉。跳跃表的查询是从顶层往下找,那么会先从第顶层开始找,方式就是循环比较,如过顶层节点的下一个节点为空说明到达末尾,会跳到第二层,继续遍历,直到找到对应节点。当然,跳跃表的修改,也是和删除查找类似,只不过是将值修改罢了,就不继续介绍了。跳跃表的删除和查找类似,都是一级一级找到相对应的节点,然后将 next 对象指向下下个节点,完全和链表类似。

2023-05-10 17:12:47 356

转载 【有料】Raft协议实战之Redis Sentinel的选举Leader源码解析

Raft协议是用来解决分布式系统一致性问题的协议,在很长一段时间,Paxos被认为是解决分布式系统一致性的代名词。但是Paxos难于理解,更难以实现,诸如Google大牛们开发的分布式锁系统Chubby都遭遇了很多坑。Raft协议设计的初衷就是容易实现,保证对于普遍的人群都可以十分舒适容易的去理解。另外,它必须能够让人形成直观的认识,这样系统的构建者才能够在现实中进行必然的扩展。本文从Redis Sentinel集群选择Leader的具体流程和源码分析,描述Raft协议中的选举Leader算法。

2023-05-10 16:59:41 692

转载 【有料】Java NIO - 基础详解

新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。Standard IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块,块被读入内存之后就是一个byte[],NIO一次可以读或写多个字节。

2023-05-05 01:09:08 108

quartusII 8.1 破解软件

专门用于quartus II 破解,一键破解,永久使用,yes

2014-05-11

空空如也

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

TA关注的人

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