阿里云ACP企业级互联网架构ACP实验之本地配置EDAS开发环境(下)

简介: 阿里云ACP企业级互联网架构ACP实验之本地配置EDAS开发环境(下)

六、安装轻量级配置中心


6.1 环境要求


正确配置环境变量 JAVA_HOME,指向一个1.6或1.6 以上版本的JDK; 8080 和 9600 端口未被使用。


6.2 安装步骤


将实验软件\轻量配置中心目录中edas-config-center.zip软件包,解压本地磁盘(例如:d:\work)目录。


进入 edas-config-center 目录,双击 startup.bat启动轻量配置中心


正常启动。由于默认使用的是8080端口,因此,可以通过如下地址进行访问:

http://127.0.0.1:8080/


6.3 配置地址


对于需要使用轻量配置中心的开发机器,请在本地 DNS(hosts 文件)中,将jmenv.tbsite.net 域名指向启动了 EDAS 配置中心的机器 IP。hosts 文件的路径如下:

Windows 操作系统:C:\Windows\System32\drivers\etc\hosts Unix 操作系统:/etc/hosts 示例


如果您在 IP 为 192.168.1.100 的机器上面启动了 EDAS 配置中心,则所有开发者只需要在机器的 hosts 文件里加入如下一行即可(记得备份原文件):


192.168.1.100 jmenv.tbsite.net 在本机上部署轻量级配置中心,并让本机的应用访问,配置hosts效果如下图所示:


20200705151948805.png

七、开发RPC接口


7.1 开发步骤


下面的开发示例将以eclipse作为IDE进行示范:


将实验软件\示例代码目录中的edas-app-demo.zip本地磁盘(例如:d:\work)目录,打开eclipse,点击import>Maven>Existing MavenProjects选择刚解压到本地的项目carshop。

20200705152040628.png

新增api,新写一个接口,用来打印名字。在itemcenter-api项目新增接口PrintService。代码如下:


public interface PrintService {
   public String print(String name);
}

八、开发RPC Provider


8.1 开发步骤


接下来要开始rpc provider,通过上述定义的接口完成实现类。如下:

在itemcenter项目新增类PrintServiceImpl实现PrintService接口。代码如下:

public class PrintServiceImpl implements PrintService {
   @Override
   public String print(String name) {
      return name;
   }
}

修改itemcenter项目resources目录下hsf-provider-beans.xml,version用自己的名字+日期。


其中,除了定义hsf的配置hsf:provider以外,还需要将PrintServiceImpl暴露为spring的bean,并提供hsf:provider的ref属性引用。代码如下:

<bean id="printService"
class="com.alibaba.edas.carshop.itemcenter.PrintServiceImpl"
/>
<hsf:provider id="printServiceProvider"
interface="com.alibaba.edas.carshop.itemcenter.PrintService"
ref="printService" version="zhuizhi.20180809" group="testHSFGroup">
</hsf:provider>

九、开发RPC Consumer


9.1 开发步骤


接下来要开始rpc consumer,通过上述第六节定义的接口,远程调用第七节的接口实现。如下:


修改detail项目resources目录下hsf-consumer-beans.xml配置文件。注意此处:hsf:consumer的属性id设置为“print”代码如下:

<hsf:consumer id="print" interface="com.alibaba.edas.carshop.itemcenter.PrintService"
maxWaitTimeForCsAddress = "3000"
    version="zhuizhi.20180809" group="testHSFGroup">
</hsf:consumer>

修改detail项目中StartListener类,通过上述id属性“print”获取到PrintService的实例。通过printService调用print方法完成远程hsf接口调用。代码如下:


@Override
   public void contextInitialized(ServletContextEvent sce) {
      ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
      final ItemService itemService = (ItemService) ctx.getBean("item");
      final PrintService printService = (PrintService) ctx.getBean("print");
      Thread thread = new Thread(new Runnable() {
         @Override
         public void run() {
            Random random = new Random();
            while (true) {
               try {
                  Thread.sleep(500l);
                  System.out.println(itemService.getItemById(1111));
                  System.out.println(itemService.getItemByName("myname is le"));
                  System.out.println(printService.print("zhuizhi.czj.") + random.nextInt());
               } catch (Throwable e) {
                  e.printStackTrace();
               }
            }
         }
      });
      thread.start();
   }

十、验证HSF应用


10.1 启动rpc provider


下面咱们要开始验证上述所编写的hsf应用,首先,需要启动rpc provider将接口信息注册到轻量级配置中心。下面对rpc provider的启动做详细的阐述:


itemcenter项目有接口的实现是hsf的provider。下面以eclipse为例,选中itemcenter项目右键,操作如下:


设置Tomcat4E。右键单击相应的 Eclipse 工程(本示例中的itemcenter项目),右键菜单-> Run As > Run Configurations。查看弹出的配置窗口。


选择左侧导航选项中的 AliTomcat Webapp,新增启动配置; AliTomcat 选项卡,有2项需要注意的配置项,即:Pandora的taobao-hsf.sar location(配置hsf相关包地址)和Web Application下的Tomcat Port(tomcat启动端口号)。下面阐述这两项如何配置。


Pandora (taobao-hsf.sar location) 区域,选择 Use local taobao-hsf.sar;单击旁边的 Browse 以选择本地的 Pandora 路径(如:d:\work\tomcat\deploy\taobao-hsf.sar);


Web Application下的Tomcat Port配置的是tomcat启动端口号,默认8080端口。在这之前“轻量级配置中心”默认也是使用8080端口号,这就可能造成启动后端口冲突。在这里,建议大家修改Tomcat Port的8080为8081。如下图所示:

20200705152408211.png

6. 根据上述内容在Run Configurations配置完成后,单击 Apply 或 Run,完成设置。一个工程只需配置一次,下次可直接启动(即,右键单击项目->Run/Debug->RunAs->Alitomcat Webapp 可以直接运行应用之前的配置);


运行成功后,可以在“轻量级配置中心”查看到发布的接口信息。其中,轻量级配置中心的“服务列表”需要根据“IP地址”或“服务名”进行搜索,“IP地址”必须写完整的本机IP(即,写127.0.0.1无效),而如果根据“服务名”搜索,则服务名需要写完整(例如:com.alibaba.edas.carshop.itemcenter.PrintService才算一个完整的服务名)。


20200705152451651.png


8.查看服务注册日志,C:\Users{当前用户}\logs\configclient\config-client.log中可以看到如下信息,对应服务Publish-ok。

20200705152518859.png

10.2 启动rpc consumer


上述已经将rpc provider(即:itemcenter项目)启动并对外暴露接口信息,提供远程的服务。下面将启动接口调用方通过rpc的方式远程调用rpc provider的接口。


启动当前rpc consumer(即:detail项目)前,确保“轻量级配置中心”和itemcenter项目都已经启动。


启动detail项目,步骤跟itemcenter项目启动方式相同。即:需要通过右键菜单-> Run As > Run Configurations配置Run/Debug中Tomcat Port(可配置为8082端口)和taobao-hsf.sar地址)。


代码通过StartListener启动后默认调用itemcenter项目的rpc接口,调用成功可以在控制台看到以下信息:


20200705152552900.png

相关实践学习
使用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&nbsp;
目录
相关文章
|
2月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
163 2
|
24天前
|
缓存 前端开发 JavaScript
前端的全栈之路Meteor篇(二):容器化开发环境下的meteor工程架构解析
本文详细介绍了使用Docker创建Meteor项目的准备工作与步骤,解析了容器化Meteor项目的目录结构,包括工程准备、环境配置、容器启动及项目架构分析。提供了最佳实践建议,适合初学者参考学习。项目代码已托管至GitCode,方便读者实践与交流。
|
3月前
|
数据库 Java 数据库连接
Hibernate 实体监听器竟如魔法精灵,在 CRUD 操作中掀起自动化风暴!
【8月更文挑战第31天】在软件开发中,效率与自动化至关重要。Hibernate 通过其强大的持久化框架提供了实体监听器这一利器,自动处理 CRUD 操作中的重复任务,如生成唯一标识符、记录更新时间和执行清理操作,从而大幅提升开发效率并减少错误。下面通过示例代码展示了如何定义监听器类,并在实体类中使用 `@EntityListeners` 注解来指定监听器,实现自动化任务。这不仅简化了开发流程,还能根据具体需求灵活应用,满足各种业务场景。
37 0
|
3月前
|
NoSQL API 数据库
揭秘!Flask如何一键解锁RESTful API高效微服务?打造未来互联网架构的隐形力量!
【8月更文挑战第31天】本文介绍如何使用 Flask 构建高效且易维护的 RESTful 微服务,涵盖环境搭建、基本应用创建及代码详解。通过示例展示用户管理系统的 CRUD 操作,并讨论数据库集成、错误处理、认证授权、性能优化及文档生成等高级主题,助力开发者打造强大的后端支持。
59 0
|
3月前
|
边缘计算 安全 物联网
未来互联网架构的演变
【8月更文挑战第16天】随着科技的不断进步,互联网作为现代社会不可或缺的基础设施,其架构也在不断地发展与演变。本文将探讨未来互联网架构可能的变化方向,包括边缘计算、软件定义网络(SDN)、网络功能虚拟化(NFV)等技术趋势,以及这些技术如何影响互联网的稳定性、安全性和效率。同时,文章还将讨论这些变革对用户隐私保护和数据治理的潜在影响,并展望互联网架构的未来发展趋势。
|
3月前
|
设计模式 安全 网络安全
|
5月前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
6月前
|
架构师 开发工具 C++
最新python--类与面向对象-1,一线互联网架构师360°全方面性能调优
最新python--类与面向对象-1,一线互联网架构师360°全方面性能调优
最新python--类与面向对象-1,一线互联网架构师360°全方面性能调优
|
6月前
|
存储 Ubuntu Linux
手写操作系统(3)——开发环境建立与内核架构设计
手写操作系统(3)——开发环境建立与内核架构设计
96 3
|
5月前
|
存储 缓存 网络协议
互联网架构与通信机制:从边缘到核心的深度解析
互联网架构与通信机制:从边缘到核心的深度解析
152 0

热门文章

最新文章