java技术圈 为您找到相关结果 120

java使用局部线程池为什么会造成线程泄露 - 无期(瑶瑶)

java使用局部线程池为什么会造成线程泄露 一、思考 - 造成泄露,肯定是无法被GC回收,那为什么局部线程池没有被回收,我们来通过源码一探究竟 这里先给出结论:ThreadPoolExecutor -> Worker -> Thread 由于存在这样的引用关系,并且 Thread 作为 GC Root ,所以无法被回收 二、通过ThreadPoolExecutor类对源码一探究竟 不详解 ExecutorService threadPool = new ThreadPoolExecutor( 1, 1, 300, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), Executors.defaultThreadFactory() ); thread...阅读全文

博文 2020-04-21 02:15:10 博客园

Hive SQL的编译过程

Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有了比较深入的理解。对这一过程的理解不仅帮助我们解决了一些Hive的bug,也有利于我们优化Hive SQL,提升我们对Hive的掌控力,同时有能力去定制一些需要的功能。MapReduce实现基本SQL操作的原理详细讲解SQL编译为MapReduce之前,我们先来看看MapReduce框架实现SQL基本操作的...阅读全文

博文 2020-08-07 07:08:10 美团技术团队

并发编程

TIP 本文主要是介绍 并发编程-JUC简介 。 1. JUC 简介2. volatile 关键字3. i++ 的原子性问题3.1 CAS 算法4. 并发容器类4.1 ConcurrentHashMap4.2 CountDownLatch(闭锁)5. 创建执行线程的方式三6. 同步锁(Lock)7. ReadWriteLock(读写锁)8. 线程同步锁9. 线程池9.1 线程调度10 Fork/Join 框架参考文章 # 导读【重要】 进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,...阅读全文

博文 2021-12-26 14:31:56 JUC简介 | 智能后端和架构

Spark(五)Spark任务提交方式和执行流程 - Frankdeng

一、Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext。由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等。程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运行某些task,并且负责将数据存在内存或者磁盘上。在Spark on Yarn模式下,其进程名称为 CoarseGrainedExecutor Backend,一个CoarseGrainedExecutor Backend进程有且仅有一个executor对象,它负责将Task包装成taskRunner,并从...阅读全文

博文 2019-11-27 06:07:44 博客园

产品经理到底要不要懂技术?

「产品经理需要懂技术吗?懂到什么程度?」这是产品新人最容易提起的问题。 不学吧,怕做产品的时候思考不周全,学吧,又感觉太难,不知道从何学起。 今天咱们就来聊聊对于产品经理来说,到底要不要懂技术,以及对技术要了解到什么程度。 ![image.png](https://img-blog.csdnimg.cn/20200622143801997.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) 我们把对技术的了解程度分为3个层次: ...阅读全文

基于Netty的高性能RPC框架Nifty(一)

1. 前言 Thrift是Facebook贡献给apache的rpc框架,但是这款框架的java版本在公司内部并不是那么受待见,因为其性能相比C++版本差了很多,但是后续基于netty重写了以后性能得到了极大的提升,相比于C++版本已经差距不大了。为此取了个新的名字Nifty = Netty + Thrift。 如果你使用过thrift的话,基本都会使用自动生成的代码,那真的是没法看,即使定义一个简单的类都会生成巨多的代码,把read,write方法全部写到里面去了。总之早期的thrfit各方面都似乎不那么友好。后面架构进行了升级,提供了新的swift库,注意这个不是ios的swift,从而生成的java类和普通的java类基本一致,无非多了点注解,而序列化反序列化也都移到了相应的包中,从而...阅读全文

博文 2021-08-16 07:02:59 服务端启动全解析

敏捷开发实践之Scrum方法运用

摘要:目前软件开发除了强调产品质量,同时对产品能够快速发布并且迅速适应市场变化的要求也日益强烈。为适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。 ![image.png](https://img-blog.csdnimg.cn/20200117153148745.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) ...阅读全文

都是 HBase 上的 SQL 引擎,Kylin 和 Phoenix 有什么不同?

作者 | 翟娜大数据时代,数据的价值越来越被重视,企业从海量大数据中挖掘所需要的信息,用来驱动业务决策以获得更大的商业价值。与此同时,出现了越来越多的大数据技术帮助企业进行大数据分析,例如 Apache Hadoop,Hive,Spark,Presto,Drill,以及今天我们即将介绍的 Apache Kylin 和 Apache Phoenix 项目等,都是使用 SQL 语言就可以分析大数据,极大地降低了大数据的使用门槛。这些大数据技术提供 SQL 查询接口,不只是因为 SQL 学习成本低,同时也和 SQL 拥有丰富而强大的表达能力、能满足绝大多数的分析需求的特性有关系。了解 Apache Kylin 和 Apache Phoenix 的同学都知道,它们都是使用 Apache HBase ...阅读全文

博文 2020-05-15 07:59:44 掘金

项目经理:在家远程办公如何提高工作效率?

为了减少人群聚集、防止交叉感染,很多企业延迟复工并响应国家“停工不停业、停课不停学“的号召,通过在家办公的方式陆续复工。在家,是帮助疫情平复;办公,是维护经济稳定。在特殊时期,远程办公成为企业保障日常经营的首选方式。今天与大家分享一下,在家办公,怎么高效完成远程工作。 在家办公最大的挑战,是远程之下,管理和沟通效率会大大下降。 第一个挑战:很多人在家里进入没有他律的自律。 什么叫没有他律的自律?说人应该自律,没错,我觉得自己是很自律的人,依然觉得跟自己的懒惰作斗争。他律,在公司没人看着你,早上上班9点上班,9点15到自己觉得不好意思,他律是没人看着你,管理效率大大降低。 第二个挑战是沟通效率,没有协作的单兵。 本来在...阅读全文

Jackson 快速入门 - 捏造的信仰

捏造的信仰 2.3k Jackson 快速入门 java jackson json 发布于 7月14日 本文是对 Jackson 的快速入门介绍,主要分为四部分: 基本使用 基础配置 自定义序列化/反序列化 对泛型的处理 上面这几个话题足以覆盖日常开发的场景了。限于篇幅所限,本文力求读者读完后能掌握 Jackson 在日常使用中的绝大部分场景,以及了解如何着手探索 Jackson 的深层定制。 基本使用 引入 Jackson 本文假设读者熟悉 Maven 的使用,那么只需要在项目中添加下面的依赖关系就可以了: com.fasterxml.jackson.core jackson-databind阅读全文

博文 2020-09-02 02:51:58 SegmentFault 思否

企业数字化转型带来的三大变革

什么是数字化转型的本质?我们认为,数字化转型的本质是,在数据+算法定义的世界中,以数据的自动流动化解复杂系统的不确定性,优化资源配置效率,构建企业新型竞争优势。 无论是社会经济,还是科学技术,都始终处于一个流动的过程之中,由于信息技术和硬件设备的不断成熟,数字化转型是当下经济社会中的一个里程碑事件,也是企业发展的必经之路。数字化转型对于企业来说,不单单是某一次的变革和动作,而是企业的整体框架升级,渗透到企业的生产、决策、经营等各个环节之中。在数字化转型中占据先机的企业,将会在竞争中获得更多的优势。 下面我们就来细数一下,企业数字化转型将会给企业带来的三个变革。 一、决策革命 决策革命简而言之就是基于数据+算法的决策。“数据+算法=服务”实现分四个环节:一是描述,在虚拟...阅读全文

聊聊 TCP 长连接和心跳那些事 | 徐靖峰

前言可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳问题,做一个统一的整理。 在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文将借用它们的一些 API 和设置参数来辅助介绍。 长连接与短连接TCP 本身并没有长短连接的区别 ,长短与否,完全取决于我们怎么用它。 短连接:每次通信时,创建 Socket;一次通信结束,调用 socket.close()。这就是一般意义上的短连接,短连接的好...阅读全文

博文 2019-12-23 03:56:40 个人博客

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以通过利用本文的方法结合自己的业务场景写出复用性更高、可扩展性更好的代码。欢迎各位指出文章中的错误,如果有更好的思路可以在下方评论,我们一起讨论。 欢迎转发,请注明出处。 实现方式 前提: 明确清楚需要执行的类和方法。 思路 通过Spring容器获取需要执行的类,注意:从spring容器中获取的类可能是被JDK或C...阅读全文

博文 2021-06-07 13:00:18 博客

WebRTC简介

引言最近一段时间的主要工作内容是开发一个远程控制手机的功能,其中使用到的一个关键技术就是WebRTC,在此准备分享一下我对这个技术的理解。其他 WebRTC 相关文章均收录于贝贝猫的文章目录。 什么是WebRTCWebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。 虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。WebRTC架构架构组件Your Web AppWeb开发者开发的程序,Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视...阅读全文

博文 2021-09-06 08:58:22 知乎

ffmpeg实现图片转视频以及视频转图片

日期:2021-3-15简介:因为计网作业需要,今天就是讲一讲如何使用ffmpeg把图片转视频以及视频转图片。一、下载ffmpeg你可以在ffmpeg的bin文件下看见以下三个.exe文件二、建个快速打开命令行的bat文件可以新建文件夹.txt->在.txt文件中输入cmd并保存->将.txt后缀名改成.bat可以看一下打开.bat文件后的效果三、自己录制个视频放入bin目录中四、视频转图片打开.bat文件->输入ffmpeg -i GGGabc.mp4 -t 5 -s 1080x1080 -r 15 %3d.jpg 其中-i GGGabc.mp4表示调用bin目录下的GGGabc.mp4视频-t 5表示选取视频中的前五秒进行视频转图像-s 1080x1080表示视频转图片后图片的像素-r ...阅读全文

博文 2021-09-09 03:31:14 知乎

Scrum与OKR融合实践经验分享

很多软件公司的研发团队都喜欢用Scrum管理研发流程,Scrum是一个诞生于20世纪90年代的敏捷方法论,CORNERSTONE内部也一直在使用这一方法。 相较于瀑布式开发的其他传统方法,Scrum最大的优点是关注持续快速迭代以及对变化的适应性。如果使用瀑布式开发,在项目一开始就要确定项目结果,并且要对此达成一致,通常还要有详细的计划和项目规范。项目计划是从这些规范中产生的,通过以项目在未来的完成情况为出发点,向后推进,以线形的方式规划出时间、预算和各阶段的联系性。 瀑布式开发的成品是一份路线图,能推算出一款软件到推出之日为止,需要完成的所有开发工作,而不足之处就是如果在软件开发过程中出现了变动,包括时间线或各阶段连接时出现问题,甚至在很多时候连预算都需要完全重做,实际上这就破坏了计划。 S...阅读全文

博文 2019-12-30 08:59:15 CORNERSTONE

MapReduce 数据倾斜原因和解决方案_一次次尝试

MapReduce简介 MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义: 1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。 2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。 3)MapReduce是一...阅读全文

博文 2021-02-22 04:44:09 CSDN博客_mapreduce数据倾斜原因

Hadoop中的Mapper和Reducer数量设定

在对Mapper调优的过程中,一个经验法则是: map任务最好拥有一分钟以上的运行时间。 因为如果任务运行时间过短,将导致在整个作业的执行过程中任务启动所花费的时间过大,从而降低了实际的任务执行效率。 对map任务的运行时间影响最大的是Mapper的个数,不过与Reducer不同,Mapper的个数是无法显示指定的。 调节Mapper数量的一种方式是设置参数mapred.jobtracker.maxtasks.per.job, 但其只能限制每个job中并发运行的map或reduce任务的上限,而当实际运行的map数低于该上限时,该参数将失效。 如果想要对Mapper个数进行更加直接有效的控制,需要指定输入数据的分片大小。 输入分片(input split)是MapReduce框架为使map任...阅读全文

博文 2020-08-31 02:33:58 Summer is Green

UML 各种图总结精华

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。一、基本概念 如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。 动态图分为:状态图,活动图,协作图,序列图。 1、用例图(UseCase Diagrams): 用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。 2、类图(Class Diagrams): 用户根...阅读全文

博文 2020-04-12 09:17:10 知乎

如何有效利用企业资源,发挥Scrum最大优势?

Scrum与组织的关系 ![image.png](https://img-blog.csdnimg.cn/20191224172145560.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) Scrum是一种能使业务变得敏捷的框架,而企业恰恰需要变得敏捷。只是,企业本身有时候并没有足够的能力来帮助Scrum团队的成长,甚至还会阻碍Scrum团队的成长。 企业能以什么样的方式最大限度地发挥Scrum的优势?又在哪些方面阻碍了个人的发展? 企业本身所具备的公...阅读全文

博文 2019-12-25 08:19:34 CORNERSTONE

双亲委派模型与 Flink 的类加载策略

我们知道,在 JVM 中,一个类加载的过程大致分为加载、链接(验证、准备、解析)、初始化5个阶段。而我们通常提到类的加载,就是指利用类加载器(ClassLoader)通过类的全限定名来获取定义此类的二进制字节码流,进而构造出类的定义。Flink 作为基于 JVM 的框架,在 flink-conf.yaml 中提供了控制类加载策略的参数 classloader.resolve-order,可选项有 child-first(默认)和 parent-first。本文来简单分析一下这个参数背后的含义。parent-first 类加载策略ParentFirstClassLoader 和 ChildFirstClassLoader 类的父类均为 FlinkUserCodeClassLoader 抽象类,...阅读全文

博文 2021-10-22 03:09:33 知乎

工作效率低?这个锅远程办公不背

疫情仍在继续,每个人为这个社会做贡献的方式,除了做好防控和不必要的恐慌外,我们更应该做好本职工作,以确保社会经济的正常运转,要做到“各司其职”。 从2月3号开始,越来越多企业选择了远程办公模式。但因为沟通不畅所带来的信息不对称、效率低下,内耗等问题,对管理者和员工都是不小的考验。 远程办公三大疑问:如何远程办公?如何高效远程办公?如何高效协同他人一起远程办公? 别急,这就为大家一个个来解答。 一、如何远程办公? 据阿里统计,2月3日,全国上千万企业、近2亿人开启在家办公模式。要进行远程办公,当然最基础的条件是得有互联网,4G网络、光纤宽带均可,配上一台电脑,我们一起做整条街最靓的仔。 虽然隔着网线无法获知屏幕那端真实的办公情况,但节后复工且远程介入,最切忌将家庭舒适、慵懒、休闲的气息传递至工...阅读全文

博文 2020-02-24 05:18:26 CORNERSTONE

Cglib及其基本使用 - 五月的仓颉

前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+InvocationHandler这套我已经很熟了,想着如果把Cglib研究研究,应该看AOP源码的时候会更快一些,因此本文就研究一下Cglib是什么、如何一些基本的使用、底层实现原理。 Cglib是什么 Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系: 对此图总结一下: 最底层的是字节码Byteco...阅读全文

博文 2021-06-12 14:36:43 博客园

数据库表连接的简单解释

关系型数据库最难的地方,就是建模(model)。 错综复杂的数据,需要建立模型,才能储存在数据库。所谓"模型"就是两样东西:实体(entity)+ 关系(relationship)。 实体指的是那些实际的对象,带有自己的属性,可以理解成一组相关属性的容器。关系就是实体之间的联系,通常可以分成"一对一"、"一对多"和"多对多"等类型。 在关系型数据库里面,每个实体有自己的一张表(table),所有属性都是这张表的字段(field),表与表之间根据关联字段"连接"(join)在一起。所以,表的连接是关系型数据库的核心问题。 表的连接分成好几种类型。 内连接(inner join) 外连接(outer join) 左连接(left join) 右连接(right join) 全连接(full jo...阅读全文

博文 2021-04-29 04:41:41 阮一峰的网络日志

Alibaba之jvm

前言 在开始之前,我们先来模拟一下以下的场景: 小李:“小明,你的接口没有返回数据,麻烦帮忙看一下?” 小明:“我这边的数据也是从别人的服务器中拿到的,但是我不确定是因为逻辑处理有问题导致没有结果,还是因为我依赖的服务有问题而没有返回结果,我需要确认一下。” 小明:“哎呀,线上没有日志,我需要加个日志上个线。” 30 分钟之后…… 小明:“不好意思,日志加错地方了……稍等……” 接来下隆重登场的就是本文的主角 JVM SandBox 了。基于 JVM SandBox,我们可以很容易地做到在不重新部署应用的情况下,给指定的某些类的某些方法加上日志功能。当然,动态加日志仅仅是 JVM SandBox 可以应用的一个小小的场景,JVM SandBox 的威力远不在于此。套用官方的话说就是"JVM-...阅读全文

博文 2021-06-29 02:14:20 sandbox初体验 | 码农家园

Netty 权威指南笔记(二):Java NIO 和 Netty 对比_albon arith

Netty 权威指南笔记二Java NIO 和 Netty 对比 Java NIO 开发Netty 开发 示例程序 Netty 权威指南笔记(二):Java NIO 和 Netty 对比 Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? API 使用简单,开发门槛低。功能强大,预置多种编解码功能,支持多种主流协议。定制能力强,可以通过 ChannelHandler 对通信框架灵活扩展。性能高。成熟稳定,社区活跃,已经修复了 Java NIO 所有的 Bug。经历了大规模商业应用的考验,质量有保证。 Java NIO 开发 我们看一看在 笔记(一)里面的 Jav...阅读全文

博文 2021-08-27 08:12:00 CSDN博客

SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战

下载地址:百度网盘SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战金融软件工程师一直是高薪争抢的稀缺人才,作为金融软件工程师,需要同时具备软件研发基础和金融业务知识。这门课对于想涉猎、了解以及从事金融行业的技术人员,非常有帮助。课程将带你总览金融行业的IT全景图,重点讲解证券交易中的撮合业务,并利用Vue+Spring Boot等技术栈,从搭建前后端分离的委托终端开始,带你从无到有开发一个高可用低延时的撮合交易系统。助力你成为为国家金融行业基础设施建设添砖加瓦的IT工程师适合人群有前后端基础知识,想投身证券金融行业做开发的同学想进入Fintech行业或银行业,非银金融,互联网金融业的IT工程师技术储备要求具备Java、JavaScript基础了解Spring C...阅读全文

Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解

​Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解 【点击下载】面试通过,却担心通不过试用期?明明认真做了,还是Bug满天飞?刚入行的Java开发者,总会遇到这样那样的坑。资深技术专家,调动多年经验,为你排除易出错、易被忽视、易被曲解的“坑”,根据业务需求流程,带你系统处理业务代码-整合框架-存储-缓存的常见错误,清扫知识误区。通过课程,让你对重点、难点和知识点理解更加的清晰和熟练,助力你升级打怪再上一个台阶!适合人群有Java实际开发经验,对排查Bug有困扰的Java开发者技术储备要求有实际开发经验。包括:Java Web实际开发经验 Spring、SpringMVC、SpringBoot、MySQL、Redis 实际使用基础百度网盘链接下...阅读全文

博文 2020-09-30 17:58:38 jmterorh

Prometheus Histogram + Grafana 绘制接口响应热点图 – 兰陵美酒郁金香的个人博客

一、前言 第一版的接口响应时长分布统计图表是根据 Prometheus Counter 数据类型制作的折线图,它大概长下面这个样子。 原理其实也非常简单,我就是将请求分组进行统计。大致的代码就是下面这个样子 // UploadAPIRequestDurationCounter 上报接口请求时长 func (s *apiMetrics) UploadAPIRequestDurationCounter(method, endpoint string, duration time.Duration) { getDurationLabel := func(duration time.Duration) string { d := duration.Milliseconds() switch { ca...阅读全文

博文 2023-09-22 15:00:10 www.xhyonline.com

Seata 分布式事务 XA 与 AT 全面解析

Seata 分布式事务 XA 与 AT 全面解析 2021-04-23 FUNKYE Seata Seata 目录 1.XA模式是什么? 1.1什么是XA 1.2什么是Seata的事务模式? 2那么什么是Seata XA 模式? 2.1什么是Seata AT(TXC) 模式? 2.2AT 模式如何做到对业务的无侵入 ? AT模式一阶段 2.3 AT 模式如何保证隔离性 AT 模式二阶段提交 AT 模式二阶段回滚 3.为什么支持XA? 4.为什么Seata要支持XA模式? AT与XA的关系 Seata AT与XA的优劣 总结 Seata 是一款开源的分布式事务解决方案,star高达17300+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 注:本期分享借鉴于Sea...阅读全文

博文 2022-11-12 17:32:05 objcoding.com

Flink 助力美团数仓增量生产

一、美团数仓架构图如上图,是美团最新的数仓架构图。整个架构图分为三层,从下往上看,最下面一层是数据安全,包括受限域认证系统、加工层权限系统,应用层权限系统,安全审计系统,来保证最上层数据集成与处理的安全;中间一层是统一的元数据中心和全链路血缘,覆盖了全链路的加工过程;最上层根据数据的流向,分成数据集成,数据处理,数据消费,数据应用,四个阶段;在数据集成阶段,对于不同的数据来源(包括用户行为数据,日志数据,DB 数据,文件数据),都有相对应的数据集成系统,把数据收集到统一的存储之中,包括 Kafka 和 Hive 等。在数据处理阶段,有一个面向用户的数据开发平台(万象平台),可以使用两条数据处理链路来加工数据,一个是流式处理链路,一个是离线处理链路。数据加工好了之后,使用内部自研的 Delta...阅读全文

博文 2022-03-23 12:52:23 知乎

IDEA启动项目:java: java.lang.IllegalArgumentException_liangsheng_g的博客

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、现象二、解决方法1.问题进一步描述2. 解决方法 总结 一、现象 IDEA启动springboot项目,提示java: java.lang.IllegalArgumentException,没有多余的信息,百度之后都是让修改idea的Java compiler,但是我全都设置的Java8,所以没头绪。 二、解决方法 1.问题进一步描述 谷歌搜了一下,发现Jetbrains的官网有人提这个问题,大致浏览了下,描述和我的问题一致。再看描述产生这个问题的条件:简单描述下,就是IDEA 2020.3版本会复现这个问题,如果升级到2020.4就没有该问题,而且后面的添加提问是说2020.3.1.RC版本也会有这个问题。 链...阅读全文

博文 2023-01-11 11:00:43 CSDN博客

Java可视化UML工作流系统(Activiti7+SpringBoot)

下载地址:百度网盘章节目录:第1章 清晰的学习目标,让学习更轻松首先项目演示了解项目整体情况,便于小伙伴通过本课程学习,能够最终做出的怎样的项目效果。同时,明确学习activiti工作流对今后工作的重要性,确立学习目标。1-1 玩转黑马项目,“技术+业务”能力齐飞试看第2章 开发前准备:环境搭建篇【选修】所谓“君欲善其事,必先利其器”,因此本章带着小伙伴们将课程所需环境一一构建起来,小伙伴们可以结合自己情况,有选择有重点的去学习。注意:MySQL安装时讲解了如何开启远程访问、设置电脑防火墙;Maven国内镜像仓库修改等。...2-1 JDK安装2-2 Maven安装2-3 MySQL安装2-4 SpringBoot项目创建2-5 BPMN插件第3章 项目从git下载与打包部署很多小伙伴在别的...阅读全文

博文 2020-08-19 10:20:30 jmterorh

Vue3+Django4全新技术实战全栈项目

### download:[Vue3+Django4全新技术实战全栈项目(https://www.zxit666.com/6467/) Vue3+Django4的前后端别离开发 什么是Vue3和Django4 Vue3是Vue.js的最新版本,它是一个用于构建用户界面的渐进式框架。Vue3提供了更好的性能、更好的开发体验、更好的组合才能和更多的新特性,例如Proxy响应式系统、Composition API、Teleport、Suspense等1。 Django4是Django的最新版本,它是一个用于快速开发Web应用的Python框架。Django4提供了许多功用,如ORM、路由、模板引擎、表单、用户认证、缓存、中间件等2。 为什么要运用Vue3+Django4 运用Vue3+Django...阅读全文

博文 2023-08-28 10:22:19 zxit666

高性能无锁并发框架Disruptor,太强了

Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在无锁的情况下实现队列的并发操作,并号称能够在一个线程里每秒处理6百万笔订单官网:http://lmax-exchange.github.io/disruptor/目前,包括Apache Storm、Camel、Log4j2在内的很多知名项目都应用了Disruptor以获取高性能为什么会产生Disruptor框架「目前Java内置队列保证线程安全的方式:」ArrayBlockingQueue:基于数组形式的队列,通过加锁的方式,来保证多线程情况下数据的安全;LinkedBlockingQueue:基于链表形式的队列,也通过加锁的方式,来保证多线程情况下数据的安全;ConcurrentLi...阅读全文

博文 2023-02-02 12:22:37 知乎

React 为什么是 JSX 而不是 Templates

前言 前几天得到一个疑问,为什么 React 要用 JSX 语法,这样显得代码好像“很耦合”。按照传统应推荐 html、js、css 模版分离,这样设计的优越性到底在哪里? 从一开始接触前端,大学课程里首先学的也是 html、js、css 这前端二代三剑客,可以类比于“母语”的概念。于是接触了 Vue 框架,便顺理成章地理解了 templates、script、style 三个模版分离的概念。到后来接触了 React 框架确实在熟悉 JSX 语法过程中花费了一定的精力,现在理解来看,其实就是把 JS 语法和 DOM 结构组合绑定到了一起,当时真正头晕的应该是渲染的能力。 因此,React 为什么是 JSX 而不是 Templates,这种感觉就好像脱离了一开始学习的母语,这样的学习成本难道是...阅读全文

博文 2023-04-17 03:18:23 掘金

[完结19章]SpringBoot开发双11商品服务系统

今天给大家分享一下关于SpringBoot开发双11商品服务系统的整个流程,我将深度还原大厂实习期技术成长全流程,让你收获大厂项目开发全流程与实战经验,具备应对大流量场景问题的解决能力,全面助力提升实习/转正/跳槽表现力与成功率。 以下是参考资料下载: 网盘地址:https://pan.baidu.com/s/1QNf3FbzlswJd_DU3FC64nw 提取码:q61x 腾讯微云下载地址:https://share.weiyun.com/o6TKslZV 密码:qn8bim Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spr...阅读全文

博文 2023-11-22 14:46:53 kaidnxhd2023

SpringBoot3+Vue3 开发高并发秒杀抢购系统[高清]

### download:[SpringBoot3+Vue3 开发高并发秒杀抢购系统高清](https://www.zxit666.com/6646/) 随着互联网和挪动互联网的快速开展,电子商务行业也在不时壮大,而秒杀抢购系统作为电子商务的一种重要方式,曾经成为各大电商平台的标配。在高并发的状况下,如何保证秒杀抢购系统的稳定性和性能,是一个十分重要的问题。 SpringBoot3 是一个基于 Spring 框架的快速开发框架,它能够快速构建 Web 应用程序和微量级的企业应用程序。Vue3 是一个盛行的前端框架,它能够协助开发人员快速构建交互式用户界面。在这个系统中,我们将运用 SpringBoot3 和 Vue3 来完成秒杀抢购系统的高并发和高性能。 在这个系统中,用户能够经过前端页面阅...阅读全文

博文 2023-11-04 23:52:05 zxit666

Web3.0入门与实战 一站式掌握4大主流区块链开发

download:https://caodada.com/8045.html【资源介绍】:Web3.0入门与实战 一站式掌握4大主流区块链开发Web3.0迎来爆发式增长,技术人才紧缺,薪资涨幅可观。但Web3.0体系庞杂,很难系统掌握。因此,我们邀请以太坊、IC、Flow及XuperChain社区资深开发者精心打造更适合初学者从0到1系统学习的课程。课程将从编程语言,到四大主流链项目开发,带大家系统全面掌握Web3.0开发技术,帮助大家顺利入行,开拓新的职业机会,增长职业竞争力及副业收入。​​​​​​​【资源目录】:├──1| └──1-1开篇Web30一场已经开启的互联网革命3725_ev.mp4 74.89M├──2| ├──2-10智能合约语言介绍下1137_ev.mp4 35.67M...阅读全文

博文 2023-07-27 15:51:53 caodada

详解Prometheus四种指标类型,谁还不是个监控老司机了_格式_标准_系统

详解Prometheus四种指标类型,谁还不是个监控老司机了 2023-02-17 14:12 来源: dbaplus社群 原标题:详解Prometheus四种指标类型,谁还不是个监控老司机了 指标是用来衡量性能、消耗、效率和许多其他软件属性随时间的变化趋势。它们允许工程师通过警报和仪表盘来监控一系列测量值的演变(如CPU或内存使用量、请求持续时间、延迟等)。指标在IT监控领域有着悠久的历史,并被工程师广泛使用,与日志和链路追踪一起被用来检测系统是否有不符合预期的表现。 在其最基本的形式中,一个指标数据点是由以下三个部分构成: 一个指标名称 收集该数据点的时间戳 一个由数字表示的测量值 在过去的十年里,随着系统变得越来越复杂,出现了维度度量的概念,也就是说,度量还包括一组标签或标识(即维度)...阅读全文

博文 2023-09-08 03:51:30 www.sohu.com

Prometheus基础相关--PromQL 基础(4)

见字如面,我是小斐,上文介绍了关于运算、阈值、集合操作等相关操作和说明,本文将继续说明PromQL的基础,上文链接如下:排序本节我们将学习如何对查询结果进行排序,或者只选择一组序列中最大或最小的值。我们可以使用 sort()(升序) 或者 sort_desc()(降序)函数来实现对输出结果进行排序,例如,要显示按值排序的每个路径请求率,从最高到最低,我们可以用下面的语句进行查询:sort_desc(sum by(path) (rate(demo_api_request_duration_seconds_count{job="demo"}[5m])))有的时候我们并不是对所有的时间序列感兴趣,只对最大或最小的几个序列感兴趣,我们可以使用 topk() 和 bottomk() 这两个运算符来操作...阅读全文

博文 2023-10-08 14:36:42 知乎

深入学习小程序框架底层原理,培养双线程思维(2023版,15章)

![1.png](http://static.itsharecircle.com/231218/2289eb20f589afd8f12b3d6989607720.png) 小程序上线以来,一直被称为便携版的 APP,关于两者之间的区别,无外乎是小程序相对轻便、开发成本低、开发周期短、收效快。 小程序并非凭空冒出来的一个概念,当微信中的 WebView 逐渐成为移动 Web 的一个重要入口时,微信就有相关的 JS API 了。 微信小程序是双线程架构,分为逻辑层和渲染层,在进行文件解析的时候不会发生阻塞。 逻辑层: (1)解析js,负责逻辑处理、事件逻辑、动态数据的处理 (2)小程序的所有代码逻辑都包含在同一个逻辑线程(逻辑层是单线程),小程序只有一个APP实例,但是有多个page,小程序编译...阅读全文

博文 2023-12-18 16:12:25 feilipu2023nui

使用Arthas获取Spring应用上下文的2种方法 - cdfive

背景 项目中有时我们需要对应用进行诊断和调试,如调用某个接口进行业务验证、业务执行、数据修复、刷新缓存、查询数据、跑批量任务等等。 微服务项目 如基于Dubbo搭建的微服务,我们可使用Dubbo支持的telnet运维管理,其中invoke命令方便直接调用Dubbo接口; 也可整合swagger-dubbo,方便在网页界面上直接调用Dubbo接口。 web项目 如使用了SpringMVC、Jersey等框架,可考虑暴露一些运维相关的内部rest api,里面调用业务方法,用于某些场景下人工操作处理。 有些情况下以上条件不具备,如不能修改代码、希望不修改代码、不方便修改代码、没有源代码等原因。 Arthas Arthas 是Alibaba开源的Java诊断工具,可以用于快速诊断Java应用和定位...阅读全文

博文 2023-09-13 16:30:42 博客园

【完结23章+电子书】SpringBoot+Vue3+MySQL集群 开发大健康体检双系统

【完结23章+电子书】SpringBoot+Vue3+MySQL集群 开发大健康体检双系统 ![image.png](http://static.itsharecircle.com/231123/e50d868d4cb62b9f223e21d67804e365.png) 分享课程——SpringBoot+Vue3+MySQL集群 开发健康体检双系统,已完结23章,附电子书。 Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的...阅读全文

博文 2023-11-23 22:02:39 woaiwodejia333

还在为如何高效绘制时序图而苦恼?让PlantUML来拯救你!

作为一个软件攻城狮,在日常板砖中,经常会涉及到和其他模块的交互,为了理清这些交互关系,我们需要绘制各个模块间的时序交互图。以前绘制这些交互时序图,用的都是visio,实际使用下来感觉也不是很方便(可能我比较菜,不是visio大神),痛点如下:在绘制时序图时,我们经常会对各个模块的位置和交互的线序进行调整,用visio画图的话,调整模块位置和线序真是又酸又爽。2. 操作不够行云流水,一会儿拖个框,一会儿打个字,要是画图都能像打字一样方便该多好。3. OFFICE全家桶的启动速度你懂得。。。从学生时代我就一直在忍受visio带来的诟病,无奈毕业论文钦定要这玩意画图,不然我早就送他去。。。。。。直到工作后遇到这款神器!!!!!!PlantUML简介顺序图用例图类图对象图活动图组件图部署图状态图时序...阅读全文

ChatGPT + Flutter快速开发多端聊天机器人App

download:[ChatGPT + Flutter快速开发多端聊天机器人App](https://www.zxit666.com/6258/) Java Web项目开发经验分享 Java是一门强大的编程语言,综合运用Java相关技术能够快速行开发高质量、安全、易维护的Web应用程序。本文将分享我们在Java Web项目开发过程中积累的经验。 1. 需求分析 在进行任何项目开发前,需求分析是非常重要的一个环节。首先,应该与客户充分沟通,明确项目需求和功能点,并记录入详细的需求文档中。其次,设计的用户界面应该符合目标用户的使用习惯和界面审美上的需求。最后,根据需求文档以及UI设计稿,设计出数据库和代码结构,为下一步的开发做好准备。 2. 技术选型 选择合适的技术对于项目的成功至关重要。Jav...阅读全文

博文 2023-06-02 09:37:03 zxit666

一种基于Nginx的热点数据调度处理方法

本文分享自天翼云开发者社区《一种基于Nginx的热点数据调度处理方法》,作者:康****彬一、应用场景基于Nginx的热点数据调度处理,热点节点数据负载均衡处理,减少热点节点压力,提高处理和访问效率;每一个节点的nginx服务接收大量的访问,但是每个节点处理请求都有一个峰值,当请求数达到峰值时,后续请求的处理效率就会有一定的下降,为了保证请求能及时处理,热点节点会触发请求调度策略,转发请求到非热点节点进行处理,若无非热点节点,则触发分布式节点策略,备机节点会启动Nginx服务处理,并接收热点节点转发过来的请求,从而提升访问及处理效率。二、解决的问题解决大量http请求同一个Nginx节点繁忙的问题,做到快速响应。 解决Nginx集群每个节点超负荷接收请求的问题,自动触发分布式策略处理。 解决...阅读全文

博文 2023-08-11 09:39:55 Tianyiyun

一种通过延迟事务提升数据库性能的方法

本文分享自天翼云开发者社区《一种通过延迟事务提升数据库性能的方法》,作者:唐****律一、背景在数据库代理层中,写节点的数据库连接是一种很重要和稀缺的资源,提升其利用率是一个提升数据库整体性能的重要手段。数据库连接占用过高会大幅增加数据库的资源负担,降低数据库的处理能力。通过延迟启动的事务,可以减少不必要的连接占用时长,提升数据库连接利用率。在用户通过代理层使用数据库的时候,如果提交了一条只读查询,那么代理层可以从连接池中获取一个连接、查询、获取数据、然后归还连接。如果在只读查询之前启动了事务,那么在用户提交或者回滚事务之前,该连接不能归还到连接池,大大增加了数据库连接的占用时间。而在ReadCommitted事务隔离级别中,只读查询语句的查询结果是不可重复的,这时如果事务中没有其它写操作,...阅读全文

博文 2023-09-28 16:23:55 Tianyiyun

这一次,彻底搞懂React的diff算法_51CTO博客_vue diff算法

在前端面试中,只要涉及到React框架,diff算法便是我们绕不开的话题,这次让我们来系统性的梳理diff算法,不再被这个知识点所困扰。 什么是diff算法? 在了解diff算法之前,我们要直到diff算法并非React独家首创,但是React针对diff算法做了自己的优化,使得diff算法可以帮助我们计算出Virtual Dom中真正变化的部分,并只针对该部分进行实际的DOM操作,而非渲染整个页面,从而保证了每次操作后页面的高效渲染。 传统diff算法 要想了解React的diff算法,我们首先要知道传统的diff算法是如何设计并实现的。 传统diff算法的时间复杂度 传统diff算法的时间复杂度是O(N^3),其中N是树中节点的总数,这样的时间复杂度意味着如果要展示1000个节点,就要执...阅读全文

博文 2023-09-13 14:29:38 blog.51cto.com