Results 6 issues of Klaus

I try to emit plain string to client after marshaling json object, but client got a base64 encode string, how to disable it? It bothered me several days.

- expose FontSize attribute - support generate multi letter image

## 分布式事务概述 分布式事务本质上是一次业务请求,操作了不同库的不同数据。而在业务上是要求此次业务请求最终的结果是各数据库的数据是可对帐且一致的。 分布式事务解决方案有符合XA规范的2PC、3PC,最终一致性方案TCC、Saga、Seata及MQ事务消息;XA方案能最大程度保证一致性但性能开销大;TCC等方案对业务侵入深,对开发不友好,RTT损耗约为10%;本设计最终落地选择MQ事务消息,其对业务侵入相对较小、保证吞吐的同时最大程度保证数据最终一致。 MQ事务消息基于两个前提: - MQ保证消息不丢失且至少消费一次(At Least Once) > 可选RabbitMQ、RocketMQ、Kafka - 消费方要确保幂等 > Redis保证幂等防重入 阿里云RocketMQ支持事务消息,但本组件并不采用事务消息。如下图所示为阿里云事务消息流程。 ![RocketMQ事务消息](https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/zh-CN/6087385851/p69094.png) RocketMQ事务消息需要先发送半消息,发送成功才能执行本地事务,半消息投递成功还需要提供callback供broker回查本地事务执行状态。然而实际生产中这样操作并不一定合理。 - 投递MQ成功与否并不能决定是否执行本地事务 - 如果MQ能保证投递的消息不丢失且至少消费一次,提供回查接口其实增加了业务复杂度 ## MQ事务设计 基于以上归纳,以用户购买储值卡后,需要更新积分、帐户余额、更改会员等级为例(单体应用时,下单与这些操作属于同一事务),选型RocketMQ提出以下事务消息设计方案: ``` 下单事务逻辑包括:(下单业务逻辑+事务消息处理) => local transaction...

Draft

I use montsache to sync 100 tables data to es.Monstache version 6.7.17, Resume type is token, mongo version is 3.6.21, my linux server is 8 core 16G memory. Everytime I...

First I produce 1k msg to broker, then I run the examples/consumer/pull/pull.go code with minor changes (only start one goroutine to consume), just like ```go for i := 0; i...