Java-RPC通信--HSF框架

article/2025/10/21 5:13:54

最近leader给了KingYiFan一个任务,就是对接某国企的业务,人家用的淘宝的HSF框架RPC通信 根本不用httpclient what??? RPC不是Dubbo底层协议吗?这怎么通讯呢?翻遍了整个百度没有我想要的。 有一个大佬人家自己封装了一个RPC通讯含监控中心(积分下载的)需要联系我哈。

file

最后还是去老老实实看官网吧。 以下知识是我昨天学的,如有错误请指出。

HSF提供了两种开发模式

HSF概述:

file

file

file

file

HSF框架有两种开发方式(Ali-tomcat、Pandora Boot):

file

我们从Ali-tomcat开始说起。。 Ali-Tomcat概述:

file

安装 Ali-Tomcat 和 Pandora 并配置开发环境

  1. 下载Ali-Tomcat :点我直接下载哦!

  2. 下载好了找个地方解压并保存(和Tomcat其实没什么区别,只是被阿里那帮大佬给封装了)存放目录(D:\dev\apps\EDAS\taobao-tomcat-7.0.59)

file

3.下载 Pandora 容器。点我直接下载哦!

4.保存后将内容解压至上述保存的 Ali-Tomcat 的 deploy 目录(D:\dev\apps\EDAS\taobao-tomcat-7.0.59\deploy)下

file

5.配置开发环境: 5.1 Ecplise配置: 5.1.1 下载 Tomcat4E 插件,并解压至本地(如:D:\dev\apps\EDAS\tomcat4e)。

file 5.1.2 安装ecplise插件

file

返回 Install 对话框,单击 Select All,然后单击 Next。 后续还有几个步骤,按界面提示操作即可。安装完成后,Eclipse 需要重启,以使 Tomcant4E 插件生效。 (Tips:建议安装ecplise插件的时候断网。要不他就会远端拉取。远端要是在国内还好,要是在国外。呵呵呵呵。。。。。)

5.1.3 配置刚刚安装的插件

file

5.1.4 直接Run启动服务出现下图证明ecplise安装完成:

file

5.2 IDEA配置:

5.2.1 从菜单栏中选择 Run > Edit Configuration。在 Run/Debug Configuration 页面左侧的导航栏中选择 Defaults > Tomcat Server > Local。配置 AliTomcat。 在右侧页面单击 Server 页签,然后在 Application Server 区域单击 Configure在 Application Server 页面右上角单击 +,然后在 Tomcat Server 对话框中设置 Tomcat Home 和 Tomcat base directory 路径,单击 OK。将 Tomcat Home 的路径设置为本地解压后的 Ali-Tomcat 路径,Tomcat base directory 可以自动使用该路径,无需再设置。在 Application Server 区域的下拉菜单中,选择刚刚配置好的 Ali-Tomcat。在 VM Options 区域的文本框中,设置 JVM 启动参数指向 Pandora 的路径,如:-Dpandora.location=D:\dev\apps\EDAS\taobao-tomcat-7.0.59\deploy\taobao-hsf.sar说明:D:\dev\apps\EDAS\taobao-tomcat-7.0.59\deploy\taobao-hsf.sar需要替换为在本地安装 Pandora 的实际路径。单击 Apply 或 OK 完成配置(具体如下图)。

file

6.安装配置中心(俗称监控中心):本地正确配置环境变量 JAVA_HOME,指向一个 1.6 或 1.6 以上版本的 JDK。确认 8080 和 9600 端口未被使用。

6.1 下载配置中心:点我下载最新版的配置中心

6.2 解压配置中心压缩包 并保存(栗:D:\dev\apps\EDAS\edas-lite-configcenter)

file

6.3 启动配置环境中心: 6.3.1 windows 直接启动startup.bat文件

file

6.3.2 linux 请在当前目录下执行 sh startup.sh 命令。

file

7.修改host文件(为什么要修改host文件呢? 因为EDAS的hsf在阿里云是收费的 没有注册是不能使用的。我们直接让程序找本地) 对于需要使用轻量配置中心的开发机器,请在本地 DNS(hosts 文件)中,将 jmenv.tbsite.net 域名指向启动了 EDAS 配置中心的机器 IP。 hosts 文件的路径如下: Windows 操作系统:C:\Windows\System32\drivers\etc\hosts Unix 操作系统:/etc/hosts(具体如下图)

file

访问:http://jmenv.tbsite.net:8080/ (看到下图就是配置中心安装完成)

file

可以看下官网HSF提供的Demo点我下载哦! 解压下载的压缩包,可以看到carshop文件夹,里面包含 itemcenter-api,itemcenter 和 detail 三个 Maven 工程文件夹。 itemcenter-api:提供接口定义 itemcenter:生产者服务 detail:消费者服务

file

启动server服务 选择项目 选择端口

file

没有报错即可启动成功

file

访问监控中心 就可以看到刚刚服务。

file

启动client消费端(步骤跟server服务一样)

file

启动完成就开始消费了。

file

仔细看他们的Demo(只要监听到服务启动 就开始消费。并且写了一个线程 循环调用执行)

file

查询监控中心有服务调用者。这个时候HSF AliTomcat基本就没问题了。

我们来看下HSF 怎么写的。 我们看到这个图 依赖关系 itemcenter 依赖 itemcenter-api jar包 detail 依赖 itemcenter-api文件

file

server端 实现类 引入阿里的jar包

file

写实现类 然后在xml发布一个服务 (实现类实现api提供的接口)

file

提供给用户用的接口jar包工程(这个工程职业接口和实体类)

file

消费端(也是客户端 依赖api工程)

file

很简单的 HSF-Alitomcat demo就弄完了,剩下只需要写你的业务就好了。更多详细请查阅EDAS-HSF官网

再说一下HSF另一种开发方式:使用Pandora Boot开发

file

开发配置:

  1. 需要配置私服环境(我的maven没有在默认的。一般都在默认maven环境 ~/.m2/settings.xml 中,在 settings.xml 中加入如下配置:)

file

    <profiles><profile><id>nexus</id><repositories><repository><id>central</id><url>http://repo1.maven.org/maven2</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://repo1.maven.org/maven2</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile><profile><id>edas.oss.repo</id><repositories><repository><id>edas-oss-central</id><name>taobao mirror central</name><url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>true</enabled></releases></repository></repositories><pluginRepositories><pluginRepository><id>edas-oss-plugin-central</id><url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>true</enabled></releases></pluginRepository></pluginRepositories></profile></profiles><activeProfiles><activeProfile>nexus</activeProfile><activeProfile>edas.oss.repo</activeProfile></activeProfiles>

在命令行执行如下命令 mvn help:effective-settings 。

file

1.1. 无报错,表明 setting.xml 文件格式没问题。 1.2. profiles 中包含 edas.oss.repo 这个 profile,表明私服已经配置到 profiles 中。 1.3. 在 activeProfiles 中 包含 edas.oss.repo 属性,表明 edas.oss.repo 私服已激活。 下面证明成功

file

  1. 配置我刚上面说的监控中心

file

下载官方提供的DEMO:点我下载生产者服务哦!点我下载客户消费者哦!

来我们看看项目的结构(这次没有api jar包两个都是SpringBoot项目)

file

引入jar包:

file server服务者和第一种区别就是 用的注解更简单了呢。注册服务

file consumer 消费端 创建一个config 然后用@HSFConsumer 注入

file 只需要用一次注解 别的地方直接可以用Autowired 注解直接注入。

file

消费者 和生成者两个启动类必须加入一下代码哦: file

直接启动main方法: server端:

file

client:

file

看到监控中心如下图(证明就搭建成功了)

file

我们来调用一下server的服务

file 有木有有人会问我为什么是18082端口呢? file

可不可以调用用Ali-Tomcat服务呢。 先把这个jar包install

file

install打包报下图异常

file

解决方案如下图(也可以安装jdk的时候不装jre)

file 打包成功并且放到本地仓库

file

引入依赖 file

注入接口:

file

一定要和服务端分组名称 路径 和版本号一值。 file 调用接口 file 测试一下: 启动服务端:

file

启动客户端:

file

查询监控中心:

file

file 访问地址:http://127.0.0.1:18082/hsf-item

file 实现类方法:

file

后面还有异步调用方法(感兴趣可以自己学一下,具体看官方文档,可以与我互相交流哦!)

终。。。


鼓励作者写出更好的技术文档,就请我喝一瓶哇哈哈哈哈哈哈哈。。你们的赞助决定我更新的速度哦!

微信:

支付宝:


感谢一路支持我的人。。。。。Love me and hold me
QQ:69673804(16年老号)
EMAIL:69673804@qq.com
友链交换
如果有兴趣和本博客交换友链的话,请按照下面的格式在评论区进行评论,我会尽快添加上你的链接。

网站名称:KingYiFan’S Blog
网站地址:http://blog.cnbuilder.cn
网站描述:年少是你未醒的梦话,风华是燃烬的彼岸花。
网站Logo/头像: [头像地址](https://blog.cnbuilder.cn/upload/2018/7/avatar20180720144536200.jpg)

 


http://chatgpt.dhexx.cn/article/y8Lc9gFZ.shtml

相关文章

hsf服务的调用过程

目录&#xff1a; 写一个hsf服务并发布 写一个接口工程 写一个实现接口的实现工程 写一个发布接口工程和实现工程的服务工程 写一个应用实现借口 hsf服务调用的过程 通过JBoss/Tomcat启动服务 通过main口启动服务 过程&#xff1a; 写一个hsf服务并发布&#xff1a; 在上…

HSF 开发

HSF 简介 HSF(High Speed Service Framework)&#xff0c;高速服务框架&#xff0c;是阿里-主要采用的服务框架&#xff0c;其目的是 作为桥梁联通不同的业务系统&#xff0c;解耦系统之间的实现依赖。 1: RPC 远程过程调用(Remote Procedure Call)是一种通过网络从远程计算机程…

分布式服务框架 HSF

摘要&#xff1a; RPC 协议采用多路复用的 TCP 长连接方式&#xff0c;在服务提供者和调用者间有多个服务请求同时调用时会共用同一个长连接&#xff0c;即一个连接交替传输不同请求的字节块。它既避免了反复建立连接开销&#xff0c;也避免了连接的等待闲置从而减少了系统连接…

HSF (RPC远程调用框架)

HSF 1. HSF概述1.1 概述1.2 HSF架构1.3 功能1.4 应用开发方式 2. 使用 Ali-Tomcat 开发2.1 Ali-Tomcat概述2.2 安装及开发环境配置2.2.1 安装Ali-Tomcat和Pandora2.2.2 配置IntelliJ IDEA开发环境 2.3 开发HSF应用2.3.1 定义服务接口2.3.2 开发服务提供者2.3.3 开发服务消费者2…

分布式服务框架HSF简介

高速服务框架 HSF (High-speed Service Framework)&#xff0c;是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 统一了分布式应用中服务的发布/调用方式&#xff0c;从而帮助您方便、快速的开发分布式应用 HSF 架构 HSF 作为一个纯客户端架构的 RPC 框架&#xff0c;本…

分布式服务框架HSF

HSF提供的是分布式服务开发框架&#xff0c;taobao内部使用较多&#xff0c;总体来说其提供的功能及一些实现基础&#xff1a; 1.标准Service方式的RPC 1&#xff09;、Service定义&#xff1a;基于OSGI的Service定义方式 2&#xff09;、TCP/IP通信&#xff1a; IO方式…

分布式 RPC 框架HSF

分布式 RPC 框架HSF 概述HSF架构调用方式优势应用场景 概述 HSF (High-speed Service Framework)&#xff0c;高速服务框架&#xff0c;是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 作为阿里巴巴的基础中间件&#xff0c;联通不同的业务系统&#xff0c;解耦系统间的…

关于 HSF框架 (一)简单介绍

HSF介绍 HSF全称 high speed frameworkd, 是Alibaba内部使用的RPC框架&#xff0c;最初与Dubbo进行内部竞争&#xff0c;由于多方面的原因最终选择了HSF。 主要原因如下&#xff1a; HSF代码量少一些&#xff0c;轻量一些&#xff0c;代码量大概2/3, Dubbo设计更加全面功能更多…

hsaf框架

一.技术分层 a&#xff09;.前端展现层&#xff0c;泛指一切在客户端直接与用户打交道的客户界面&#xff08;&#xff09;&#xff0c;MVC架构中的view层 b&#xff09;.控制层&#xff1a;分为过滤器拦截器层&#xff0c;Controller控制器层 c&#xff09;.业务逻辑层&…

高速服务框架HSF

一、简述 HSF(High-speed Service Framework)&#xff0c;是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。 HSF 连通不同的业务系统&#xff0c;解耦系统间的实现依赖。HSF 从分布式应用的层面&#xff0c;统一了服务的发布与调用方式&#xff0c;从而帮助用户更加方便、快…

阿里HSF(服务框架)

文章目录 HSF&#xff08;服务框架&#xff09;简介架构设计Provider——服务提供者Consumer——服务消费者ConfigServer——配置服务器Diamond——持久化配置中心addressServer——地址服务元数据存储 HSF&#xff08;服务框架&#xff09; 文章地址 简介 高速服务框架 HS…

MySQL的批量更新和批量新增优化

MySQL的批量更新和批量插入优化 如果需要批量插入和批量更新操作就需要进行sql 的优化&#xff0c;否则近30万条数据的插入或更新就会耗费几分钟甚至更多的时间&#xff0c; 此文仅批量插入和批量更新的几种优化。 批量插入篇&#xff08;使用多条insert语句、使用union all创…

mybatis 批量更新

1 更新单条记录 UPDATE course SET name course1 WHEREid id1; 2 更新多条记录的同一个字段为同一个值 UPDATE course SET name course1 WHERE id in (id1,id2,id3); 3 更新多条记录为多个字段为不同的值 3.1 比较普通的写法&#xff0c;是通过循环&#xff0c;依次执行…

Update批量更新(高性能、动态化)

文章目录 前言一、环境开发环境测试环境 二、灵光乍现MyBatis-Plus源码2.初见真正的批量更新语法 三、开工基础类搭建SysUser&#xff08;表sys_user实体类&#xff09;Stash&#xff08;拼接SQL服务&#xff0c;内部类&#xff09;TableCacheDTO&#xff08;数据表信息存储&am…

mybatis-plus批量更新updateBatchById

前言 在使用mybatis-plus过程中&#xff0c;有很多插件都特别优秀&#xff0c;不仅使我们代码更加优雅&#xff0c;也提升了效率。其中有个批量插入的插件insertBatchSomeColumn使用起来也挺方便的&#xff0c;但是批量更新一直没有官方插件&#xff0c;网络上面也没有找到靠谱…

mysql批量更新方法

目录 方法一 replace into 批量更新 方法二 insert into 批量更新 方法三 临时表 批量更新 方法四 case when 批量更新 本篇文章实验mysql版本为5.7.20 隔离级别为rr&#xff0c;加锁场景的问题在mysql8.0.18中为复现 方法一 replace into 批量更新 原理&#xff1a;replace i…

mybatis批量更新数据三种方法

具体的可以参考下面链接&#xff1a; ​​​​​​mybatis批量更新数据三种方法效率对比_PreciousLife的博客-CSDN博客_mybatis 批量更新 此处说明下&#xff0c;若是使用for循环遍历方式&#xff0c;来生成N条sql&#xff0c;那么就需要注意两个地方&#xff1a; 第一个地方…

MySql中4种批量更新的方法

https://yq.aliyun.com/ziliao/59813 MySql中4种批量更新的方法 最近在完成MySql项目集成的情况下&#xff0c;需要增加批量更新的功能&#xff0c;根据网上的资料整理了一下&#xff0c;很好用&#xff0c;都测试过&#xff0c;可以直接使用。 mysql 批量更新共有以下四种办法…

MySQL批量更新的四种方法

最近做一个需求&#xff0c;更新3w条数据&#xff0c;一个一个update去更新的&#xff0c;结果花了80分钟&#xff0c;这样性能上很差&#xff0c;也容易阻塞&#xff0c;所以就找了一些MySQL批量更新的方式&#xff0c;在此记录一下 方法一&#xff1b;replace into 这种更新…

Mybatis之批量更新数据(批量update)

前言 当我们使用mybatis的时候&#xff0c;可能经常会碰到一批数据的批量更新问题&#xff0c;因为如果一条数据一更新&#xff0c;那每一条数据就需要涉及到一次数据库的操作&#xff0c;包括网络IO以及磁盘IO&#xff0c;可想而知&#xff0c;这个效率是非常低下的。而平时我…