hsf 第一次学习

本文介绍了HSF(High-speed Service Framework)高速服务框架,它是分布式rpc服务框架。阐述了其同步和异步两种调用方式,还说明了服务开发流程,包括定义服务接口、打包发布到maven仓库、实现服务接口,最后通过HSF发布服务,让客户端远程调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hsf概念

hsf(High-speed Service Framework),高速服务框架,是分布式rpc服务框架

调用方式-同步调用 

hsf客户端默认以同步调用的方式消费服务,客户端代码需要同步等待返回结果 

调用方式-异步调用 

对于服务调用的客户端来说,并不是所有的HSF服务都需要同步等待返回结果的,对于这些服务,HSF 提供异步调用的形式,让客户端不必同步阻塞在 HSF 调用操作上。HSF 的异步调用

Future 调用:客户端在需要获取调用的返回结果时,通过 HSFResponseFuture.getResponse(int timeout) 主动获取结果

Callback 调用:Callback 调用利用 HSF 内部提供的回调机制,当指定的 HSF 服务消费完毕拿到返回结果时,HSF 框架会回调用户实现的 HSFResponseCallback 接口,客户端通过回调通知的方式获取结果                                                                                                          

服务

“服务”开始于接口的定义,我们首先需要根据业务逻辑定义好服务的接口 

在日常开发中,一般会将服务的接口定义在一个工程中,它会被打成一个 jar 包,发布到 maven 仓库中。服务端实现 jar 包中的接口,通过 HSF 发布对应的服务;而消费端通过依赖这个 jar 包,透过 HSF 远程调用消费到服务端的接口实现。 

定义服务接口【在hsf-guide-api下】

public interface HelloWorldService {

    /**
     * 根据参数中指定的名字,生成问候语
     *
     * @param name 被问候的姓名
     * @return 问候语
     */
    String sayHi(String name);
}

发布服务接口

mvn clean package 将 hsf-guide-api 这个服务接口工程打包成 hsf-guide-api-1.0.0-SNAPSHOT.jar

mvn clean deploy 命令将服务的接口 jar 发布到 maven 仓库后,我们可以通过 maven 坐标依赖服务的接口 

<dependency>
    <groupId>com.alibaba.middleware</groupId>
    <artifactId>hsf-guide-api</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

实现服务接-将服务 HelloWorldService 的实现类 HelloWorldServiceImpl 放在 hsf-guide-biz工程中

public class HelloWorldServiceImpl implements HelloWorldService {

    @Override
    public String sayHi(String name) {
        if (name == null || name.length() == 0) {
            return null;
        }
        return "Hi, " + name + "! Welcome to the HSF world.";
    }
}

 至此,我们的服务提供方实现代码就编写完成了,并且还没有涉及到 HSF。这是因为,我们希望你的服务接口(API)和业务实现可以足够的干净,只有这样一个依赖精简的本地服务才能够更加安全可靠的转换成为一个分布式服务。

发布hsf服务

根据服务接口定义 HelloWorldService 完成本地服务 HelloWorldServiceImpl 的实现后,我们只需要将这个服务通过 HSF 发布出去,就可以让其他 HSF 客户端通过远程调用消费到当前机器的服务了。

我们将发布 HSF 服务的代码,放在 hsf-guide-server-normal 工程中,并作为 HSF 服务提供方的启动入口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值