- 博客(749)
- 资源 (4)
- 收藏
- 关注
转载 java 中 Monitor对象是存储在哪里的 java monitor机制
JVM规范关于Monitor是这么说的。“在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的”“为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁”“锁住了一个对象,就是获得对象相关联的监视器”Synchronized在古老的年代被成为重量级锁。但是java1.6对其进行了优化。为了减少获得锁和锁的释放带来的开销,java1.6为synchronized关键字实现了偏向锁,轻量级锁和重量级锁几种状态。首先,必须了解JVM中的对象头。
2025-01-02 17:49:04
76
转载 线程状态举例说明
每 个 Monitor在某个时刻,只能被一个线程拥有,该线程就是 “Active Thread”,而其它线程都是 “Waiting Thread”,分别在两个队列 “ Entry Set”和 “Wait Set”里面等候。在 “Entry Set”中等待的线程状态是 “Waiting for monitor entry”,而在 “Wait Set”中等待的线程状态是 “in Object.wait()”。”中的 timed_waiting 指等待状态,但这里指定了时间,到达指定的时间后自动退出等待状态;
2025-01-02 17:35:58
36
转载 超详细解释MyBatis与Spring的集成原理
Spring集成Mybatis时,有几个关键对象,弄清楚这几个关键对象,也就清楚是如何集成的了。该对象用于向Spring容器注册SqlSessionFactory的bean,所以Spring集成MyBatis时,SqlSessionFactory存在于Spring容器中,生命周期与Spring应用一致。
2024-12-26 18:17:19
60
转载 Java动态代理原理图解(附2种实现方式详细对比)
按照代理的创建时期,代理类可以分为两种:静态代理:由程序员创建或特定工具自动生成源代码,再对其编译,在程序运行前,代理类的.class文件就已经存在了。动态代理:在程序运行时,可以运用反射机制动态创建代理类的.class文件。动态代理类与静态代理类最主要不同的是,代理类的字节码不是在程序运行前生成的,而是在程序运行时再虚拟机中程序自动创建的。实现动态代理的方式很多,比如JDK 自身提供的动态代理,就是主要利用了上面提到的反射机制。
2024-12-26 13:15:51
42
转载 kafka核心配置
用作指标报告器的类的列表。metricsreporter接口实现了org.apache.kafka.common.metrics.MetricsReporter接口,该接口允许插入将在创建新度量时得到通知的类。JmxReporter始终包含在注册JMX统计信息中。实现接口org.apache.kafka.clients.producer.Partitioner,默认值:org.apache.kafka.clients.producer.internals.DefaultPartitioner。
2024-12-23 11:21:53
153
原创 4A架构之间的关系和集成
价值流往往就是顶端的流程,业务能力的分解往往是2~4级,对于详细的业务流程的分解往往就到了5~7级,只是原来在业务架构里面,我们没有太强调流程架构,实际上从架构的Y模型里面可以看到,在业务架构里面是有两个视角,好了,应用功能实现的时候,它一定会涉及到数据域的逻辑模型的支撑,所以说这个地方也会有关键的一条线,好了应用功能最终要落地到it的基础设施,或者是基础设施的一个架构,这个就会涉及到了技术架构。对于5~7级的流程,我们详细的去做流程建模和梳理的时候,里面就是有三个关键的元素,
2024-11-15 15:50:48
957
转载 VMware虚拟机硬盘扩容详细图文教程
这篇文章主要给大家介绍了关于VMware虚拟机硬盘扩容的相关资料,现在做开发时虚拟机的使用很多,当初创建虚拟机时开辟的磁盘空间比较小,随着虚拟机安装的软件越来越多所占的空间也越来越大,导致虚拟机的磁盘空间越来越少,甚至不够用,需要的朋友可以参考下−宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取虚拟机硬盘扩容:注:如果扩容不了,把创建的快照删掉即可进行扩容,扩容好后建议先创建好快照在进行操作(一般没扩容的只有sda和sda1)(回车即可)输入y(需要将磁盘的类型转化为Linux LVM之后
2024-06-21 11:38:32
10010
2
转载 数据仓库选型建议
可以发现在这样的诉求下类似于 Presto,Doris,ClickHouse 就很难满足这样的要求,而像 Hive,Spark 这类计算引擎依托于 Yarn 做资源管理,对于分布式任务的重试,调度,切换有着非常可靠的保证。一旦发生任务异常,例如网络抖动引起的任务失败,机器宕机引起的节点丢失,再次重试所消耗的时间几乎等于全新重新提交一个任务,在分布式任务的背景下,任务运行的时间越长,出现错误的概率越高,对于此类组件的使用业界最佳实践的建议也是不超过 30 分钟左右的查询使用这类引擎是比较合适的。
2024-06-19 18:54:08
336
转载 腾讯欧拉t-Metric指标中台实践
导读腾讯欧拉平台是腾讯 PCG(平台与内容事业群)推出的数据治理平台化解决方案,目前已在腾讯内部广泛使用。腾讯欧拉 t-Metric 指标中台基于 DataOps 理念,结合 Headless BI 实践,提供一站式指标建、管、查、用能力,以提升指标生产和治理水平,沉淀企业安全可靠、使用便捷、质量可信的数据资产。t-Metric 指标中台主要为用户提供配置驱动的指标生产方式、统一查询服务、以及完善的指标生态等核心能力。本次分享题目为腾讯欧拉 t-Metric 指标中台 Headless BI 实践,具体
2024-06-19 18:46:59
425
转载 深入理解 Linux 的 I/O 系统
是操作系统对文件的缓存,用来减少对磁盘的 I/O 操作,以页为单位的,内容就是磁盘上的物理块,页缓存能帮助程序对文件进行顺序读写的速度几乎接近于内存的读写速度,主要原因就是由于 OS 使用 PageCache 机制对读写访问操作进行了性能优化。在 Linux 系统中,传统的访问方式是通过 write() 和 read() 两个系统调用实现的,通过 read() 函数读取文件到到缓存区中,然后通过 write() 方法把缓存中的数据输出到网络端口。中间的黑色实线是用户态和内核态的分界线。
2024-05-06 15:11:39
104
2
转载 基于PostgreSQL的时序数据库TimescaleDB的基本用法和概念
TimescaleDB是一个在PostgreSQL之上构建的时序数据库,它利用了关系型数据库的成熟性和灵活性,并针对时序数据进行了优化。TimescaleDB通过使用分区表(hypertable)和连续聚集表(continuous aggregate)来处理时序数据,使得数据的存储和查询更加高效。
2024-04-18 14:14:17
4468
转载 InfluxDB 的存储机制解析
尽管InfluxDB自发布以来历时三年多,其存储引擎的技术架构已经做过几次重大的改动, 以下将简要介绍一下InfluxDB的存储引擎演进的过程。以上就是对InfluxDB的存储机制的粗浅解析,由于目前所见的只有单机版的InfluxDB,所以尚不知道集群版的InfluxDB在存储方面有哪些不同。但是,即便是这单机版的存储机制,也对我们设计时序数据库有着重要的参考意义。
2024-04-18 12:00:03
577
转载 Hive 与mysql区别
视图是一种使用查询语句定义的虚拟表,是数据的一种逻辑结构,创建视图时不会把视图存储到磁盘上,定义视图的查询语句只有在执行视图的语句时才会被执行。不要把 Hive 想的多么神秘,你可以用简单的load方式将数据加载到创建的表里,也可以直接用hadoop指令将数据放入到指定目录,这两种方式都可以直接让你通过SQL查询到数据。数据分布不平衡,某些地方特别多,某些地方又特别少,导致的在处理数据的时候,有些很快就处理完了,而有些又迟迟未能处理完,导致整体任务最终迟迟无法完成,这种现象就是数据倾斜。
2024-04-01 14:25:47
1987
转载 图解Kafka Producer常用性能优化配置参数
reconnect.backoff.max.ms:重建链接的最大等待时长,默认1s,连续两次对同一个连接建立重连,等待时间会在reconnect.backoff.ms的初始值上成指数级递增,但超过max后,将不再指数级递增。key.serializer:消息key的序列化策略,org.apache.kafka.common.serialization接口实现类,注意别导错包了。reconnect.backoff.ms:重新建立链接的等待时长,默认50ms,属于底层网络参数,基本不关注。
2024-03-27 11:06:54
148
转载 RBAC用户、角色、权限、组设计方案
RBAC(Role-Based Access Control )基于角色的访问控制。在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的公认。RBAC认为权限的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。
2024-03-22 11:05:10
1395
转载 数据仓库体系
先举个例子:对于用户来说,一个用户有一个身份证号,一个户籍地址,多个手机号,多张银行卡,那么与用户粒度相同的粒度属性有身份证粒度,户籍地址粒度,比用户粒度更细的粒度有手机号粒度,银行卡粒度,存在一对一的关系就是相同粒度。在一堆的数据中怎么确认哪些是维度属性呢,如果该列是对具体值的描述,是一个文本或常量,某一约束和行标识的参与者,此时该属性往往是维度属性,数仓工具箱中告诉我们牢牢掌握事实表的粒度,就能将所有可能存在的维度区分开,并且要确保维度表中不能出现重复数据,应使维度主键唯一。
2024-03-08 18:05:52
156
原创 logn的感性认识
二分查找的时间复杂度是logn,假设问题规模是100万的数据,要查找的数字不在这100万数据内,最终需要的查找次数是log100万。也就是说利用二分查找,从100万的数据规模内,查找一般,最终需要的次数是20。每次查找,问题规模减半,2的x次方=100万,x的解近似是20。
2024-02-21 15:15:33
449
原创 redis为什么使用跳跃表
在高并发的情况下,树形结构需要执行一些类似于 rebalance 这样的可能涉及整棵树的操作,相对来说跳跃表的变化只涉及局部 _(下面详细说)_这样的树形结构,为什么 Redis 不使用这样一些结构呢?首先,因为 zset 要支持随机的插入和删除,所以它。基于以上的一些考虑,Redis 基于。,关于排序问题,我们也很容易就想到。的论文做出一些改进后采用了。
2024-02-21 14:43:55
443
转载 常见数据结构详细图解、树的高度、深度、层数、跳表、二叉搜索树、平衡二叉树、红黑树、B树、B+树
二叉搜索树也叫二叉查找树。它是一种比较特殊的二叉树。
2024-02-21 12:32:50
1373
转载 跳跃表的原理和实现(Java)
/ data// links可以看到节点模型主要分为2个部分。data 部分包含具体的存储数据,这里为了不引入其他杂乱的问题,使用 Integer 作为 key 的类型,Object 作为value 的类型。links 部分包含4个指针,分别是 up、down、left、right,单从名字上就能够明白它们的作用。
2024-02-21 12:12:22
197
转载 【数据结构】红黑树与跳表
skiplist本质上也是一种查找结构,用于解决算法中的查找问题(Searching),即根据给定的key,快速查到它所在的位置(或者对应的value)。我们在《Redis内部数据结构详解》系列的第一篇中介绍dict的时候,曾经讨论过:一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表。但skiplist却比较特殊,它没法归属到这两大类里面。
2024-02-21 11:05:58
365
转载 window10上配置Hadoop
Shell/Hadoop fs/HDFS/dfs的一些相关操作,相当于是在集群内部,跟集群的一些客户端打交道在这里插入图片描述本文目标:希望在Windows环境对远程的集群进行一个客户端访问,于是现在就在Windows环境上写代码,写HDFS客户端代码,远程连接上集群,对它们进行增删改查相关操作。在这里插入图片描述。
2024-02-18 11:29:52
308
1
转载 关于OLAP引擎你所需要知道的一切
MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。细心的读者可以已经发现了,上面的提到的技术都是在特定场景下增强的,单有的时候我们其实场景还不是很明确,有没有稍微通用的“万金油”方案,方便我们以后扩展和演进呢,这就需要回到Hadoop生态的通用方案了。
2024-02-06 10:37:15
447
转载 一文读懂OLAP
OLAP(On-line Analytical Processing,联机分析处理)是一种用于分析和查询大规模数据集的计算机处理技术。OLAP技术主要用于多维数据分析和数据挖掘,通过提供多维数据模型和多维查询功能,帮助用户从不同角度和层次上对数据进行分析和查询,侧重分析决策。BI模块数据可视化组件。为用户提供拖拽式的数据分析操作页面,以及各种报表、图表的展示。本质上它就类似一个客户端,通过配置连接到各种OLAP引擎上(可以直白的理解为各种DB)来完成数据的分析和查询。
2024-02-06 09:28:54
222
原创 Wireshark分析tcp交互过程
Tcp段长度464字节,seq=2610,ack=1338,next_seq=3074。Tcp段长度494字节,seq=1099,ack=352,next_seq=1593。Tcp段长度523字节,seq=576,ack=176,next_seq=1099。Tcp段长度176字节,seq=352,ack=1593,next_seq=528。Tcp段长度为175字节,seq=1,ack=576,next_seq=176。Tcp段长度为575字节,seq=1,ack=1,next_seq=576。
2023-11-08 15:24:54
1464
转载 零拷贝技术分类
Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 因为少了一次内存的拷贝, 因此 CPU 的效率就得到的提升.在 OS 层面上的Zero-copy通常指避免在 用户态(User-space) 与内核态(Kernel-space) 之间来回拷贝数据。Netty 中的 Zero-copy 与 OS 的 Zero-copy 不太一样, Netty的Zero-coyp。
2023-11-01 11:27:19
507
原创 语义化版本 2.0.0
主版本号:当你做了不兼容的 API 修改,次版本号:当你做了向下兼容的功能性新增,修订号:当你做了向下兼容的问题修正。先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的包越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。在依赖高的系统中发布新版本包可能很快会成为噩梦。如果依赖关系过高,可能面临版本控制被锁死的风险(必须对每一个依赖包改版才能完成某次升级)。
2023-10-09 08:50:10
218
转载 API网关
在微服务架构体系里面,我们一般会使用到微服务网关或叫API网关。大家都比较清楚,在微服务架构体系下本身是去中心化的架构,通过服务注册中心来实现服务注册发现和消费调用,那么为何又需要使用API网关?在传统的ESB总线进行服务集成的时候我们就经常谈到一个概念就是位置透明,即需要屏蔽底层业务模块提供API接口服务地址信息,并实现多个微服务API接口的统一出口。即类似设计模式里面经常谈到的门面模式。如何给API网关一个定义?
2023-09-28 11:09:14
547
原创 微服务架构转型
微服务转型-架构规划业务架构和数据架构应用架构的规划和建设微服务转型-服务拆分微服务转型-和敏捷方法论集成微服务转型-实施前技术储备微服务转型-实施步骤
2023-09-28 09:31:53
262
原创 微服务架构改造案例
我们采用禅道项目管理工具统一敏捷研发管理,需求拆分到用户故事点实现端到端管理,形成产品-微服务两级的产品架构和版本管理体系,实现和持续集成和版本发布过程集成。我们首先进行粗颗粒度的模块拆分和集成分析,在分析完成后储备可以明确的识别出类似报账,资金,发票,电子凭证,影像,预算,ERP。平台的集成,即最终的编译构建完成的内容形成镜像并放到镜像仓库,后续部署,环境迁移,资源扩展基于镜像仓库进行快速的拷贝和复制。架构很难进行更好的多团队分工,同时在异地协同过程中对于开发,测试,前方实施经常出现大量的无效沟通情况。
2023-09-26 13:49:33
544
转载 Redis源码剖析——线程模型
这也是我们常说 Redis 是单线程的原因。但是,的,Redis 在启动的时候,是这些任务需要创建单独的线程来处理,因为这些任务的操作都是很耗时的,如果把这些任务都放在主线程来处理,那么 Redis 主线程就很容易发生阻塞,这样就无法处理后续的请求了。后台线程相当于一个消费者,生产者把耗时任务丢到任务队列中,消费者不停轮询这个队列,拿出任务就去执行对应的方法即可。
2023-09-08 17:30:31
127
转载 深度解析Redis线程模型设计原理
当Redis服务器准备好给客户端的响应数据后,会将socket的AE_WRITABLE事件和命令回复处理器关联,当客户端准备好读取响应数据时,会在socket产生一个AE_WRITABLE事件,由对应命令回复处理器处理,即将准备好的响应数据写入socket,供客户端读取。连接Redis,对连接服务器的各个客户端进行应答,就需要将socket映射到连接应答处理器写数据到Redis,接收客户端传来的命令请求,就需要映射到命令请求处理器从Redis读数据,向客户端返回命令的执行结果,就需要映射到命令回复处理器。
2023-09-08 16:12:31
84
转载 CentOS7安装VMware Tools——超详细
1.菜单栏安装VMware Tools:点击VMware菜单栏【虚拟机】,选择【安装VMware Tools】;如果安装了早期版本的VMware Tools,则菜单项为[更新VMware Tools]。
2023-08-11 12:55:44
5266
全文检索详细设计文档.docx
2020-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人