现代 Java 企业应用开发实践
1. URI 与客户端接口
在客户端类的开发中,可能会发现 URI 泄露到了公共接口中。这并非偶然,而是为了在多个用例调用中识别资源所必需的。URI 成为了业务领域中资源的通用标识符,由于从技术 ID 创建 URL 的逻辑位于客户端,实体资源的完整 URL 就成了标识符。不过,在设计客户端控件时,工程师需要注意公共接口,尤其不能让与外部系统通信的信息泄露到业务领域。使用超媒体可以很好地支持这一做法,所有所需的传输信息都能动态获取和使用,超媒体响应的导航逻辑则位于客户端控件中。
2. 异步通信与消息传递
异步通信能使系统之间的耦合更松散,通常可以提高整体响应能力,但也会增加开销,并且适用于系统并非始终可靠可用的场景。异步通信的设计方式在概念和技术层面都有多种形式,它并不意味着在技术层面不能有同步调用。业务流程可以以异步方式构建,其中包含一个或多个不会立即执行或处理的同步调用。例如,API 可以提供同步方法来创建长时间运行的进程,之后可以频繁轮询更新。
在技术层面,异步通信通常采用消息队列或发布 - 订阅模式以面向消息的方式实现。应用程序分别直接与消息队列或代理进行通信,消息不会直接传递给特定的接收者。以下是几种实现异步通信的方式:
- 异步 HTTP 通信 :HTTP 通信的请求 - 响应模型通常涉及同步通信,客户端请求服务器资源并阻塞直到响应传输完成。而异步 HTTP 通信通常是在概念层面实现的,同步的 HTTP 调用可以触发长时间运行的业务流程。外部系统可以通过其他机制通知调用者,或者提供轮询更新的功能。
- 例如,一个复杂的用户管理系统提供创建用户的方法。假设用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



