HSF 基础知识|学习笔记

简介: 快速学习 HSF 基础知识

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

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


HSF 基础知识

内容介绍:

一、配置文件示例

二、HSF 标签清单

三、HSF jvm 参数(全局参数)配置


前面已经介绍了开发工具的配置及开发环境的搭建,接下来我们将学习 HSF 的项目开发。

在进行 HSF 项目开发前,首先应 JAVA 意义开发的技能,包括 Spring 框架、Maven项目管理工具、通用日志框架的使用以及 HSF。


一、配置文件示例

1.服务发布者配置文件实例:

<bean id="impl"class"

com.taobao.edas.service.implSimpl

eServiceImpl"/>

//声明了一个服务器接口类型的 bean,与Spring 通用的 bean 完全相同

<hsf.provider id="simpleService"

interface="com.taobao.edas.service.SimpleService"ref "imp

l"version="1.0.1"

group="test1"clientTimeout="3000">

//通过 hsf.provider 说明服务发布者的基本信息,首先定义了服务发布者的接口(com.taobao.edas.service.SimpleService),接口的实现包括 version、group 等属性,通过属性 clientTimeout 定义服务器超时时间。

</hsf.provider>

注:interface 属性和 ref 属性是必须填写的,version、group 和 clientTimeout 如果不填写会有一个默认值。在项目开发中,version 和 group 最 好要设定一个值。

2.Consumer 配置文件示例

<hsf.provider id="service"interface="com.taobao.edas.service.SimpleService"version="1.0.1"group="test1"clientTimeout="3000">

//相对于 provider 配置文件示例,少了接口的实现。主要声明了 Consumer 主要消费哪个接口,还显示 version、group 等属性,通过属性 clientTimeout 定义服务器超时时间。

</hsf.provider>

注:interface 属性是必须填写的,version、group 和 clientTimeout 如果不填写会有一个默认值。

在项目开发中,version 和 group 最好要设定一个值,且 interface、version 和group 的值必须与 provider 配置文件示例中的值一致(区分大小写),否则使用Consumer 校用 provider 配置文件时,可能会找不到地址。


二、HSF 标签清单

1.Consumer 配置标签清单

(1)interface:必须配置 [string],为需要调用的服务的接口

(2)version:为需要调用的服务的版本,默认为 1.0.0

(3)group:为需要调用的服务所在的组,默认为 HSF            

(4)methodSpecials:可选配置,为方法配置超时时间,即通过 clientTimeout 声明的接口的超时时间,可以通过 methodSpecials 声明超时时间

(5)target:主要用于单元测试,即制定一台 provider 启动的 IP 地址。但生产环境下,不建议设置此属性,因为若在生产环境在 provider 出错,会导致服务出现异常,无法调用。

(6)connectionNum:可选配置,主要用于连接到 Server 的连接数,不需要开发者特殊关心,如果需要特殊设置,可联系现场的架构师,以选择合适的值

(7)clientTimeout:客户端设置接口中所有方法的超时时间,单位是毫秒。Provider、consumer 中超时时间设置的优先级:客户端 MethouSpecials> 客户端接口级别>服务端 MethouSpecials> 服务端接口级别

(8)asyncallMethods:异步调用的方法名列表及异步调用方式,不建议开发者使用,特殊需要可联系专业的架构师选择合适的值

(9)maxWaitTimeForCsAddress:一般不需要设置

标签配置示例:

<hsf.provider id="service"interface="com.taobao.edas.ser

vice.SimpleService"version="1.0.1"group="test1"clientTimeout="3000">

target="10.1.6.57:12200?_TIMEOUT=1000"maxWaitTimeF

orCsAddress="5000"

<hsf.methodSpecials>

<hsf.methodSpecials names="sum"timeout="2000">  

</hsf.methodSpecials>

</hsf.consumer>      

相较于之前的 Consumer 配置文件示例,多了 target 和 methodSpecials 调用事例,声明了一个单独的方法 sum,并给这个方法设置了一个超时时间2000毫秒,如果调用该方法的时间超过2000毫秒,就会忽略调用 sum 方法,直接返回上面设定的接口级别的3000毫秒的设置。

2.Provider 标签配置清单

interface、version、group、methodspecials与Consumer一致。

(1)serializeType:可选配置,序列化的属性,默认为 hessian,一般无需调整

(2)corePoolSize:设置服务核心线程池及对应属性,一般也无需调整

(3)enableTXC:若客户需要开启分布式事务,则需要开启这个属性

(4)ref:必须配置,为发布的 HSF 服务的 spring bean id

(5)methodSpecials:声明方法的超时时间

标签配置示例:

<bean id="impl"class"

com.taobao.edas.service.implSimpl

eServiceImpl"/>

<hsf.provider id="simpleService"interface="

com.taobao.e

das.service.SimpleService"ref "impl"version="1.0.1"

group="test1"clientTimeout="3000">enableTXC="

ture"

serializeType="hession">

<hsf.methodSpecials>

<hsf.methodSpecials name="sum"timeout="2000"/>

<hsf.methodSpecials>

</hsf.provider>

相较于先前的 Provider 配置文件示例,多了 enableTXC 和 methodSpecials 属性。

以上介绍了 Consumer 和 Provider 配置文件示例,仅部分标签需要开发者关注,其余标签根据实际应用场景参照架构师的建议使用。


三、HSF jvm 参数(全局参数)配置

1.-Dhsf.server.port

指定 HSF 的启动服务绑定端口,默认值为12200

2.-Dhsf.serializer

指定 HSF 的序列化方式,默认值为 hessian

3.-DdefaultHsfClientTimeout

指定 HSF 的客户端超时时间 ms,默认为3000

4.-Dhsf.server.max.poolsize

指定 HSF 服务端最大线程池大小,默认值为600,一般情况下用户不需要调整,但如果要进行压力测试,可能需要将该值调大。

实际生产过程中,如果-Dhsf.server.max.poolsize 超过600,一般是 HSF 启动端的业务逻辑出现了问题,即从 Consumer 调用的请求服务端不能及时处理导致超过默认值,说明需要开发者优化代码,找到解决方法,而非去加大该参数的值。

5.-Dhsf.server.min.poolsize

指定 HSF 服务端最小线程池大小,默认值为50

相关实践学习
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ACK Serverless,体验微服务应用的部署、访问和高级发布能力。
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&nbsp;
相关文章
|
XML Dubbo 网络协议
Dubbo学习笔记(一)基本概念与简单使用
Dubbo学习笔记(一)基本概念与简单使用
Dubbo学习笔记(一)基本概念与简单使用
|
Dubbo Java 应用服务中间件
微服务技术系列教程(29) - Dubbo-介绍&环境安装&入门案例
微服务技术系列教程(29) - Dubbo-介绍&环境安装&入门案例
101 0
|
监控 Dubbo Java
【深入浅出Sentinel原理及实战】「基础实战专题」零基础实现服务流量控制实战开发指南(2)
【深入浅出Sentinel原理及实战】「基础实战专题」零基础实现服务流量控制实战开发指南(2)
188 0
【深入浅出Sentinel原理及实战】「基础实战专题」零基础实现服务流量控制实战开发指南(2)
|
JSON 负载均衡 监控
2021-Java后端工程师必会知识点-(分布式RPC框架Dubbo)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
254 0
|
机器学习/深度学习 负载均衡 网络协议
SpringCloud+Alibaba微服务教程,Java自学/进阶程序员必看
Spring Cloud是目前市面上最火爆的Java微服务技术栈,因其功能丰富涉及微服务管理全面,并且在高可靠、高可阔以及在应对复杂业务和承受并发的能力上发挥出色,使其受到众多互联网公司的青睐。 很多公司逐步转型到微服务架构风格,所以springcloud是成为进阶Java开发高级工程师的必备技术栈。 本套课程将带你深入学习SpringCloud相关技术,学成之后可以去手动去搭建一个项目,相当可以主导一个项目开发,让你在技术上有一个质的提升。
349 0
|
运维 负载均衡 Java
SpringCloud学习系列之一:基础概念介绍
本系列博文主要为SpringCloud学习的博文系列。 到底什么是微服务 SpringCloud组件介绍
SpringCloud学习系列之一:基础概念介绍
|
设计模式 Java Nacos
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十八)
Spring Cloud微服务架构设计与开发实战课时3.7—Spring Cloud网关Zuul集成Nacos注册中心 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十八)
|
弹性计算 缓存 Cloud Native
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十三)
Spring Cloud微服务架构设计与开发实战课时3.2—Spring Cloud微服务注册与发现 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二十三)
|
弹性计算 负载均衡 监控
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十九)
Spring Cloud微服务架构设计与开发实战课时2.8—Java Spring Cloud网关Zuul 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十九)
|
数据采集 监控 Java
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十七)
Spring Cloud微服务架构设计与开发实战课时2.6—Java Spring Cloud微服务监控分布式架构的又一巅峰 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!
开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十七)