avatar

正进一步

只有喜欢,才会全情投入,才会成功!!!

不关注架构设计细节的程序员不是一个好架构师

  • Home
  • Tags
  • Categories
  • Archives
  • 2018寄语
官方推荐dubbo服务端最佳实践
引自于:http://dubbo.io/books/dubbo-user-book-en/best-practice.html

模块化(Modularization)

推荐奖接口定义以及模型、异常放到一个package里。如果需要的话,考虑将消费者者的spring的xml配置文件将公共jar包放到一起,建议将xml文件分别放到不同的路径下.例如: com/alibaba/china/xxx/dubbo-reference.xml

粒度(Granularity)

尽量将服务方法粒度大一些,否则会面对事务问题.建议不要使用Map等通用接口.

版本(Version)

推荐使用两比特作为版本号 例如: <dubbo:service interface=”com.xxx.XxxService” version=”1.0” />

兼容性(Compatibility)

服务添加方法者模型添加字段需要考虑向后兼容性. 删除方法/删除字段、枚举类型删除字段都会引起兼容性问题.

序列化(Serialization)

不要使用接口作为参数或者返回值

ABA典型银行存取款问题描述

ABA典型银行存取款问题描述

错误的SQL:

1
2
update account set amount=amount-${wanted}
where user_id=${user_id} and amount=${amount}

修改之后的SQL:

1
2
3
update account set amount=amount-${wanted}
where user_id=${user_id} and amount=${amount}
and version=${prev_version}