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

Apache Thrift系列详解(二)

前言 Thrift提供的网络服务模型:单线程、多线程、事件驱动,从另一个角度划分为:阻塞服务模型、非阻塞服务模型。 阻塞服务模型:TSimpleServer、TThreadPoolServer。 非阻塞服务模型:TNonblockingServer、THsHaServer和TThreadedSelectorServer。 TServer类的层次关系: 正文 TServer TServer定义了静态内部类Args,Args继承自抽象类AbstractServerArgs。AbstractServerArgs采用了建造者模式,向TServer提供各种工厂: 工厂属性 工厂类型 作用 ProcessorFactory TProcessorFactory 处理层工厂类,用于具体的TProcessor...阅读全文

博文 2021-08-16 07:54:29 网络服务模型

Thrift 服务器端的几种工作模式分析 - 云+社区

相关示例代码见:http://download.csdn.net/detail/hjx_1000/8374829 五、 Thrift服务器端几种工作模式分析与总结 Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下: 1. TSimpleServer模式 TSimpleServer的工作模式只有一个工作线程,循环监听新请求的到来并完成对请求的处理,它只是在简单的演示时候使用,它的工作方式如图5.1所示: 图5.1 TSimpleServer的工作模式 TSimpleS...阅读全文

博文 2021-05-02 16:54:01 腾讯云

大数据开发之Hive篇19-Hive分区表详解

备注: Hive 版本 2.1.1 Table of Contents一.Hive分区表概述二.静态分区2.1 单分区测试2.2 多分区测试三.动态分区3.1 动态分区测试3.2 动态分区和静态分区混合使用四.分区的其它操作4.1 恢复分区4.2 归档分区4.3 交换分区参考 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。 hive中有分区表的概念,我们可以看到分区具重要性能优势,而且分区表还可以将数据以一种符合逻辑的方式进行组织,比如分层存储 Hive官方网站对Hive partition的介绍: 可以使用Partitioned BY子句创建分区表。一个表可以有一个或多个分区列,并且为分区列...阅读全文

博文 2022-07-14 11:01:16 墨天轮

总第405篇2020年 第29篇很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰,作为新一代的低延迟垃圾回收器,ZGC在大内存低延迟服务的内存管理和回收方面,有着非常不错的表现。本文从GC之痛、ZGC原理、ZGC调优实践、升级ZGC效果等维度展开,详述了ZGC在美团低延时场景中的应用,以及在生产环境中取得的一些成果。希望这些实践对大家有所帮助或者启发。ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括:停顿时间不超过10ms;停顿时间不会随着堆的大小,或者活跃对象的大小而增加;支持8MB~4TB级别的堆(未来支持16TB)。从设计目标来看,我们知道ZGC适用于大内存低延迟服务的内存管理和回收。本文主要介绍ZGC在低...阅读全文

博文 2020-08-07 06:12:22 mp.weixin.qq.com

什么是FastJson中AutoType反序列化漏洞?_hosaos的博客

文章目录 频繁出现的反序列化漏洞parse()及parseObject()AutoType及安全校验AutoType安全校验AutoType黑名单机制SafeMode安全机制攻击思路 反序列化攻击模拟TemplatesImpl攻击调用链路攻击类Translet生成构造攻击JSON串攻击模拟 写在最后 频繁出现的反序列化漏洞 最近公司的小伙伴们收到了一波安全工单,因为FastJson存在高危漏洞,要求将FastJson版本号升级到1.2.69及以上 漏洞描述如下 在Fastjson<=1.2.68的版本中,通过新的Gadgets链绕过autoType开关,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,实现了反序列化漏洞利用的远程代码执行效果,同时,此次修复补丁也补充了auto...阅读全文

博文 2022-05-23 08:07:38 CSDN博客_fastjson的autotype属性

企业应该怎样选择项目管理软件?

项目管理通常涉及人、财、物的调配和管理。项目管理流程十分复杂,仅靠人工管理往往难以管理好。 因此,选择一个有效的工具来管理整个项目很有必要。 目前,市面上的项目管理软件繁多冗杂,良莠不齐,企业需根据自身情况选择项目管理工具,以提高效率,赢得市场竞争。 如果项目的复杂程度永远不超出项目经理或项目团队的经验水平和记忆容量,只靠他们的人工管理也能在项目发生事情时识别因果关系并追溯问题的源头。 但问题是,几乎所有与业务相关的项目其复杂程度,都能轻易超出项目经理或项目团队的经验水平和记忆容量限度,只是团队不自知而已。 所以才会有不少团队用了错误的准则来选择管理工具,导致工具不能在项目信息上及问题溯源上弥补团队的不足。 因此,在选择项目管理软件时,企业应从多方面考虑,确保选择到合适的项目管理工具。 一、...阅读全文

使用 FFmpeg 生成 ts 切片并使用 AES-128 加密

前言 最近有个需求,需要将服务器视频资源进行加密提供给客户端播放,防止用户盗用视频。 常用的加密方式 m3u8切片加密(本文使用) 各种在线播放视频的网站广泛使用的技术,切片同样是使用AES加密算法。 优点:各种浏览器,手机,小程序都能兼容,通用性很好。 缺点:由于是公开的算法,还原也十分简单,有很多影音嗅探工具能直接下载还原,加密效果很弱,防小白可以,聊胜于无。 防翻录:无 文件流加密 采用异或或者AES等文件流加密方式,对文件数据进行处理。播放时动态解密相应的数据到内存再播放。 优点:加密和解密速度都很快。 缺点:必须使用专用的播放器才能解密,加密强度较弱,专业破解人员可写工具瞬间提取。 防翻录:通过播放器,APP实现 视频逐帧转码加密 加密强度最高但同时也是技术实现最麻烦的一种。软件需...阅读全文

博文 2023-12-04 10:48:37 掘金

小公司如何管理好团队?

![image.png](https://img-blog.csdnimg.cn/20191204162031489.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) CORNERSTONE最近在知乎看到一个关注度很高的问题“小公司如何管理好团队?”题主列举了一系列十几人的小团队目前面临的问题,无外乎: “如何让你的团队跟你是一条心做事,大家劲往一处使?” “我不在的时候,其他人就开始松懈了,怎样才能让员工,你在和不在都一样?” “作为一个领导,如何管理...阅读全文

理解Java中的弱引用(Weak Reference) - absfree

本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:) 1. What——什么是弱引用? Java中的弱引用具体指的是java.lang.ref.WeakReference类,我们首先来看一下官方文档对它做的说明: 弱引用对象的存在不会阻止它所指向的对象变被垃圾回收器回收。弱引用最常见的用途是实现规范映射(canonicalizing mappings,比如哈希表)。 假设垃圾收集器在某个时间点决定一个对象是弱可达的(weakly reachable)(也就是说当前指向它的全都是弱引用),这时垃圾收集器会清除所有指向该对象的弱引用...阅读全文

博文 2021-04-27 05:57:37 博客园

Storm、Spark与Flink详细比较

TIP 本文主要是介绍 Storm、Spark与Flink详细比较 。 Storm,Spark和Flink简介 联系与区别1、Apache Storm2、Spark Streaming3、Flink4、三者对比参考文章 # Storm,Spark和Flink简介 联系与区别 storm、spark streaming、flink是三个最著名的分布式流处理框架,并且都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,都提供了简单的API来简化底层实现的复杂程度。 # 1、Apache Storm Storm是一个免费并开源的分布式实时计算系统。利用Storm可以很容易做到可靠地处理无限的数据流,像Hadoop批量...阅读全文

博文 2021-12-24 14:07:04 智能后端和架构

当执行kill -9 PID时系统发生了什么

我们时常遇到这样的需求:要杀死一个正在运行运行的进程。这时候可以在终端输入 1 kill -9 (其中9的意思是SIGKILL,完整的linux信号请看这里)之后你再用ps查看进程的时候,会发现那个进程已经被杀掉了。 本文将说明在LINUX系统下,用户在终端输入kill -9 之后,整个系统到底发生了什么,我们将深入到内核代码。一开始我在想这个问题的时候遇到了一些问题,比如进程是怎么知道自己收到信号的?在执行进程工作代码的同时还要不断轮询有没有新到的信号吗?代价也太大了吧?那是不是基于什么异步通知的方案呢?在说明LINUX是怎么做的之前,先解释一点基础的概念。 什么是信号(SIGNAL) 我自己的理解:信号之于进程,就好比中断之于CPU,是一种信息传递的方式。官方的解释...阅读全文

学了很多项目管理工具和方法,为何还是难以成功?

83版《西游记》里有一个桥段:金角大王拿着宝葫芦对孙悟空说:“我叫你名字,你敢答应吗?”孙悟空不知情,回了句:”爷爷在此“。然后就被吸到宝葫芦里去了,金角大王成功拿到一血。这个桥段相信大家已经看过无数遍了。有一次我在讲课讲到某工具时,不知怎的就想起了它,于是现场做了个测试:我把手里的话筒比作宝葫芦,找前排的某帅哥问:“我叫你名字你敢答应吗?”对方答:“不敢”。在全场的哄笑声中,我想我已经清楚地将想表达的东西给表达了出来。需要声明的是:对方不是事先预定的群演。只不过,倘若将对方的反应放在《西游记》电视剧拍摄项目的现场,导演组大概会有点崩溃:”这个戏真没法拍下去了,我亮出法宝,喊出口诀,他应该表现的很惊恐啊,亦或是无所谓的样子,接着不小心答应一声,被吸入到宝葫芦里去,他怎么能不按剧本出牌呢?”可...阅读全文

博文 2020-04-29 07:24:22 CORNERSTONE

面对复杂业务,if-else coder 如何升级?_阿里技术

阿里云开发者 1.5k 面对复杂业务,if-else coder 如何升级? 程序员 发布于 9月25日 简介: 针对业务在不同场景下的差异,我们常常会习惯性地使用if-else来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些if-else?面对复杂业务应如何思考和分析?本文分享阿里高级技术专家张建飞(Frank)关于复杂业务治理的方法论,介绍一种多维度分析问题的方法:矩阵分析法。You should not be a if-else coder, should be a complexity conquer.——Frank这篇文章,是对之前我在《阿里高级技术专家方法论:如何写复杂业务代码?》说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法...阅读全文

博文 2020-09-26 12:24:18 SegmentFault 思否

Netty 中的 Future & Promise

Netty 源码中大量使用了异步编程,从代码实现角度看就是大量使用了线程池和 Future。熟悉 Java 5 的同学一定对 Future 不陌生。简单来说就是其代表了一个异步任务,任务将在未来某个时刻完成,而 Future 这个接口就是用来提供例如获取接口、查看任务状态等功能。Netty 扩展了 Java 5 引入的 Future 机制。从下面的类图我们可以看到相关类的关系:Netty 的 Future 接口需要注意的是,上面类图中有两个 Future,最上面的是 java.util.concurrent.Future,而其下面的则是 io.netty.util.concurrent.Future。JDK 的 Future 对象,该接口的方法如下:// 取消异步操作 boolean can...阅读全文

博文 2021-08-29 03:33:12 www.linkedkeeper.com

硬核图解|tcp为何会粘包?背后的缘由让人暖心

事情从一个健身教练提及吧。程序员 李东,自称亚健康终结者,尝试使用互联网+的模式拓展本身的业务。在某款新开发的聊天软件琛琛上发布广告。golang 键盘说来就来。疯狂发送"李东",回车发送!,"亚健康终结者",再回车发送!面试 还记得四层网络协议长什么样子吗?算法 四层网络模型每层各司其职,消息在进入每一层时都会多加一个报头,每多一个报头能够理解为数据报多戴一顶帽子。这个报头上面记录着消息从哪来,到哪去,以及消息多长等信息。好比,mac头部记录的是硬件的惟一地址,IP头记录的是从哪来和到哪去,传输层头记录到是到达目的主机后具体去哪一个进程。网络 在从消息发到网络的时候给消息带上报头,消息和纷繁复杂的网络中经过这些信息在路由器间流转,最后到达目的机器上,接受者再经过这些报头,一步一步还原出发送...阅读全文

博文 2021-08-27 09:28:59 尚码园

进程同步 进程互斥 软件和硬件实现方式 信号量机制 信号量机制实现进程同步,进程互斥,前驱关系

参考:https://www.bilibili.com/video/av31584226/?p=9 进程具有异步性的特征,异步性是指,各并发执行的进程以各自独立的,不可预知的速度向前推进。回忆我们之前学习进程通信的时候的管道通信方式,如下图:当时的一个特点就是:写进程必须把管道写满之后,读进程才能从管道中读取数据。读进程和写进程并发地运行,由于并发必然导致异步性,因此“写数据”和“读数据”两个操作执行的先后顺序是不确定的。而实际应用中,又必须按照“写数据”->“读数据”的顺序来执行。如何解决这种异步问题,就是“进程同步”所讨论的内容。同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系,进程间的直接制约关系就是源于它...阅读全文

博文 2020-10-17 10:01:23 知乎

SSL/TLS协议运行机制的概述

west 说: 好文。全面而易懂 2014年2月 5日 20:09 | # | 引用 李狗蛋 说: 坏蛋总不放过任何一丝做恶的机会,太多不要脸的运营商在链路劫持强插广告,直接修改用户的HTTP数据包,再就是NSA之流肆无忌惮的窃听 发现一个HTTPS有意思的地方,只要53端口数据被转发,不管域名对应的DNS解析IP是不是域名真实IP,只要最后都是53端口转发到真实IP之上,就不会弹HTTPS证书错误 比如 https://a.com 对应 ipa 不通 那么劫持DNS解析 https://a.com 到 ipb上 (ipb是通的) 只要在ipb上设置 ipb:53转发到 ipa:53 这样访问 https://a.com 就通了,而且没证书错误 2014年2月 5日 20:10 | # | ...阅读全文

博文 2022-11-12 09:04:02 阮一峰的网络日志

为什么大公司都开始用SaaS了?

SaaS应用程序的核心指导原则之一,是通过应用程序的共享多租户体系结构为尽可能多的客户提供服务。 用户之所以能从这个共享模式中受益,是因为软件供应商能够利用规模经济,借助广泛的功能和工作流程、高水平的安全性和服务的可用性来传递价值。 这在以前只有“财富500强”公司才能做到。 不过,这种基于云的现成软件解决方案的民主化,它的另一面是,在谈及根据自身实际需求定制解决方案时,企业必须权衡一定程度的灵活性。 在SaaS之前,公司采用的其中一个传统方法是购买现成的本地解决方案,然后外包给承包商定制及实现。 另一种方法是在公司内部构建你所需的软件,这对预算较高的大公司来说完全负担得起。 这两种方法使企业能够对IT解决方案进行更高程度的定制,但都存在令人头痛的问题,包括营运费用的维护,以及他们雄心勃勃的...阅读全文

你听说过 JMX 么 - 程序员自由之路

什么是JMX JMX(Java管理扩展),是一套给应用程序引入监控管理功能的接口。比如我们可以通过JMX来监控Tomcat的运行状态。JMX最主要的应用场景就是中间件的监控,配置文件的在线修改配置。 相关概念 一个典型的JMX架构图: MBean:是Managed Bean的简称。在JMX中MBean代表一个被管理的资源实例,通过MBean中暴露的方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。事实上,MBean就是一个Java Object,同JavaBean模型一样,外界使用自醒和反射来获取Object的值和调用Object的方法,只是MBean更为复杂和高级一些。 MBeanServer:MBean生存在一个MBeanServer中。MBeanServer管理这些MB...阅读全文

博文 2021-01-26 02:50:58 博客园

Elasticsearch-入门到精通-7 PUT和POST区别_云姐的博客

文章目录 1、创建document 区别使用ES自动生成id使用自定义id 2、更新document 区别PUT全量替换 POST(1)最简单的 update 请求(2)使用脚本局部更新i. 修改_source字段内容ii. 添加数组字段的值iii. 根据内容删除文档iv. 更新可能不存在的文档v. 更新和冲突 3、HTTP 协议之PUT POSTPOSTPUT用PUT还是POST 4、总结:举例,给view字段+1操作疑问 PUT 是 强制创建、全量更新操作 POST 是 创建、局部更新操作 看上去PUT和POST都可以创建、更新document,那么在创建document、更新document的时候有什么区别呢? 1、创建document 区别 使用ES自动生成id 我们如何确定是完全创...阅读全文

博文 2022-04-21 12:52:53 CSDN博客_put和post的区别

为什么你的项目总是延期?

随着项目管理在企业中的广泛应用,它对于企业内部效率以及经济效益的提升扮演着越来越重要的角色。 有调查分析显示,使用软件辅助管理项目的企业中,项目可以顺利验收的比率是92.5%,而不使用软件管理的,项目成功率只有72.7%。 保质保量按时完成项目是每个项目管理者最基本的目标,但在实际项目开展工作中,类似以下情况导致工期延时的例子比比皆是。企业应该怎样做才能使项目如期按质按量完成? 小王是某小公司的项目经理,前段时间公司在筹备一个内部项目,项目正式实施后被公司任命为项目经理。 但使小王感到无奈的是:其他职能部门的经理虽然为该项目安排了时间和人手,但他们同时也忙于其他项目,而且部分经理有时需要使用同样的项目资源。 项目进度已经落后预期一个月,但还没有成型的单元完成,公司管理层对项目拖期问题很关注,...阅读全文

博文 2020-06-01 07:50:17 CORNERSTONE

没有流程的项目管理,都是在做无用功!

没有任何一个项目能轻而易举的成功。但是你却可以努力去争取更大的成功率,靠的便是精心设计、并且行之有效的流程管理。 其实,只要项目的流程搞清晰了,项目进度管理就不再是难事。作为项目经理,首先要关注的就是以下十个关键的流程点。 1、项目定义 项目要开始了,先给项目来个定义吧。不管你如何并为何要进行描述,你要对你的项目进行书面定义,让相关方和项目组随时参考。 项目定义的价值在于,项目主管方和其他相关方传达了他们对项目的期待。清晰的项目定义包括以下方面:项目目标项目回报 对项目范围进行定义,列出所有预期的项目成果成本和时间预算目标重大困难和假设描述该项目对其他项目的依赖高风险、所需的新技术、项目中的重大问题将尽可能多的具体信息囊括在项目描述或章程中,并使其在相关方处获得认可,进而生效。 2、合同与采...阅读全文

在腾讯的伤口上撒老干妈,B站成为最大赢家

首先要用严肃的态度来吃这个活泼的瓜。 我先梳理一下整件事情的来龙去脉,然后分析一下,为什么说B站是最后的赢家。 当然这只是我个人的看法。 整个事件的过程并不复杂,大概分为四步。 第一步,6月29日,深圳市南山区人民法院发布了一则民事裁定书,同意腾讯请求查封、冻结老干妈名下价值约1624万元的资产。 是这则裁定书突然闯入了热搜的眼帘。 至于为什么闯入,大概真的比较魔幻,一个做游戏和咨询和社交的,怎么和一个做辣椒酱的杠上了呢?​▲法院裁定书 后来腾讯公司回应了这件事,给广大人民群众解释了一下。 之所以申请冻结老干妈的资产,是因为老干妈拖欠我们广告费,高达一千多万,然后就没给了。 有一说一,腾讯在给老干妈做广告时,还是很尽心尽力的。 比如在QQ飞车上,做了一款限定款老干妈礼盒,还做了老干妈的服装,...阅读全文

博文 2020-07-02 07:29:29 CORNERSTONE

新基建浪潮下,建筑企业必须升级这些能力

2020年以来,跟新基建相关的政策就接踵而来。 前不久的全国两会上,政府工作报告首次提出了新基建的概念,以5G、工业互联网和人工智能为核心的新基建成为最为关注的热点。 新基建风口下,给建筑企业带来了哪些机遇和挑战?在新形势下,项目管理软件又能为建筑行业带来哪些积极影响?CORNERSTONE给出了解答。 当前,我国建筑业高污染、高能耗、低效率问题依然严重。建筑企业落后的生产方式,粗放式的管理水平已经远远不能满足日益发展的需求。 作为国民经济的支柱性产业,建筑业数字化转型升级,实现节能减排,降本增效迫在眉睫。 新基建已正式站上风口,CORNERSTONE认为,建筑企业该从以下方面升级自己的生产方式,抓住机遇。 升级四项能力,构建高效数字化生产方式 建筑企业应借助数字化改善生产力和生产关系,重新...阅读全文

阿里妹导读:针对业务在不同场景下的差异,我们常常会习惯性地使用if-else来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些if-else?面对复杂业务应如何思考和分析?本文分享阿里高级技术专家张建飞(Frank)关于复杂业务治理的方法论,介绍一种多维度分析问题的方法:矩阵分析法。文末福利:《微服务灰度实践及解决方案》在线直播。You should not be a if-else coder, should be a complexity conquer. ——Frank这篇文章,是对之前我在《阿里高级技术专家方法论:如何写复杂业务代码?》说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法论中,我们缺少一个多维度看问题的视角,这种维度思维的...阅读全文

博文 2020-09-26 12:21:34 mp.weixin.qq.com

为什么用MQTT不用TCP长连接透传 | 文章

前言在接触到MQTT之后,总是会有疑问,为什么用MQTT不用TCP长连接透传?看起来【TCP长连接+私有协议透传】和【MQTT+业务主题】似乎都能达到同样的目的,甚至用MQTT会使得设备端逻辑实现、APP端逻辑实现、云端架构实现更加复杂。那么为什么物联网还要使用MQTT协议呢?一、MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要进行大量的验证,看有无缺陷或欠考虑的地方等。(2)协议的标准化带来大量的开源组件,降低开发难度。随着物联网+5G生态越来越好,开源组件越来越多,可以减少重复编码量。(3)标准协议利于第三方接入。当第三方设备、平台想要...阅读全文

博文 2021-08-26 07:24:00 BEWINDOWEB

UML 各种图总结精华

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

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

主流数字证书有哪些格式?_SSL证书管理 SCM_常见问题_咨询类_华为云

主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。 Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit(JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成PEM、KEY、CRT等格式的证书文件。IBM的Web服务产品,如Websphere、IBM Http Server(IHS)等,一般使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。微软Windows Server中的Internet Information Services(IIS)服务,...阅读全文

博文 2021-09-08 02:29:12 support.huaweicloud.com

TCP/IP, WebSocket 和 MQTT - 张善友

按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP和MQTT是应用层的协议。在这三者之间, TCP是HTTP和MQTT底层的协议。大家对HTTP很熟悉,这里简要介绍下MQTT。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器的通信协议。 HTTP的不足 HTTP协议经过多年的使用,发现了一些不足,主要是性能方面的,包括: HTTP的连接问题,HTTP客户端和服务器之间的交互是采用请求/应答模式,在客户端请求时,会建立一个HTTP连接,然后发送请求消息,服务端给出应答消息,然后连接就关...阅读全文

博文 2021-08-26 07:15:41 博客园

Skip List--跳表(全网最详细的跳表文章没有之一)

登录注册写文章首页下载APPIT技术抽奖Skip List--跳表(全网最详细的跳表文章没有之一)fanrui关注赞赏支持Skip List--跳表(全网最详细的跳表文章没有之一)跳表是一种神奇的数据结构,因为几乎所有版本的大学本科教材上都没有跳表这种数据结构,而且神书《算法导论》、《算法第四版》这两本书中也没有介绍跳表。但是跳表插入、删除、查找元素的时间复杂度跟红黑树都是一样量级的,时间复杂度都是O(logn),而且跳表有一个特性是红黑树无法匹敌的(具体什么特性后面会提到)。所以在工业中,跳表也会经常被用到。废话不多说了,开始今天的跳表学习。 通过本文,你能 get 到以下知识: 什么是跳表? 跳表的查找、插入、删除元素的流程 跳表查找、插入、删除元素的时间复杂度 跳表插入元素时,如何动态...阅读全文

博文 2021-08-17 07:25:32 简书

Stable Diffusion 商业变现与绘画大模型多场景实战教程

![1.png](http://static.itsharecircle.com/240307/ded6f4d3ab22907f8c3e09d8ab865817.png) 一、Stable Diffusion概念 Stable Diffusion 这个模型架构是由 Stability AI 公司推于2022年8月由 CompVis、Stability AI 和 LAION 的研究人员在 Latent Diffusion Model 的基础上创建并推出的。其核心技术来源于 AI 视频剪辑技术创业公司 Runway 的首席研究科学家 Patrick Esser,以及慕尼黑大学机器视觉学习组的 Robin Rombach 这两位开发者在计算机视觉大会 CVPR22 上合作发表的潜扩散模型(Late...阅读全文

博文 2024-03-07 18:41:18 feilipu2023nui

一文读懂Wi

Wi-Fi是现代人生活中必不可少的一个角色,现在去别人家做客人们一定会问一个问题:“你们家Wi-Fi密码是多少?”去年年底,Wi-Fi联盟宣布改变Wi-Fi的命名方式,复杂的命名方式已经不复存在,Wi-Fi 6(也就是原来的802.11.ax)将是下一代Wi-Fi标准的名称,从1999年使用至今的802.11a命名格式正式退出历史舞台。除了新的名字之外,Wi-Fi 6还带来了许多好处,并且不仅仅是简单的速度提升。Wi-Fi 6今年就将进入到人们的生活中,你的下一部手机或笔记本电脑就可能支持Wi-Fi 6,不妨先提前了解一下它。Wi-Fi 6有多快?简单的回答是:9.6 Gbps。作为对比,Wi-Fi 5的速度是3.5 Gbps,可见提升幅度还是不小的。不过更现实的回答是:这个速度只是理论最大...阅读全文

Spring Boot 你不得不会的 spring.factories 配置

在 Spring Boot 项目中,怎样将 pom.xml 文件里面添加的依赖中的 bean 注册到 Spring Boot 项目的 Spring 容器中呢?你可能会首先想到使用 @ComponentScan 注解,遗憾的是 @ComponentScan 注解只能扫描 Spring Boot 项目包内的 bean 并注册到 Spring 容器中,项目依赖包中的 bean 不会被扫描和注册。此时,我们需要使用 @EnableAutoConfiguration 注解来注册项目依赖包中的 bean。而 spring.factories 文件,可用来记录项目包外需要注册的 bean 类名。使用 spring.factories 文件有什么好处呢?假如我们封装了一个插件,该插件提供给其他开发人员使用。...阅读全文

博文 2022-07-25 02:26:27 人人编程网

几款符合 OpenTracing 规范的分布式链路追踪组件介绍与选型 - 腾讯云开发者社区

分布式链路追踪组件是在分布式架构中很重要的组件,用于排查分布式系统所遇到的问题。市面上有多款流行的分布式链路追踪组件,包括 Zipkin、Jaeger、Pinpoint 和 Skywalking 等,我们来了解下这几款组件的相关特性,以帮助我们选型。 分布式链路追踪规范:OpenTracingTracing 是在上世纪 90 年代就已出现的技术,但真正让该领域流行起来的还是源于 Google 的一篇 Dapper 论文。分布式追踪系统发展很快,种类繁多,但无论哪种组件,其核心步骤一般有 3 步:代码埋点、数据存储和查询展示,如下图所示为链路追踪组件的组成。 链路追踪组件的组成目前流行的链路追踪组件有 Jaeger、Zipkin、Skywalking 和 Pinpoint 等。在数据采集过程中...阅读全文

博文 2022-12-23 09:15:09 腾讯云

BAT/ 字节跳动 / 拼多多都在抢的数据产品经理,到底什么来头?

很早期的时候,互联网人口激增带来的巨大流量红利,那时候企业最核心竞争力是什么?就是如何收割流量和如何变现流量,追逐规模效应的模式创新,这个时期是“一快遮百丑”。但当流量红利过去后,效率和效果这个事情就不得不重视起来了,让用户更好的使用你的东西,让你的东西更精准化、让策略方案更具有效率,这样,才能在千千万万的类似企业中生存下去。那么,企业必然需要慢慢地远离“我觉得吧”、“我感觉”、“可能”、“或者”、“按道理应该”等这种词汇,一切回归到数据中去,让你的决策跟着数据走。在这样的大背景下,对于产品经理来说,是风险,也是机会。风险在于,你再也不能完全凭感觉做产品决策了,因为决策失误会导致转化率再次降低、用户流失加快、获客成本升高,甚至影响公司的营收增长,造成资金链断裂。机会在于,企业数据将成为企业的...阅读全文

spring扩展点之一:BeanFactoryPostProcessor和BeanPostProcessor - duanxz

2、BeanPostProcessors接口 public interface BeanPostProcessor { /** * Apply this BeanPostProcessor to the given new bean instance before any bean * initialization callbacks (like InitializingBean's {@code afterPropertiesSet} * or a custom init-method). The bean will already be populated with property values. */ //实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化...阅读全文

博文 2022-04-28 09:19:49 博客园

NullPointerException 没有堆栈 - cdfive

周五在公司搭好的ELK上查看日志,组长让看看其中NullPointerException出现很多的原因。 通过NullPointerException搜索,点看其中一个查看,发现异常的信息就一行java.lang.NullPointerException,并没有堆栈信息。 看了几个都没有,然后翻代码看记日志的地方,调用了日志基础工程的一个方法,异常对象通过封装传了进去,其中异常信息属性取值用的是Throwables.getStackTraceAsString(e),这是guava包提供的方法,点进去看是取了所有堆栈信息的。 那么问题来了,为什么堆栈信息没显示出来呢? 百度了下,关键字:NullPointerException 没有堆栈 找到类似的问题,发现是JVM虚拟机对异常信息进行了优化,...阅读全文

博文 2021-09-24 03:42:35 博客园

中小企业团队敏捷产品开发流程的最佳实践

在敏捷开发过程中,一个产品或者一个发布版本通常是由多个冲刺来实现的,每个冲刺都能增量交付可运行的系统功能,实现客户价值。每个冲刺都是从冲刺规划开始,团队成员一起商定冲刺目标和明确交付的系统功能,并进行冲刺执行,实现系统功能,再通过冲刺评审和回顾对实现的产品功能和过程进行检视,期望在下一冲刺过程中对产品功能和过程进行改进和完善。 一、冲刺流程 冲刺包括冲刺规划、冲刺执行、冲刺评审、冲刺回顾四大过程。冲刺是从规划开始,团队成员必须就本次冲刺的目标和计划达成共识,全体成员在整个冲刺过程按照既定的计划奔着这个目标前进,每天对取得的成果和面临的问题进行沟通讨论。冲刺结束阶段,在冲刺评审活动中召集相关利益相关方一起演示产品功能并获得反馈,获得的反馈是产品列表和下一阶段冲刺规划内容的重要来源。在冲刺回顾活...阅读全文

博文 2020-04-22 07:20:23 CORNERSTONE

Java NIO中,关于DirectBuffer,HeapBuffer的疑问?

1. DirectBuffer 属于堆外存,那应该还是属于用户内存,而不是内核内存?来自 ByteBuffer (Java Platform SE 8 )The contents of direct buffers may reside outside of the normal garbage-collected heap所以是否真的是堆外存并不是强制的,是依赖jvm实现的。回归正题:用户内存还是内核内存?首先,我们知道,每个进程是有独立的地址空间的,也就是说对于一个java进程来说,他只能看到自己的内存,他只能读写自己的内存。而内核其实是有上帝视角的,如早期的linux,内核是能看到并读写所有物理内存的(关于这一点,有兴趣的可以参看我的简写版linux的实现:https://github...阅读全文

博文 2021-08-28 11:12:10 知乎

TCP 异常关闭研究分析 - 云+社区

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer作者:谢代斌研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。各个游戏接入都存在一定的掉线问题,而且有的游戏项目的掉线比例还比较高,现在互娱自研游戏的网络接入基本上都用的是tconnd和ProtocalHandler组件(该组件请参考附件的《TSF4G_ProtocalHandler开发指导手册》),因此参与其掉线原因分析和研究。在参与A项目的掉线问题研究分析过程中,tconnd增加了玩家每个连接的流水日志和ProtocalHandler增加了每个连接的Qos上报日志,...阅读全文

博文 2021-11-05 09:40:44 腾讯云

基于C++从0到1手写Linux高性能网络编程框架

基于C++从0到1手写Linux高性能网络编程框架手写Linux高性能网络编程:实现高效的网络服务Linux高性能网络编程是网络工程师、系统管理员、以及开发人员在处理大量并发连接时必须掌握的一项重要技能。无论是为Web服务提供支持,还是构建实时通信平台、高效的文件传输系统,或者是开发大规模的分布式应用,高性能网络编程的需求日益增长。本篇文章将带你一步一步走进Linux高性能网络编程的世界。我们将介绍常用的技术手段、如何优化程序性能,并通过手写代码实现一个高效的网络服务器。网络编程基础在深入高性能优化之前,首先需要了解一些基本的网络编程概念。这些概念是理解Linux高性能网络编程的基础:Socket编程:Socket是操作系统提供的API,用于实现计算机之间的通信。通过Socket接口,我们可...阅读全文

博文 2025-01-23 14:49:04 xiao_wen123

Python一键转Jar包,Java调用Python新姿势! - 轩辕之风

粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我_),今天这篇文章换换口味,正经的来写写技术文。言归正传,咱们开始吧! 本文结构: - 需求背景 - 进击的 Python - Java 和 Python - 给 Python 加速 - 寻找方向 - Jython? - Python->Native 代码 - 整体思路 - 实际动手 - 自动化 - 关键问题 - import 的问题 - Python GIL 问题 - 测试效果 - 总结 需求背景 进击的 Python 随着人工智能的兴起,Python 这门曾经小众的编程语言可谓是焕发了第二春。 以 tensorflow、pytorch 等为主的机器学习/深度学习的开发框架大行其道,助推了 python 这门曾经以爬虫见长(py...阅读全文

博文 2020-10-27 08:05:48 博客园

【完结9章】AI大语言模型 ChatGPT从0到1打造私人智能英语学习助手

【完结9章】AI大语言模型 ChatGPT从0到1打造私人智能英语学习助手 视频课程分享——AI大语言模型 ChatGPT从0到1打造私人智能英语学习助手,完结19章。附源码下载。 深度学习的子领域中有两个重要的概念:大型语言模型(LLMs)和生成式人工智能(Generative AI)。大型语言模型,这类模型预先通过大量的文本数据进行训练,通常是从互联网或其他公开可获取的书籍中提取的。预训练期间,模型学习并理解文本数据的模式和结构。之后,在微调阶段,模型会根据特定的任务进行优化,这些任务可能包括机器翻译、文本生成、情感分析等。 与OrderStateEnum一样,我们来声明另一个枚举类型,状态触发类型 public enum OrderStateTriggerEnum { PlaceOrd...阅读全文

博文 2023-12-06 16:52:18 woaiwodejia333

从Lambda架构到Kappa架构再到?浅谈未来数仓架构设计~

Linked大佬Jay Kreps曾发表过一篇博客,简单阐述了他对数据仓库架构设计的一些想法。从Lambda架构的缺点到提出基于实时数据流的Kappa架构。本文将在Kappa架构基础上,进一步谈数仓架构设计。 什么是Lambda架构? 借用Jay Kreps的一张图来看,Lambda架构主要由这几部分构成:数据源(Kafka),数据处理(Storm,Hadoop),服务数据库(Serving DB)。其中数据源和服务数据库是整个架构数据的入口和出口。数据处理则是分为在在线处理和离线处理两部分。 当数据通过kafka消息中间件,进入Lambda架构后,会同时进入离线处理(Hadoop)和实时处理(Storm)两个处理模块。离线处理进行批计算,将大量T+1的数据进行汇总。而实时处理则是进行流处理...阅读全文

博文 2022-07-08 09:31:17 阿里云开发者社区

背景 又是一年一度的秋季校招开始了,以往的校招各个公司都会在公司现场或者学校现场安排学生进行现场面试?但是今年由于疫情的原因,不允许让同学在现场进行一个面试,所以今年的面试形式就从线下转到了线上,面试形式的转变,但是我们考核学生的方式依旧没有转变。校招的同学和社招的同学有很大的不同,他们没有丰富的工作经验,没有太多的项目经历,那么我们如何去衡量一个校招的同学呢?那就是基础和潜力,怎么去理解基础呢?俗话说不积跬步,无以至千里,不积小流,无以成江海,如果没有一个好的基础那么怎么才能成为一个优秀的工程师呢。如何去考察一个学生基础的好坏呢?我觉得有三个方面比较重要,计算机网络,操作系统以及算法和数据结构,通常来说计网考察得特别多,常见的一些问题:网络模型分层TCP和UDP的区别TCP三次握手和四次挥...阅读全文

博文 2020-09-06 14:35:04 mp.weixin.qq.com

用户进程缓冲区和内核缓冲区

用户进程缓冲区和内核缓冲区 发表于 2017-02-01 | 分类于 操作系统 | 常常听到有程序员会跟你讨论:“我们在读写文件的时候,系统是有缓存的”。但实际上有一部分人把用户进程缓冲区和系统空间的缓冲区的概念混淆了,包括这两种缓冲区的用法和所要解决的问题,还有其它类似的概念。这篇博客就来区分一下不同的缓冲区概念。 这篇博客指针对类unix平台,windows的我并不熟悉,但我觉得应该差不多。 用户进程与操作系统的关系首先我用一张图来解释“用户进程和操作系统的关系” 这是一个计算机系统运行时的简化模型,我们把所有运行在操作系统上的进程成为用户进程,它们都运行在用户空间(可以看到用户空间有很多进程)。把操作系统运行的空间成为系统空间。 为什么将进程分为用户进程和系统进程,首先你一定听说过内核...阅读全文

博文 2020-06-10 07:28:55 Pulpcode

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博客

入侵JVM? Java Agent原理浅析和实践

在平时的开发中,我们不可避免的会使用到Debug工具,JVM作为一个单独的进程,我们使用的Debug工具可以获取JVM运行时的相关的信息,查看变量值,甚至加入断点控制,还有我们平时使用JDK自带的JMAP、JSTACK等工具,可以在JVM运行时动态的dump内存、查询线程信息,甚至一些第三方的工具,比如说京东内部使用的JEX、pfinder,阿里巴巴的Arthas,优秀的开源的框架skywalking等等,也可以做到这些,那么这些工具究竟是通过什么技术手段来实现对JVM的监控和动态修改呢?本文会进行介绍和简单的原理分析,同时附带一些样例代码来进行分析。从JVMTI说起JVM在设计之初,就考虑到了虚拟机状态的监控、debug、线程和内存分析等功能,在JDK5.0之前,JVM规范就定义了JVMP...阅读全文

博文 2020-07-14 02:26:30 mp.weixin.qq.com

[白话解析] Flink的Watermark机制 - 罗西的思考

[白话解析] Flink的Watermark机制 0x00 摘要 对于Flink来说,Watermark是个很难绕过去的概念。本文将从整体的思路上来说,运用感性直觉的思考来帮大家梳理Watermark概念。 0x01 问题 关于Watermark,很容易产生几个问题 Flink 流处理应用中,常见的处理需求/应对方案是什么? Watermark究竟应该翻译成水印还是水位线? Watermark本质是什么? Watermark是如何解决问题? 下面我们就来简要解答这些问题以给大家一个大致概念,在后文中,会再深入描述。 问题1. Flink 流处理应用中常见的需求/方案是什么 聚合类的处理 Flink可以每来一个消息就处理一次,但是有时我们需要做一些聚合类的处理,例如:在过去的1分钟内有多少用户...阅读全文

博文 2022-05-09 09:31:25 博客园

JS异步编程之Promise详解和使用总结

前言 Javascript异步编程可以算是JS的难点之一。下面就异步编程方法之一的Promise进行详细介绍和总结。但说到Promise之前,我会简单提一下什么是JS异步和回调函数。 JS异步 JS异步是指在进行某些需要耗时不会立即返回结果的操作时,不会阻塞后面的操作,一旦该耗时的操作完成时,则会通知需要调用其结果的函数来做后续处理。这是一种异步非阻塞的操作,也就是说任务的排列顺序和执行任务是不一致的。 回调函数 和同步操作不同,异步操作即不会立即返回结果的操作(如发起网络请求,下载文件,操作数据库等)。如果我们后续的函数需要之前返回的结果,又怎样使之前的异步操作在其完成时通知到后续函数来执行呢? 通常,我们可以将这个函数先定义,存储在内存中,将其当做参数传入之前的异步操作函数中,等异步操作...阅读全文

博文 2021-08-29 03:14:21 juejin.cn