阿里云企业级互联网架构实践系列-微服务HSF开发

  1. IDEA 目前仅支持 IDEA 商业版,社区版暂不支持。所以,请确保本地安装了商业版 IDEA。

  2. JDK,/Maven安装

  3. 找到Maven/conf/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 。无报错,表明 setting.xml 文件格式没问题。

说明:如果在命令行执行 Maven 打包命令无问题,IDE 仍无法下载依赖,请关闭 IDE 重新打开试试,或自行查找 IDE 配置 Maven 的相关资料。

  1. 安装 Ali-Tomcat 和 Pandora

下载 Ali-Tomcat,保存后解压至相应的目录(如:d:\work\tomcat\)。

下载 Pandora 容器。保存后将内容解压至上述保存的 Ali-Tomcat 的 deploy 目录

(d:\work\tomcat\deploy)下。

  1. 安装轻量配置中心

下载 EDAS 配置中心安装包并解压

  1. 确认环境是否达到要求。

i. 正确配置环境变量 JAVA_HOME,指向一个 1.6 或 1.6 以上版本的 JDK。

ii. 确认 8080 和 9600 端口未被使用。

  1. 进入解压目录(edas-config-center),启动配置中心。

Windows 操作系统:请双击 startup.bat。

  1. 配置 hosts, 如果您在 IP 为 192.168.1.100 的机器上面启动了 EDAS 配置中心,则所有开发者只需要在机器的 hosts 文件里加入如下一行即可。

192.168.1.100 jmenv.tbsite.net

绑定轻量配置中心的 host 之后,打开浏览器,在地址栏输入 jmenv.tbsite.net:8080,回车

[图片上传失败...(image-d59ecf-1597155077025)]

由于轻量级配置中心不支持修改端口,所以端口必须使用 8080。

  1. 配置 IntelliJ IDEA 环境

注意:目前仅支持 IDEA 商业版,社区版暂不支持。所以,请确保本地安装了商业版 IDEA。

  1. 运行 IntelliJ IDEA。

  2. 从菜单栏中选择 Run > Edit Configuration

  3. Run/Debug Configuration 页面左侧的导航栏中选择 Defaults>Tomcat Server>Local

  4. 配置 AliTomcat。

i. 在右侧页面单击 Server 页签,然后在 Application Server 区域单击 Configure

ii. 在 Application Server 页面右上角单击 +,然后在 Tomcat Server 对话框中设置 Tomcat HomeTomcat base directory 路径,单击 OK

将 Tomcat Home 的路径设置为本地解压后的 Ali-Tomcat 路径,Tomcat base directory 可以自动使用该路径,无需再设置。

  1. Application Server 区域的下拉菜单中,选择刚刚配置好的 Ali-Tomcat。

  2. VM Options 区域的文本框中,设置 JVM 启动参数指向 Pandora 的路径,如:-Dpandora.location=d:\work\tomcat\deploy*taobao-hsf.sar*

  1. 开发代码

官方提供的Demo 源码下载:sc-hsf-providersc-hsf-consumer

下载解压,然后用idea打开

分别在对应工程目录

Mvn clean

Mvn package

注:依赖问题检查idea中Maven的配置

[图片上传失败...(image-3a16c2-1597155077024)]

  1. 启动服务及轻量配置中心

轻量配置中心启动参考第5步

进入到对应工程的target目录下

分别启动服务提供者,服务消费者

Java -Dvipserver.server.port=8080 -jar -Dpandora.location=D:/tools/taobao-tomcat-7.0.59/taobao-tomcat-7.0.59/deploy/taobao-hsf.sar

Sc-hsf-provider-1.0-SNAPSHOT.jar

Java -Dvipserver.server.port=8080 -jar -Dpandora.location=D:/tools/taobao-tomcat-7.0.59/taobao-tomcat-7.0.59/deploy/taobao-hsf.sar

Sc-hsf-consumer-1.0-SNAPSHOT.jar

查看轻量配置中心

服务提供者

服务消费者

  1. 请求

同步调用

/hsf-echo/{str}

异步调用(可选)

/hsf-future/{str}

/hsf-future-list/{str}

"/hsf-callback/{str}

  1. 调试状态启动Provider

修改服务实现,演示

  1. 开始新建工程

创建一个 Spring Cloud 工程,命名为 sc-hsf-xxx。

在 pom.xml 中引入需要的依赖内容:

 <parent>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-parent</artifactId>

     <**version**>1.5.8.**RELEASE**</**version**>

     <relativePath/>

 </parent>

 <dependencies>

     <dependency>

         <groupId>org.springframework.cloud</groupId>

         <artifactId>spring-cloud-starter-hsf</artifactId>

         <**version**>1.3</**version**>

     </dependency>

     <dependency>

         <groupId>org.springframework.cloud</groupId>

         <artifactId>spring-cloud-starter-pandora</artifactId>

         <**version**>1.3</**version**>

     </dependency>

     <dependency>

         <groupId>org.springframework.boot</groupId>

         <artifactId>spring-boot-starter-web</artifactId>

     </dependency>

 </dependencies>

 <dependencyManagement>

     <dependencies>

         <dependency>

             <groupId>org.springframework.cloud</groupId>

             <artifactId>spring-cloud-dependencies</artifactId>

             <**version**>Dalston.SR4</**version**>

             <**type**>pom</**type**>

             <**scope**>**import**</**scope**>

         </dependency>

     </dependencies>

 </dependencyManagement>

虽然 HSF 服务框架并不依赖于 Web 环境,但是 EDAS 管理应用的生命周期过程中需要使用到 Web 相关的特性,所以需要添加spring-boot-starter-web 的依赖。

如果您的工程不想将 parent 设置为 spring-boot-starter-parent,也可以通过如下方式添加 dependencyManagement ,设置 scope=import ,来达到依赖版本管理的效果。

 <dependencyManagement>

     <dependencies>

         <dependency>          

             <groupId>org.springframework.boot</groupId>

             <artifactId>spring-boot-dependencies</artifactId>

             <**version**>1.5.8.**RELEASE**</**version**>

             <**type**>pom</**type**>

             <**scope**>**import**</**scope**>

         </dependency>

     </dependencies>

 </dependencyManagement>

在 resources 目录下的 application.properties 文件中配置应用名和监听端口号。

 spring.application.name=hsf-provider

 server.port=18081

 spring.hsf.version=1.0.0

 spring.hsf.timeout=3000
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351