远程服务与云:从架构优化到云弹性的探索
1. 远程服务面临的挑战
在远程服务的应用场景中,存在着诸多需要解决的问题。首先是接口设计方面,以客户对象的 setAddress() 方法为例,它大多成为了值的结构。由于消费包通常并不知道自己正在处理远程服务,所以接口设计的责任主要落在了服务提供者身上。
其次,通信传输可能会因各种原因在任意时间中断。在服务提供者端,我们对此能做的处理有限,因此需要在客户端本身针对这种可能性进行设计。例如,在调用 updateCustomerAddress() 方法之前,有线或无线网络连接可能会丢失,导致导入分发提供者与导出分发提供者失去连接。在这种情况下,导入的服务应该抛出运行时异常 ServiceException ,消费包需要做好处理该异常的准备。以下是一个简单的异常处理示例代码:
ServiceReference servRef =
bundleContext.getServiceReference(RemoteCustomerRegistry.class.toString());
if (servRef != null) {
RemoteCustomerRegistry registry =
(RemoteCustomerRegistry) bundleContext.getService(servRef);
try {
registry.updateCustomerAddress("Alex", "Updated Address!");
超级会员免费看
订阅专栏 解锁全文
2644

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



