文章 2025-10-09 来自:开发者社区

【GoGin】(3)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法

1. 数据渲染 1.1 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf 1.1.1 返回JSON package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin....

文章 2023-12-28 来自:开发者社区

亿万级别Kafka演进之路:可靠性+事务+消息中间件+源码+日志

前言Kafka起初是由LinkedIn公司采用Scala语言开发的-一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现已被捐献给Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Storm、 Spark、 Flink等都支持与Kafka集成....

亿万级别Kafka演进之路:可靠性+事务+消息中间件+源码+日志
文章 2023-08-29 来自:开发者社区

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码

虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向面试官展现出自己未来技术能力的成长潜力。面试官也不会放心把具....

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
文章 2023-05-23 来自:开发者社区

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码

一转眼,都2020年了,你是否在满意的公司?拿着理想的薪水?虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向....

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析六:TCC模式中2阶段提交实现

上篇文章中,我们以TCC模式的demo为例,讲解了seata中全局事务的开启。在这个demo中,TM作为一个全局事务的管理者,会依次调用订单服务、账户服务和库存服务,如果其中一个服务抛出异常,TM就会调用失败抛出异常,这时就会通知TC,进而TC会通知RM进行事务的回滚。如果TM没有异常,就会通知TC进行事务的commit,进而TC通知RM进行事务提交。这个过程我用下面的时序图来表示:具体在RM中....

阿里中间件seata源码剖析六:TCC模式中2阶段提交实现
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析五:聊聊seata中全局事务的开启

在之前的文章《springcloud+eureka整合seata-tcc模式》中,我写了一个使用seata实现TCC模式的demo,这个demo中,我们使用了springcloud+eureka来实现的微服务,其中包括订单服务、账户服务和库存服务,服务聚合在订单这个服务。我们再来看一下TCC的官方流程图,RM都注册到TC,业务开始后,TM发起全局事务,RM报告分支事务状态,如果都prepare成....

阿里中间件seata源码剖析五:聊聊seata中全局事务的开启
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析四:AT模式2阶段提交

还记得之前讲的AT模式吗?可以回顾一下这篇文章《springcloud+eureka整合分布式事务中间件seata》这里主要讲述了springcloud+eureka微服务场景下AT模式的使用。AT模式的全局事务是依赖于分支事务(单个服务或者单个数据源的事务)的,而分支事务本质上并没有实现2阶段提交,它能模拟出2阶段提交依赖的是undolog,这个mysql本身的2阶段提交是非常类似的。分支事务....

阿里中间件seata源码剖析四:AT模式2阶段提交
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析三:聊聊seata中的ShutdownHook

前面我用2篇文章分别讲了seata中客户端(TM和RM)和服务端seata-server的初始化过程,如果熟悉seata这个分布式中间件的使用的话,这个过程还是非常清晰的。有2个地方我没有讲解,就是这2个流程初始化过程的ShutdownHook。TM、RM的shutdown之前讲过,GlobalTransactionScanner这个类就是客户端的初始化类,初始化的方法在afterPropert....

阿里中间件seata源码剖析三:聊聊seata中的ShutdownHook
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析二:聊聊TC的初始化

上一节seata源码讲解中,我们分析了RM和TM的初始化,而RM和TM的初始化,其实就是向TC建立连接,之后通过跟TC的连接来管理事务。本文我们来聊一聊TC作为server端的初始化过程。这一次,我们还是把之前讲的springcloud整合seata-tcc模式的架构图贴出来,不熟悉的可以查看这篇文章《springcloud+eureka整合seata-tcc模式》订单服务(order-serv....

阿里中间件seata源码剖析二:聊聊TC的初始化
文章 2022-12-12 来自:开发者社区

阿里中间件seata源码剖析一:聊聊RM和TM客户端初始化

这篇开始,介绍一下seata的源代码。我们再看一下seata官方TCC模式下的这张图片:而RM和TC的职责如下:Transaction Coordinator(TC): Maintain status of global and branch transactions, drive the global commit or rollback. Resource Manager(RM): Mana....

阿里中间件seata源码剖析一:聊聊RM和TM客户端初始化

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

阿里中间件

为企业提供高效、稳定、易扩展的中间件产品

+关注