HSF 应用开发|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 HSF 应用开发

开发者学堂课程【企业级分布式应用服务 EDAS 使用攻略:HSF 应用开发】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/359/detail/4215


HSF 应用开发


内容介绍:

一、应用开发概述

二、查看 Consumer

三、查看 Provider 应用

四、演示项目开发模块


一、应用开发概述

点开 Eclipse,新建 edas 项目 edas-parent,里面包含三个包:detail(商品模块,即 Consumer 应用)、itemcenter(类目中心,即 Provider 应用)、itemcenter-api(抽象出的通用api,在实际应用场景中,多数需要抽象出通用的接口,放到一个专用 api 中,做成 war 包,让其他的 Consumer 应用和 Provider 应用来调用)。

在实际应用过程中,一个应用既可以提供 Provider 接口,又可以作为 Consumer 调用其他应用的接口。

打开 pom.xml,查看 parent 中的 pom 依赖。可以看到这个 demo 也是基于 spring服务框架开发的一个 demo,其使用的日志框架是 SLF4J,实现是 logback。

此处要强调“日志框架”,因为目前 EDAS 默认不处理应用日志,如果开发者不自行设置应用日志滚动切割,日志会默认输入到 tomcat-的 cattalina.log,在实际生产过程中,可能会损坏磁盘。所以在实际过程中,应由开发者利用通用的日志框架对自己的业务日志进行切割和管理。


二、查看 Consumer

打开 hsf.consumer-beans.xml 查看 Consumer beans 配置文件,它消费了一个服务示例,其中声明了对应的接口、version、group;打开 logback.xml 查看 logback 的配置文件,其主要设置了日志滚动的路径,但应用开发者设置的日志最好放在HOME admin下面,因为 EDAS 开发仅有 admin 权限,如果单独设置应用日志路径在其他的路径下,可能需要 root 权限,而 EDAS 没有权限去写这个 log,因此,设置的日志最好放入 HOME admin下面。

课堂演示中主要定义了切割的大小及保留时长,切割的大小设定成30 KB,保留日期7天。还设置了日志的输出级别为“INFO”。

对于其他级别的日志配置可参考日志官方框架和网上的相关资料进行配置。然后启动应用的 Consumer。

访问方式:演示中用 springmac 编写了一个 Controller,访问地址为 list,上传一个name 的参数,调用接口是 itemService ,访问无误,但系统报错,提示“[HSF-Consumer] 未找到需要调用的服务额目标地址,需要调用的目标服务与组别一致。由于 Provider 未启动,因此调用的目标服务地址显示为0。Provider 未正常启动是报错的原因之一,还有可能是调用目标服务的版本号与组别不一致导致的。

点击左侧的 itemcenter,启动 Provider 应用,再次访问 Consumer,返回成功。

分析逻辑:点击 itemcenter-api  ItemService.java, 查看 java 的 api,api 主要 java了接口,接口中包含有2个方法,一个根据 ID 获取 Item,一个通过 Name 获取Item。而 Consumer 中是 java 了一个 name 值来获取返回值。


三、查看 Provider 应用

打开左侧 itemcenter 中的hsf-provider-beans.xml,查看其配置文件,其配置文件中声明了一个实现接口的bean,然后在Provider配置中制定了ref依赖是itemService,其version、group与Consumer保持一致。

查看其实现ItemServiceImpl.java配置文件,当ByName不等于edas时,输出“拖拉机”,等于的时候输出“奔驰”。


四、演示项目开发模块

在实际应用中,consumer可能会有多个,故可以建立多个Consumer,且同一应用中可能会有provider,故可以声明一个provider文件来启动服务接口给其他的consumer调用。

相关实践学习
微服务实战-服务注册中心 - Nacos
Nacos是阿里巴巴于2018年7月发布的一个开源项目,它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 支持几乎所有主流类型的服务的发现、配置和管理: Kubernetes Service  gRPC & Dubbo RPC Service  Spring Cloud RESTful Service  
相关文章
|
4月前
|
前端开发 JavaScript Go
开箱即用的GO后台管理系统 Kratos Admin - 介绍
这是一个前后端分离的中台、后台,后端基于go、go-kratos、ent、gorm等,前端基于vue3、ts、Antdv、Vben开发。支持多租户、数据权限、动态Api、任务调度、OSS文件上传、滑块拼图验证、国内外主流数据库自由切换和动态高级查询。集成统一认证授权、事件总线、国际化、数据验证、分布式缓存、分布式事务、Ip限流、全Api鉴权、集成测试、性能分析、健康检查、接口文档等。
481 1
开箱即用的GO后台管理系统 Kratos Admin - 介绍
|
运维 负载均衡 应用服务中间件
高速服务框架HSF的基本原理(上)
高速服务框架HSF的基本原理(上)
1879 1
|
12月前
|
安全 网络安全 数据安全/隐私保护
docker服务未启动
【10月更文挑战第2天】
820 3
|
存储 运维 Dubbo
HSF:阿里RPC框架
HSF:阿里RPC框架
3639 0
|
机器学习/深度学习 人工智能 算法
强化学习在复杂环境中的应用与挑战
【8月更文第9天】强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过智能体与环境的交互来学习最优策略。近年来,随着计算能力的提升和算法的进步,强化学习被广泛应用于各种复杂环境下的任务,如机器人导航、游戏策略优化等。本文将探讨强化学习在这些领域中的应用案例,并分析所面临的挑战及其潜在的解决方案。
912 4
|
负载均衡 算法 Java
Spring Cloud Netflix 之 Ribbon
Spring Cloud Netflix Ribbon是客户端负载均衡器,用于在微服务架构中分发请求。它与RestTemplate结合,自动在服务发现(如Eureka)注册的服务之间进行调用。配置包括在pom.xml中添加依赖,设置application.yml以连接Eureka服务器,并在配置类中创建@LoadBalanced的RestTemplate。通过这种方式,当调用如`/user/userInfoList`的接口时,Ribbon会自动处理到多个可用服务实例的负载均衡。
|
消息中间件 存储 Java
消息队列-死信队列
消息队列-死信队列
414 0
|
设计模式 Java 应用服务中间件
高速服务框架HSF的基本原理(下)
高速服务框架HSF的基本原理(下)
745 0
|
Java 应用服务中间件 HSF
走进HSF源码
前言本文源自一次组内分享,于是接着这个机会,将HSF的源码阅读过程记录下来,以供自己温故而知新。如果有哪些地方理解不到位的,还请诸位批评指正!简介HSF (High-speed Service Framework),高速服务框架,是在阿里巴巴内部广泛使用的分布式RPC服务框架。众所周知,HSF一款与我们的日常生活密不可分的RPC框架;所谓RPC——远程过程调用,就是指像调用本地方法一样调用远程的方
1515 0
走进HSF源码
|
人工智能
【Stable Diffusion】使用ControlNet——normal bae模型
【Stable Diffusion】使用ControlNet——normal bae模型
886 0