HSF 应用开发|学习笔记

简介: 快速学习 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 API
微服务技术系列教程(41)- SpringCloud -OAuth2搭建微服务开放平台
微服务技术系列教程(41)- SpringCloud -OAuth2搭建微服务开放平台
155 0
|
9月前
|
Dubbo Java 应用服务中间件
Sentinel服务框架对接Dubbo服务框架整合开发指南
开源框架适配 为了减少开发的复杂程度,Sentinel 对大部分的主流框架都进行了适配,例如:Web Servlet、Dubbo、Spring Cloud、gRPC、Spring WebFlux 和 Reactor 等。
|
自然语言处理 Kubernetes Cloud Native
Java 云原生微服务框架 Quarkus 入门实践
Java 云原生微服务框架 Quarkus 入门实践
|
开发框架 Dubbo 应用服务中间件
《Dubbo 如何成为连接各种异构微服务体系的服务开发框架》电子版地址
Dubbo 如何成为连接各种异构微服务体系的服务开发框架
75 0
《Dubbo 如何成为连接各种异构微服务体系的服务开发框架》电子版地址
|
Kubernetes Cloud Native Oracle
【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)
【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)
504 0
【Quarkus技术系列】打造基于Quarkus的云原生微服务框架实践(1)
|
开发框架 Dubbo Cloud Native
Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
从编程开发的角度来说,Dubbo 首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节。同时 Dubbo 也是一款服务治理框架,它为分布式部署的微服务提供了服务发现、流量调度等服务治理解决方案。 在这篇文章中,我们将以以上基础能力为背景,尝试突破 Dubbo 体系自身,探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现
158 0
Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
|
Cloud Native Go
云原生应用开发之 gRPC 入门(下)
gRPC 由谷歌开发的,是一种语言中立、平台中立、开源的远程调用过程。
|
XML JSON 网络协议
云原生应用开发之 gRPC 入门(上)
gRPC 由谷歌开发的,是一种语言中立、平台中立、开源的远程调用过程。
|
开发框架 负载均衡 Java
SpringCloud微服务实战——搭建企业级开发框架(十一):集成OpenFeign用于微服务间调用
作为Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。首先,利用了OpenFeign的声明式方式定义Web服务客户端;其次还更进一步,通过集成Ribbon或Eureka实现负载均衡的HTTP客户端。
271 0
SpringCloud微服务实战——搭建企业级开发框架(十一):集成OpenFeign用于微服务间调用
|
开发框架 微服务
SpringCloud微服务实战——搭建企业级开发框架(二十五):集成短信通知服务
目前系统集成短信似乎是必不可少的部分,由于各种云平台都提供了不同的短信通道,这里我们增加多租户多通道的短信验证码,并增加配置项,使系统可以支持多家云平台提供的短信服务。这里以阿里云和腾讯云为例,集成短信通知服务。 1、在GitEgg-Platform中新建gitegg-platform-sms基础工程,定义抽象方法和配置类 SmsSendService发送短信抽象接口:
303 0