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

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

HSF提供了两种开发模式

HSF概述:

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

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

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

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

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

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

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

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

5.1.2 安装ecplise插件

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

5.1.3 配置刚刚安装的插件

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

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 完成配置(具体如下图)。

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

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

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

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

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

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

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

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

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

没有报错即可启动成功

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

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

启动完成就开始消费了。

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

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

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

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

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

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

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

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

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

开发配置:

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

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

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

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

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

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

引入jar包:

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

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

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

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

直接启动main方法: server端:

client:

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

我们来调用一下server的服务

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

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

install打包报下图异常

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

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

引入依赖

注入接口:

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

启动客户端:

查询监控中心:

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

实现类方法:

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

终。。。


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

微信:

支付宝:


感谢一路支持我的人。。。。。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)

Java-RPC通信--HSF框架相关推荐

  1. 【Java】RPC与RMI框架

    [Java]RPC与RMI框架 概念 RMI概念 RPC概念 RMI框架 接口方法及接口实现对象的注册及其方法的调用 RPCFactory RPCDefinition 注解Scanning 服务器端 ...

  2. Java NIO 通信框架在电信领域的实践

    点击上方↑↑↑"微服务蜂巢"关注我们 1. 华为电信软件技术架构演进 1.1. 电信软件 从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件. 系统软件 ...

  3. Java NIO通信框架在电信领域的实践

    1. 华为电信软件技术架构演进 1.1. 电信软件 从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件. 系统软件包括路由器底层的信令机软件.手机操作系统等,业务应用软件主 ...

  4. RPC通信框架——RCF介绍

    现有的软件中用了大量的COM接口,导致无法跨平台,当然由于与Windows结合的太紧密,还有很多无法跨平台的地方.那么为了实现跨平台,支持Linux系统,以及后续的分布式,首要任务是去除COM接口. ...

  5. HTTP RPC Dubbo hsf Spring-cloud 图解比较

    前言 HSF是一个分布式的远程服务调用框架,其实我更喜欢把分布式几个字去掉,因为HSF本身并不是一个单独的服务(指一个进程),他是附属在你的应用里的一个组件,一个RPC组件(远程过程调用--Remot ...

  6. 消息中间件—RocketMQ的RPC通信(二

    作者:胡宗棠 来源:匠心独运的博客 在(一)篇中主要介绍了RocketMQ的协议格式,消息编解码,通信方式(同步/异步/单向).消息发送/接收以及异步回调的主要通信流程.而本篇将主要对RocketMQ ...

  7. c++socket多个客户端通过不同端口与一个服务端通信_手写RPC,深入底层理解整个RPC通信...

    一.前言 RPC,远程过程调用,调用远程方法像调用本地方法一样.RPC交互分为客户端和服务端,客户端调用服务端方法,服务端接收数据并打印到控制台,并response响应给客户端. RPC和HTTP的联 ...

  8. 底层框架_你有必要了解一下Flink底层RPC使用的框架和原理

    1. 前言 对于Flink中各个组件(JobMaster.TaskManager.Dispatcher等),其底层RPC框架基于Akka实现,本文着重分析Flink中的Rpc框架实现机制及梳理其通信流 ...

  9. RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点.常见RPC框架,gRPC及序列化方式Protobuf等 HTTP协议 http协议是基于tcp协议的,tcp协议是流式 ...

  10. RPC 技术及其框架 Sekiro 在爬虫逆向中的应用,加密数据一把梭

    文章目录 什么是 RPC JSRPC Sekiro 优缺点 什么是 RPC RPC,英文 RangPaCong,中文让爬虫,旨在为爬虫开路,秒杀一切,让爬虫畅通无阻! 开个玩笑,实际上 RPC 为远程 ...

最新文章

  1. mysql left join超时,MySQL 行锁超时排查方法优化
  2. underscore.js源码解析2
  3. 在Python中用turtle函数画同心圆
  4. [云炬创业基础笔记] 第四章测试11
  5. 人脸识别(二)——训练分类器
  6. 《架构之美》阅读笔记一
  7. L3-007. 天梯地图-PAT团体程序设计天梯赛GPLT
  8. 高级着色语言HLSL入门(7)
  9. 配置lvs nat模式下real server服务器端lvsrs脚本
  10. java 7 json_java第七周----json
  11. Spoiler Alert – 实现内容模糊隐藏效果的 jQuery 插件
  12. FastAPI用户安全性解决方案
  13. phpstudy配置ssl
  14. 记账用哪个软件比较好?
  15. 生成函数学习笔记心得
  16. ERP仓库管理系统主要功能
  17. 苹果邮箱格式_格式化U盘时,为什么有NTFS等三个不同的U盘格式
  18. HTML+css网站设计布局模板
  19. 使用计算机辅助翻译的基本流程,计算机辅助翻译不同于机器翻译,计算机辅助翻译的原理和流程...
  20. mbr mysql_主引导记录MBR的结构和作用

热门文章

  1. 使用计算机时鼠标和键盘各有什么优缺点,计算机键盘与鼠标的使用简介.ppt
  2. cad怎么去除drawing1_CAD工具栏下边那行显示DraWing1的没了,如何找回?
  3. idea创建yml配置文件不是绿色
  4. 零信任在智慧城市典型场景中的融合应用
  5. as几个常用模拟器连接命令
  6. 一、Excel之初识jxls
  7. Github创建的个人简历
  8. linux下查看设备的接口,linux 查看sdio接口有哪些设备?
  9. 教你阅读vue源码的正确姿势,看完就学废!
  10. 克鲁斯卡尔算法、并查集