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

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 美团技术团队

JAVA反序列化 - 反射机制

推荐阅读时间:30min 全文字数:1w 前言 真正反序列化漏洞的利用,肯定需要了解java反射原理。因为java反序列化的payload大多与反射机制密切相关。 那么这篇文章就是主要讲述反射机制,算是基础知识。 除了反射机制之外,后续还基于commons-collections链最后的反射机制触发点,进行了详细的反射机制特性的绕过说明。由于它与反射机制密切相关,就放在这边进行统一归纳理解。 可以配合本人的另一篇文章commons-collections食用 java反射机制 在Java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。 让jav...阅读全文

博文 2020-06-05 08:55:41 先知社区

使用kryo做序列化会遇到的几个坑_paoma_1008的博客

Kryo 序列化与反序列化一些问题 gaording的博客 03-27 1792 公司其他组有个公共的maven依赖包中的序列化与反序列化采用了kryo,所以我在新代码中也测试了下kryo,测试的时候有几个问题记录如下: 1.kryo反序列化时是通过反射默认调用类的无参构造函数,如果类或者类的对象属性没有无参构造构造函数,则会抛出反序列化失败的异常,解决方法可以写一个继承kryo类的子类,重新实现通过反射去获取实例的方法,参考博客:https://vyloy.iteye.... Redis使用kryo来进行序列化遇到的问题 qq_28600087的博客 04-09 1876 1.通过spring-data-redis集成redis,使用kryo的方式来序列化value值,kryo是一款高性能...阅读全文

博文 2022-03-23 12:56:04 CSDN博客

[总结]Spring事务管理中@Transactional的参数

@Transactional注解就代表支持事务管理,@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。如果这个注解在类上,那么表示该注解对于所有该类中的public方法都生效;如果注解出现在方法上,则代表该注解仅对该方法有效,会覆盖先前从类层次继承下来的注解。 @Transactional 注解只能应用到 public 可见度的方法上。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错, 但是这个被注解的方法将不会展示已配置的事务设置。 注意仅仅 @Transactional 注解的出现不足于开启事务行为,它仅仅 是一种元数据。必须在配置文件中...阅读全文

博文 2020-03-08 03:08:28 Mobabel

Thrift笔记(六)--单端口 多服务 - luckygxf

多个服务,使用监听一个端口。先上一个demo Test.thrift namespace java com.gxf.thrift enum RequestType { SAY_HELLO, //问好 QUERY_TIME, //询问时间 } struct Request { 1: required RequestType type; // 请求的类型,必选 2: required string name; // 发起请求的人的名字,必选 3: optional i32 age; // 发起请求的人的年龄,可选 } exception RequestException { 1: required i32 code; 2: optional string reason; } // 服务名 ser...阅读全文

博文 2021-05-02 16:26:40 博客园

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 思否

使用Java Low Level REST Client操作elasticsearch - ~冰

Java REST客户端有两种风格: Java低级别REST客户端(Java Low Level REST Client,以后都简称低级客户端算了,难得码字):Elasticsearch的官方low-level客户端。 它允许通过http与Elasticsearch集群进行通信。 不会对请求进行编码和响应解码。 它与所有Elasticsearch版本兼容。Java高级REST客户端(Java High Level REST Client,以后都简称高级客户端):Elasticsearch的官方high-level客户端。 基于low-level客户端,它公开了API特定的方法,并负责处理。 低级客户端 的功能包括: 依赖最小 所有可用节点,会负载平衡 在节点故障和响应特定状态码的情况下会进行...阅读全文

博文 2020-12-03 05:58:47 博客园

HeadFirst 设计模式学习笔记8--代理模式_Java_数据库天地

1.这一节的任务是我们需要完成对上一节的糖果机产生一个机器状况和余量的报告,若这个报告在本地(不是通过Internet)生成的话,那么我们的设计就很简单了,在糖果机中加入Location的信息,并且创建一个类GumballMonitor 完成报告的生成: public class GumballMonitor { GumballMachine machine; public GumballMonitor(GumballMachine machine) { this.machine = machine; } public void report() { System.out.println("Gumball Machine: " + machine.getLocation()); System...阅读全文

博文 2020-04-21 02:18:57 CSDN博客

UML 各种图总结精华

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

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

PM必须懂的4种项目管理模型

瀑布模型、迭代模型、增量模型、原型模型,是项目管理常见的四种模型。每种模型都有其优缺点和适用的项目类型。项目经理针对不同的项目用对模型,才能起到事半功倍的作用。 一、瀑布模型 用瀑布模型做项目就像古代匠雕刻玉石,先有完整的设计图,然后按部就班往前推进,中间不能出一点差错,追求的是“一次成型”。 这就是瀑布模型,最基本也最常用的一种项目管理模型,又称线性模型。 采用瀑布模型的项目依照该模型选定的阶段顺序进行,每一个阶段的工作产品都是下一个阶段工作的输入,每一个阶段只有在上一个阶段通过检查,确认完成后才开始新的阶段工作。 ![image.png](https://img-blog.csdnimg.cn/20200506142607355.png?x-oss-process=image/water...阅读全文

博文 2020-05-06 07:58:52 CORNERSTONE

什么是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属性

Flink

TIP 本文主要是介绍 Flink-SpringBoot结合案例 。 Spring Boot整合Flink【----------------------------】Flink与Spring Boot的集成Spring容器的集成点依赖jar包注意点maven打包注意点注意包冲突目前方案的缺陷与解决思路参考文章 # Spring Boot整合Flink 使用spring boot整合flink可以快速的构建起整个应用,将关注点重点放在业务逻辑的实现上。在整合的过程中遇到许多问题,最大的问题是flink流无法访问spring容器中的类,从而导致空指针异常,解决思路是在流中进行spring bean的初始化以获得ApplicationContext,进而使用其getBean方法获取类实例。 软件版...阅读全文

博文 2022-07-25 02:23:25 SpringBoot结合案例 | 智能后端和架构

flink taskmanager&slots&并行度&任务链&task分配详解 - 民宿

TaskManger与Slots Flink中每一个worker(TaskManager)都是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask。为了控制一个worker能接收多少个task,worker通过task slot来进行控制(一个worker至少有一个task slot)。 每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三份给各个slot。资源slot化意味着一个subtask将不需要跟来自其他job的subtask竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。需要注意的是,这里不会涉及到CPU的隔离,slot目前仅仅用来隔离task的受管理的内存。...阅读全文

博文 2022-10-02 13:27:55 博客园

SpringCloudAlibaba高并发仿斗鱼直播平台实战

## SpringCloudAlibaba高并发仿斗鱼直播平台实战 download:https://www.zxit666.com/6371/ Dubbo服务调用原理剖析 段落一:简介 Dubbo是一款高性能、轻量级的分布式服务框架,主要用于解决分布式应用中的服务调用和管理问题。它提供了多种通信协议和负载均衡策略,支持服务的注册与发现、远程调用和容错处理等功能。 段落二:服务注册与发现 在Dubbo中,服务注册与发现是实现服务调用的基础。当服务提供者启动时,它会将自己的地址信息注册到注册中心。而服务消费者则从注册中心获取提供者的地址,并建立与提供者的连接。Dubbo支持多种注册中心,如Zookeeper、Consul等,通过注册中心的协调,实现了服务的动态发现和路由。 段落三:远程调用 D...阅读全文

fastjson:对key为非String类型的Map的序列化和反序列化问题_map序列化和反序列化_10km的博客

我们可以看到,免邀请码安装成功,两个用户成功绑定了邀请关系,且过程中未使用复杂的邀请码机制。总的来说,免填邀请码是基于 Xinstall 的携带参数安装功能实现的,免填邀请码只是其中一个比较典型的应用场景,实质通过携带邀请人 id 参数安装,实现用户关系绑定。而且Xinstall 只负责帮 App 传递需要的参数,具体该参数如何定义,怎么使用,企业可以大开脑洞,根据自身业务需求来实现。因此,根据携带参数安装的原理,除了免填邀请码之外,同样可以实现用户关系绑定、场景还原、推广效果统计等功能...阅读全文

博文 2023-02-07 08:14:20 CSDN博客

深入可观测底层:OpenTelemetry 链路传递核心原理

前言本文会系统讲解链路传递一些基本概念,同时结合案例讲解链路传递的过程。Context、Propagator 的概念我们先看一张在 HTTP 通信下,进行链路传播的例子。图中是一个 Client 请求 Server 通信,同时 Client 把自己的链路信息传递给 Server 的过程可以看到,链路信息通过一个叫 TraceContext 对象封装起来,通过 Http Headers来存取这个对象,最后达到传播的效果,这里面 TraceContext 就是一个 Context 上下文对象。Context 是一种传播机制,它跨越 API 边界,在逻辑执行单元间传递执行范围的值。链路追踪系统在系统进程内部,进程间通过共享进程的 Context 上下文 对象传递链路信息。刚才 Http Heade...阅读全文

博文 2023-10-16 11:02:18 知乎

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

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

让kryo支持反序列化没有无参构造方法的类 - 翁志艺的博客

阅读更多 动态得到类的实例,我们通常通过反射来得到。但有时候,类缺少默认构造方法,我们又不想传参来实例化,这时候怎么办呢? 我们还可以通过sun.reflect.ReflectionFactory来完成,例子如下: import java.lang.reflect.Constructor; import java.util.concurrent.ConcurrentHashMap; import sun.reflect.ReflectionFactory; import com.esotericsoftware.kryo.Kryo; public class Kryox extends Kryo { private final ReflectionFactory REFLECTION_FAC...阅读全文

博文 2023-05-17 08:42:20 ITeye博客

Kryo 序列化与反序列化一些问题_kryo序列化反序列化_gaording的博客

公司其他组有个公共的maven依赖包中的序列化与反序列化采用了kryo,所以我在新代码中也测试了下kryo,测试的时候有几个问题记录如下: 1.kryo反序列化时是通过反射默认调用类的无参构造函数,如果类或者类的对象属性没有无参构造构造函数,则会抛出反序列化失败的异常,解决方法可以写一个继承kryo类的子类,重新实现通过反射去获取实例的方法,参考博客:https://vyloy.iteye.com/blog/1483029 2.kryo在序列化和反序列化ArrayList和HashMap时需注册ArrayList.class和HashMap.class的序列化类,才可序列化和反序列化成功 MapSerializer serializer = new MapSerializer(); seri...阅读全文

博文 2023-05-17 08:46:14 CSDN博客

一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统

本文分享自天翼云开发者社区《一种Mysql和Mongodb数据同步到Elasticsearch的实现办法和系统》,作者:l****n核心流程如下:​核心逻辑说明:MySQL Binlog解析:首先,从MySQL的二进制日志(Binlog)中解析出表名。这一步骤非常关键,因为我们只关注特定表的数据变更。进一步,我们检查Binlog中的操作类型,如INSERT、UPDATE和DELETE,以确定是否是表数据的变动操作。这是因为我们只需要捕获数据的变更,而不关心查询操作。如果操作是INSERT或DELETE,我们只需要关注受影响的数据行。对于UPDATE操作,我们需要记录新旧值的变化。内存中数据组装:从解析过的Binlog数据中,我们构建一个内存数据结构,通常是一个数据对象,其中包括表名、字段名、...阅读全文

博文 2023-11-06 17:42:58 Tianyiyun

SpringBoot+Vue3 项目实战,打造企业级在线办公系统【升级版16章】

SpringBoot+Vue3 项目实战,打造企业级在线办公系统【升级版16章】 视频课程分享——SpringBoot+Vue3 项目实战,打造企业级在线办公系统,最新升级版16章,附源码+电子书下载。 在线办公系统的开发主要包括前端开发和后端开发,应根据系统需求分配相应的工作量和任务。 1. 前端开发。 在线办公系统采用的是前后端分离模式。前端应用层使用React、Vue或Angular等框架开发,实现交互设计和页面开发。 2. 后端开发。采用Spring Boot、Spring Cloud、Docker等技术,实现应用逻辑和数据操作。 3. 代码开发规范。代码开发规范非常重要,可采用团队组建的方法,提高团队的协作效率及代码的质量。 在开发项目的过程中,很多人都喜欢自定义异常,处理异常的时...阅读全文

博文 2023-12-25 16:21:22 woaiwodejia333

linux中iptables如何删除一条规则-腾讯云开发者社区

linux中iptables删除一条规则的方法:1、打开linux终端;2、在终端命令行中输入“iptables -L -n”命令查看出当前的防火墙规则;3、输入“iptables -L -n --line-number”命令查看到每个规则chain的序列号;4、根据序列号删除指定一条防火墙则即可。linux中iptables如何删除一条规则具体操作步骤:1、在linux系统桌面中使用快捷键【Ctrl+Alt+T】打开linux终端命令行模式。2、在linux终端命令行中输入以下命令查看出当前的防火墙规则。iptables -L -n复制3、输入以下命令查看到每个规则chain的序列号。iptables -L -n --line-number复制4、最后输入以下命令根据序列号删除指定一条防火...阅读全文

博文 2023-12-12 14:52:42 腾讯云

【Java】使用fastjson进行序列化时出现空指针异常问题研究 - shanml

最近在使用fastjson的JSONObject.toJSONString()方法将bean对象转为字符串的时候报如下错误: com.alibaba.fastjson.JSONException: write javaBean error, fastjson version 1.2.58, class com.sun.proxy.$Proxy395, fieldName : 0 at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:523) at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSe...阅读全文

博文 2024-02-05 16:14:20 博客园

浅谈下Fastjson的autotype绕过

前言继去年1.2.47 Fastjson被绕过之后,最近的1.2.68又出现了绕过。 正好前段时间翻了一遍Fastjson的源码,对整体逻辑有了一些了解,就尝试分析下autotype的校验过程,以及这两次绕过的思路。若有错误,还望指出。 autotype的校验为什么校验一直被绕过?1.2.24之后,fastjson对反序列化的类型进行了校验,主要就体现在ParserConfig.checkAutoType函数中 里面会对反序列化的类型进行黑白名单和校验,然后获取对应的Java类。 至于为什么没开启SupportAutoType属性依然会存在反序列化的危险呢? 可以看到在解析过程中,只要key值为@type时,就会进入checkAutoType函数尝试获取类。 而且校验SupportAutoT...阅读全文

博文 2024-03-18 11:16:58 Kingkk's Blog

Fastjson踩“坑”记录和“深度”学习_fastjson noneautotype

作者:陶征策 阿里国际站商家技术团队 Fastjson是阿里开发的Java语言编写的高性能JSON库,本文总结了Fastjson使用时的一些注意事项,并简单分析了Fastjson的底层工作原理,结合具体的验证代码以及跟Jackson的对比,希望能帮助大家充分理解Fastjson的使用。 一、为什么写这篇? Fastjson是阿里开发的Java语言编写的高性能JSON库,用于将数据在JSON和Java Object之间互相转换,提供两个主要接口JSON.toJSONString和JSON.parseObject来分别实现序列化和反序列化操作,使用起来很方便。 最近在升级一个老系统的缓存架构,使用Fastjson将对象序列化后存入缓存,并在client端反序列化后使用,以减少对后端hsf的请求次...阅读全文

博文 2024-03-18 10:49:12 CSDN博客

fastjson 如何去掉反斜杠_fastjson去除反斜杠

fastjson如何去掉多余的反斜杠 m0_37979201的博客 03-09 2万+ {"data":"{\"message\":\"\",\"result\":0,\"data\":{\"cardtype\":0,\"sealimgs\":[\"{\\\"id\\\":16,\\\"img\\\":\\\"H4znOvV8Cb101BRlW6WhIU8n8B6GEqjM44AAA=\ java fastJson 转JSON 两个转义 最新发布 抓饭不吃皮牙子 03-06 516 除了针对特殊字符的转义外,有时我们还需要自定义转义规则,比如将特定的字符序列替换为另一个字符。FastJson提供了接口,可以实现自定义转义逻辑。@Override// 自定义转义规则,将"world"替换为"u...阅读全文

博文 2024-04-09 14:04:53 CSDN博客