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调用。

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
6月前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
152 0
|
6月前
|
负载均衡 Dubbo 应用服务中间件
阿里微服务架构到底多牛逼:深入解析Apache Dubbo与实战
在Apache Dubbo (以下简称Dubbo)重新开源之前,Dubbo已经被很多公司广泛用于生产环境并获得了良好的反馈,很多公司内部也会建立私有分支自己维护,其中Dubbox 就是基于Dubbo分支进行扩展并二次维护的。重新开源后,社区维护的Dubbo版本进行了大量“bug fix" .和特性支持,收到了大量Dubbo用户的支持和参与。编写本书的想法是在开源后提出来的,因此本书取名《深入理解Apache Dubbo与实战》。
|
自然语言处理 Kubernetes 负载均衡
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性概览的介绍说明
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性概览的介绍说明
265 0
|
Dubbo Java 应用服务中间件
Sentinel服务框架对接Dubbo服务框架整合开发指南
开源框架适配 为了减少开发的复杂程度,Sentinel 对大部分的主流框架都进行了适配,例如:Web Servlet、Dubbo、Spring Cloud、gRPC、Spring WebFlux 和 Reactor 等。
|
自然语言处理 Kubernetes Cloud Native
Java 云原生微服务框架 Quarkus 入门实践
Java 云原生微服务框架 Quarkus 入门实践
|
运维 监控 Cloud Native
开源微服务最佳实践 | 学习笔记
快速学习开源微服务最佳实践,介绍了开源微服务最佳实践系统机制, 以及在实际应用过程中如何使用。
开源微服务最佳实践 | 学习笔记
|
XML JSON 网络协议
云原生应用开发之 gRPC 入门(上)
gRPC 由谷歌开发的,是一种语言中立、平台中立、开源的远程调用过程。
|
开发框架 Dubbo Java
如何基于盘古开发框架开发Dubbo微服务网关
在盘古开发框架下实现将微服务发布为 HTTP 接口有两种方式。一种是基于 pangu-web 模块的接口调用模式;一种是基于 ShenYu 网关的泛化调用模式。
214 1
如何基于盘古开发框架开发Dubbo微服务网关
|
Cloud Native Go
云原生应用开发之 gRPC 入门(下)
gRPC 由谷歌开发的,是一种语言中立、平台中立、开源的远程调用过程。
|
存储 消息中间件 自然语言处理
基于eBPF的云原生可观测性开源项目Kindling之Dubbo2 协议开发流程
本文主要介绍基于eBPF的开源项目Kindling之协议开发流程,并以dubbo2协议开发为例进行说明。
324 0
基于eBPF的云原生可观测性开源项目Kindling之Dubbo2 协议开发流程
下一篇
无影云桌面