2017-12-08 刘太华
微服务(分布式)架构下,关于事务补偿机制 整个17年整理过不少遇到的case,在笔记内太凌乱,太懒没做整理,瞬间已经12月,17年算是结束了。整理一个笔记,给2017留下点回忆哈哈 :)   概述 微服务,或是非集中式应用,也就是系统架构做拆分后,会涉及一个非常典型的问题,就是事务的问题。不管是特别在意一致性的金钱相关的,还是其他业务场景,都不同程度存在一个操作流转与多个服务之间的问题。     这其中涉及的分布式事务问题,随便搜一把,够看一礼拜了,不过多数都是重复的,TCC, 二阶段,三阶段,最重要还是在业务中挖掘发现自己试用的场景。 这里总结表述的是事务性数据补偿的方案。   继续阅读 »
2016-12-03 ruki
为了进一步裁剪tbox,更好的适配嵌入式开发平台,tbox新增了--micro=y的微模块编译选项 如果启用此编译选项,那么只会编译tbox里面较轻量的一些模块,是的编译后的库大小,尽量保证在64K左右。 先来讲讲一些跟库大小相关的编译选项: * `--smallest=y`: 通用平台,最小编译模式,会禁用所有第三方依赖库,禁用所有扩展模块,启用最小化编译优化(库内部也会尽可能节省内存使用) * `--micro=y`: 专门针对嵌入式平台设计,仅编译最为轻量的一些模块,启用最小化编译优化(有可能会包含一些可选组件) smallest和micro的区别在于,即使启用了smallest禁用所有扩展模块,但是还是会内置比m 继续阅读 »
2016-12-07 ruki
Stackless introduction Stackfull introduction More coroutine examples New features Support coroutine context switch for mips Add __tb_thread_local__ keyword macro Add --micro=y|n option to compiling micro library (~64K) for the embed system Add tb_addrinfo_addr and tb_addrinfo_name interfaces Add stackless coroutine A 继续阅读 »
2016-12-07 ruki
此版本主要增加stackless协程模块以及为嵌入式平台增加micro微模块编译(~64K)。 此stackless协程模块比之前的stackfull协程实现更加的轻量高效,切换效率提升5、6倍,在macosx上测试1000w次切换仅需40ms 当然易用性和灵活性上,还是stackfull模式更有优势(tbox两种模式都已支持,接口类似)。 stackless协程使用见:stackless协程使用文档 stackfull协程使用见:stackfull协程使用文档 更多协程服务器demo实现,请参考:协程examples 新特性 针对协程上下文切换,支持mips架构 添加__tb_thread_local__关键字宏 添加 继续阅读 »