RocketMQ 发送普通消息有三种实现方式:可靠同步发送
2025年09月08日
订单状态流转是交易系统的最为核心的工作,订单系统往往都会存在状态多、链路长、逻辑复杂的特点,还存在多场景、多类型、多业务维度等业务特性。在保证订单状态流转稳定性的前提下、可扩展性和可维护性是我们需要重点关注和解决的问题。
2025年09月08日
Apache RocketMQ 是一款 低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
2025年09月08日
Coze Studio 开源版是字节跳动推出的Coze平台的一个开源版本,旨在为开发者和用户提供一个低代码、无代码的AI应用开发平台。Coze Studio 开源版的核心目标是简化AI机器人的开发流程,使用户能够快速构建基于AI模型的问答Bot、智能体、AI应用和插件,并将其部署到各种社交平台和即时通讯应用中。
2025年09月08日
作者 | 同程旅行研发中心-基础技术团队
背景介绍
在数据驱动的时代,企业面临数据密集型业务场景的挑战,尤其在数据存储、检索与实时分析方面存在迫切需求。Elasticsearch(ES)作为一款开源的分布式搜索引擎,凭借其高性能、高可用性与强大灵活的查询特性,使其广泛应用于日志分析、向量搜索和复杂查询等场景。
在同程旅行的核心业务中,ES 为会员、搜索和订单等多个关键业务系统提供底层支撑。目前集群规模已扩展至数百个集群、数千个节点,并且仍在快速增长中。因此也急需构建一套满足高可靠性、高性能与低成本要求的 ES 平台,以支撑业务的持续高速发展。
2025年09月08日
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>5.3.3</version>
</dependency>2025年09月05日
SOLIDWORKS 宏是自动执行重复性任务和流程的代码段。例如,隐藏工程图中的所有草图,从 BOM 表中快速排除特定零部件,或完成一系列建模操作。
在本文中,您将了解 SOLIDWORKS API 并学习如何创建自己的 SOLIDWORKS 宏。
2025年09月05日
下面的文件是在最小gltf文件基础上增加了动画,表示的是上图所示的一个旋转的三角形,针对动画部分添加了注释
{
"scene": 0,
"scenes" : [
{
"nodes" : [ 0 ]
}
],
"nodes" : [
{
"mesh" : 0,
// rotation属性是使用4元数表示的旋转,[0,0,0,1]表示旋转角度为0°,即没有任何旋转,这里不对四元数做相关说明,后续文章再单独介绍
"rotation" : [ 0.0, 0.0, 0.0, 1.0 ]
}
],
"meshes" : [
{
"primitives" : [ {
"attributes" : {
"POSITION" : 1
},
"indices" : 0
} ]
}
],
//该属性定义动画内容
"animations": [
{
//表示动画数据来源
"samplers" : [
{
//input对应accessors,2表示第2个序列数据,这个数据对应5个时间节点
"input" : 2,
//动画数据只是关键帧,interpolation定义了中间过渡动画插值方法,LINEAR表示采用线性插值
"interpolation" : "LINEAR",
//input对应accessors,3表示第3个序列数据,这个数据对应5个四元数表示的旋转
"output" : 3
}
],
//通道,动画可以包含多个通道,每个通道一般都是简单的动画,多个通道组合可以产生复杂的动画效果
"channels" : [ {
//对应samplers[0]
"sampler" : 0,
//指定动画的目标对应
"target" : {
//对应nodes[0]
"node" : 0,
//这里表示nodes[0]中的rotation属性应该被执行
"path" : "rotation"
}
} ]
}
],
"buffers" : [
{
"uri" : "data:application/octet-stream;base64,AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA=",
"byteLength" : 44
},
//buffers[1]表示的旋转相关的数据,响应的解码后的十六进制见后面截图,共100个字节
{
"uri" : "data:application/octet-stream;base64,AAAAAAAAgD4AAAA/AABAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAD0/TQ/9P00PwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAPT9ND/0/TS/AAAAAAAAAAAAAAAAAACAPw==",
"byteLength" : 100
}
],
"bufferViews" : [
{
"buffer" : 0,
"byteOffset" : 0,
"byteLength" : 6,
"target" : 34963
},
{
"buffer" : 0,
"byteOffset" : 8,
"byteLength" : 36,
"target" : 34962
},
// 对应buffers[1],字节长度为100
{
"buffer" : 1,
"byteOffset" : 0,
"byteLength" : 100
}
],
"accessors" : [
{
"bufferView" : 0,
"byteOffset" : 0,
"componentType" : 5123,
"count" : 3,
"type" : "SCALAR",
"max" : [ 2 ],
"min" : [ 0 ]
},
{
"bufferView" : 1,
"byteOffset" : 0,
"componentType" : 5126,
"count" : 3,
"type" : "VEC3",
"max" : [ 1.0, 1.0, 0.0 ],
"min" : [ 0.0, 0.0, 0.0 ]
},
{
//对应bufferViews[2]
"bufferView" : 2,
//起始偏移量为0
"byteOffset" : 0,
//5126表示数据类型为FLOAT,占用4个字节
"componentType" : 5126,
//有5组数据,共占用5x4=20字节,每个数据表示一个时间点
"count" : 5,
//数据为标量
"type" : "SCALAR",
"max" : [ 1.0 ],
"min" : [ 0.0 ]
},
{
//对应bufferViews[2]
"bufferView" : 2,
//起始偏移量为20
"byteOffset" : 20,
//5126表示数据类型为FLOAT,占用4个字节
"componentType" : 5126,
//有5组数据,共占用5x(4x4)=80字节,每个数据对应一个四元数,表示对应时间点旋转的角度
"count" : 5,
//数据为VEC4向量,使用4元数来表示旋转
"type" : "VEC4",
"max" : [ 0.0, 0.0, 1.0, 1.0 ],
"min" : [ 0.0, 0.0, 0.0, -0.707 ]
}
],
"asset" : {
"version" : "2.0"
}
}
2025年09月05日
专注于Java领域优质技术,欢迎关注
作者:java小瓜哥
自从毕业后,今年已经是我工作的第 8 个年头了,我甚至都快忘记了到底是那年毕业的。从出来本人一直在做 Java 相关的工作,现在终于有时间坐下来,写一篇关于 Java 写法的一篇文章,来探讨一下如果你真的是一个 Java 程序员,那你真的会写 Java 吗?
笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获。