本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

业务视角下的微服务架构设计实例(4)

时间:2017-06-05 18:52来源:天下彩论坛 作者:本港台直播 点击:
显然前一种地址包含的信息更多,它告诉了访问者订单(orders)是属于用户(users)这个实体中的一个子实体,并且包含了一个潜在业务规则,即如果ID为

显然前一种地址包含的信息更多,它告诉了访问者订单(orders)是属于用户(users)这个实体中的一个子实体,并且包含了一个潜在业务规则,即如果ID为123的这个用户不存在了,那么查询他下面的所有订单信息也是不具有业务意义的。实体之间的嵌套关系可以通过领域建模过程中的聚合识别。当然,这种URL结构有时会导致很长的API路径,但相比它所带来的业务语义,我们认为还是值得的。

类似的语义化例子还有例如:

• PUT /services/questions/123

• PUT /services/questions/123/comments/123

这是售后服务部分的两个API,分别用来更新提问的内容和提问的评论内容,它们也是按层级组织的。

有些通信协议中还提供了其他可以表明业务语义的元素。比如RESTful中使用GET/POST/PUT操作语义(查询/创建/修改),以及HTTP返回值中的语义信息等。在实际设计API时充分利用这些协议特性,能够使服务变得更加易用。

尾声

在这篇文章里,我们列举了一些微服务划分的实践中常见的反例和值得注意的问题,希望能为读者设计微服务架构时扫清一些阻碍。实际上,本文中提到的许多概念,包括微服务和领域驱动设计,服务的划分都只是其中的冰山一角,在冰水之下还有更多的内容值得我们在实践中去探索。

作者:林帆,ThoughtWorks咨询师

本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请点击「阅读原文」订阅《程序员》。

SDCC 2017·深圳站之架构&大数据技术实战峰会将于2017年6月10-11日于深圳南山区中南海滨大酒店举行,集阿里、腾讯、百度、滴滴出行、Intel、微博、唯品会的资深架构师和一线实践者,纳知名研发案例,遇见苏宁云商大数据中心总监陈敏敏、Apache RocketMQ联合创始人冯嘉、饿了么大数据平台部总监毕洪宇等大牛。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容