一、HFS简介
1、 HFS其本质是一种RPC框架,用于服务的远程调用,定义唯一服务三元素:接口(serviceInterface)、版本(serviceVersion)、组(serviceGroup),类似maven的GAV。通过注解@HSFProvider、@HSFConsumer定义提供方和消费方。屏蔽了分布式领域中的复杂技术细节,如:远程通讯、序列化实现、性能损耗、同步/异步调用方式的实现等。其高速体现在底层的非阻塞I/O以及优秀的序列化机制上。
2、其系统架构图如下:
在上图中可以看到,其中核心角色包括服务提供者、服务消费方以及地址注册中心。其中服务提供方负责将服务地址注册到地址注册中心,而服务消费者从地址注册中心获取服务提供者地址,服务提供者和消费者之间则通过RPC调用的方式来进行通讯。
二、使用方法说明
通过注解@HSFProvider来指定服务的提供者所需要的方法,其中该注解有几个可以填写的配置项,如serviceInterface指定对应的继承接口类,serviceVersion指定对应的服务版本
@HSFProvider(serviceInterface = Test.class,serviceVersion = "${spring.hsf.version}")
public class TestImpl implements Test{//实现接口里定义的方法
}
对于消费者的声明采用@HSFConsumer注解来进行指定,同样可以配置一些选项,包括serviceVersion(版本号)和clientTimeout等
@Configuration
public class HsfConfig {@HSFConsumer(serviceVersion = "${spring.hsf.version}")private TestService test;
}
消费者的服务调用方式如下:
@Resource
private Test test;public String test() {return test.method();
}
//method指的是具体的方法