《Saga分布式事务解决⽅案与实践》演讲者/姜宁柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • d") .bean(creditService, "reserveCredit") .log("Credit ${header.amount} reserved. Custom Id used is $ {body}"); // called only if the saga is cancelled from("direct:creditRefund") .tra the CreditId option from headers .bean(creditService, "refundCredit") .log("Credit for Custom Id ${body} refunded"); https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/saga-eip0 码力 | 39 页 | 2.78 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • Confirm:确认执⾏行行业务 • 真正执⾏行行业务,不不做业务检查 • Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended T2 Started params { T1:[a,b], C1:[c,d], ... } config { T1: name, path, C1:name, path, ... } Transaction Viewer Caller Aggregator 1 Saga Saga Saga ID: x Saga Log Saga Started T1 Started T1 Ended T2 Started params { T1:[a,b], C1:[c,d], ... } config { T1: name, path, C1:name, path, ... } Transaction Viewer Caller Aggregator 10 码力 | 33 页 | 2.38 MB | 1 年前3
Nim 2.0.2 中文手册string # *表示可以从其他模块访问 `name` age: int # 没有 * 表示该字段已隐藏 Student = ref object of Person # 学⽣是⼈ id: int # 有个 id 字段 var student: Student person: Person assert(student of Student) # 是真 assert(student of object # final 对象的例⼦ name* : string age: int Student = ref object of Person # 错误: 继承只能⽤于⾮ final 对象 id: int 请注意,与元组不同,对象需要字段名称及其值。对于 ref object 类型,隐式调⽤ system.new 。 对象变体 在需要简单变体类型的某些情况下,对象层次结构通常有点 int): void {.forbids: [MyEffect].} type ProcType2 = proc (i: int): void proc caller1(p: ProcType1): void = p(1) proc caller2(p: ProcType2): void = p(1) proc effectful(i: int): void {.tags: [MyEffect]0 码力 | 127 页 | 7.05 MB | 1 年前3
阮一峰 JavaScript 教程的 b 都被替换掉了。 replace 方法的一个应用,就是消除字符串首尾两端的空格。 1. var str = ' #id div.class '; 2. 3. str.replace(/^\s+|\s+$/g, '') 4. // "#id div.class" replace 方法的第二个参数可以使用美元符号 $ ,用来指代所替换的 内容。 $&:匹配的子字符串。 5. }; 6. 7. var template = 'id="p1">' 8. + 'id="p2">' 9. + 'id="p3">'; 10. 11. template.replace( 12. /(id=")(.*?)(">)(<\/span>)/g, 13. function(match return $1 + $2 + $3 + prices[$2] + $4; 15. } 16. ); 17. // "id="p1">$1.99id="p2">$9.99id="p3">$5.00" 上面代码的捕捉模式中,有四个括号,所以会产生四个组匹配,在匹配 函数中用 $1 到 $4 表示。匹配函数的作用是将价格插入模板中。0 码力 | 540 页 | 3.32 MB | 10 月前3
使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2019.1)改变备注框的形状 1 时序图 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon 这些修饰符可以写在行的开始或者结束。也可以使用 {classifier} 这个修饰符来代替 {static}. @startuml class Dummy { {static} String id {abstract} void methods() } @enduml PlantUML 语言参考指引 (1.2019.1) 34 / 145 3.6 高级类体 3 类图 3.6 高级类体 1) 84 / 145 8.4 类图中的通用特性 8 对象图 user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 146 页 | 1.91 MB | 1 年前3
PlantUML 1.2019.3 语言参考指引@enduml 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon endrnote 这些修饰符可以写在行的开始或者结束。也可以使用 {classifier} 这个修饰符来代替 {static}. @startuml class Dummy { {static} String id {abstract} void methods() } @enduml PlantUML 语言参考指引 (1.2019.3) 36 / 156 3.6 高级类体 3 类图 3.6 高级类体 类图中的通用特性 8 对象图 @startuml object user user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 157 页 | 1.78 MB | 1 年前3
PlantUML 1.2019.2 语言参考指引@enduml 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon endrnote 这些修饰符可以写在行的开始或者结束。也可以使用 {classifier} 这个修饰符来代替 {static}. @startuml class Dummy { {static} String id {abstract} void methods() } @enduml PlantUML 语言参考指引 (1.2019.2) 36 / 156 3.6 高级类体 3 类图 3.6 高级类体 类图中的通用特性 8 对象图 @startuml object user user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 157 页 | 1.78 MB | 1 年前3
使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2019.6)@enduml 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon endrnote {static}. @startuml PlantUML 语言参考指引 (1.2019.6) 36 / 173 3.6 高级类体 3 类图 class Dummy { {static} String id {abstract} void methods() } @enduml 3.6 高级类体 PlantUML 默认自动将方法和属性重新分组,你可以自己定义分隔符来重排方法和属性,下面的分隔符都 是可用的:-- 类图中的通用特性 8 对象图 @startuml object user user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 174 页 | 1.98 MB | 1 年前3
使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2019.9)@enduml 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon endrnote {static}. @startuml PlantUML 语言参考指引 (1.2019.9) 36 / 173 3.6 高级类体 3 类图 class Dummy { {static} String id {abstract} void methods() } @enduml 3.6 高级类体 PlantUML 默认自动将方法和属性重新分组,你可以自己定义分隔符来重排方法和属性,下面的分隔符都 是可用的:-- 类图中的通用特性 8 对象图 @startuml object user user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 174 页 | 2.00 MB | 1 年前3
使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2019.4)@enduml 1.13 改变备注框的形状 你可以使用 hnote 和 rnote 这两个关键字来修改备注框的形状。 @startuml caller -> server : conReq hnote over caller : idle caller <- server : conConf rnote over server "r" as rectangle "h" as hexagon endrnote 这些修饰符可以写在行的开始或者结束。也可以使用 {classifier} 这个修饰符来代替 {static}. @startuml class Dummy { {static} String id {abstract} void methods() } @enduml PlantUML 语言参考指引 (1.2019.4) 36 / 164 3.6 高级类体 3 类图 3.6 高级类体 类图中的通用特性 8 对象图 @startuml object user user : name = "Dummy" user : id = 123 @enduml 也可以用大括号批量声明属性。 @startuml object user { name = "Dummy" id = 123 } @enduml 8.4 类图中的通用特性 • 可见性 • 定义注释 • 使用包 • 美化输出内容0 码力 | 165 页 | 1.89 MB | 1 年前3
共 745 条
- 1
- 2
- 3
- 4
- 5
- 6
- 75













