阿里云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;
目录
相关文章
|
1月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
104 2
|
4天前
|
设计模式 测试技术 持续交付
架构视角下的NHibernate:设计模式与企业级应用考量
【10月更文挑战第13天】随着软件开发向更复杂、更大规模的应用转变,数据访问层的设计变得尤为重要。NHibernate作为一个成熟的对象关系映射(ORM)框架,为企业级.NET应用程序提供了强大的支持。本文旨在为有一定经验的开发者提供一个全面的指南,介绍如何在架构层面有效地使用NHibernate,并结合领域驱动设计(DDD)原则来构建既强大又易于维护的数据层。
20 2
|
8天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
12 1
|
1月前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
1月前
|
存储 弹性计算 SDN
企业级 ECS 集群的构建需要综合考虑多个因素,通过不断的比较和对比不同的方案,选择最适合企业自身需求和发展的架构。
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS(弹性计算服务)集群对提升业务稳定性、扩展性和性能至关重要。本文将比较传统物理服务器与ECS架构,分析云服务商选择(如AWS和阿里云)、实例配置(CPU/内存)、网络架构(SDN vs 传统)及存储方案(本地存储 vs 云存储),帮助企业根据自身需求选出最优方案,实现高效稳定的ECS集群部署。
63 18
|
2月前
|
运维 数据库 云计算
卓越架构,数据无忧|8月30日,阿里云用户组·上海站沙龙,火热报名中🔥
聚焦数据库 「成本&稳定」方面的技术实现和解決方案,深度互动数据库使用生命周期需求、如何节约数据库成本等
|
2月前
|
关系型数据库 Serverless 分布式数据库
阿里云 Serverless 高可用架构
阿里云的《卓越效能,极简运维,Serverless高可用架构》解决方案提供了全托管服务、自动扩展、高可用性、无缝集成以及内置安全等核心功能。该方案通过免除底层基础设施的管理,允许用户专注于应用程序开发,同时确保应用的稳定运行和资源的有效利用。 **核心功能简介**: - **全托管服务**:用户无需关心底层硬件,由阿里云负责维护和扩展计算资源。 - **自动扩展**:根据业务需求自动调整资源,确保应用在高峰期有足够的计算能力,低谷期则节省成本。 - **高可用性**:多地域和多可用区部署,实现故障自动切换,确保业务连续性。 - **无缝集成**:与阿里云的其他服务(如数据库、消息队列等)深度
|
2月前
|
数据库 Java 数据库连接
Hibernate 实体监听器竟如魔法精灵,在 CRUD 操作中掀起自动化风暴!
【8月更文挑战第31天】在软件开发中,效率与自动化至关重要。Hibernate 通过其强大的持久化框架提供了实体监听器这一利器,自动处理 CRUD 操作中的重复任务,如生成唯一标识符、记录更新时间和执行清理操作,从而大幅提升开发效率并减少错误。下面通过示例代码展示了如何定义监听器类,并在实体类中使用 `@EntityListeners` 注解来指定监听器,实现自动化任务。这不仅简化了开发流程,还能根据具体需求灵活应用,满足各种业务场景。
34 0
|
2月前
|
NoSQL API 数据库
揭秘!Flask如何一键解锁RESTful API高效微服务?打造未来互联网架构的隐形力量!
【8月更文挑战第31天】本文介绍如何使用 Flask 构建高效且易维护的 RESTful 微服务,涵盖环境搭建、基本应用创建及代码详解。通过示例展示用户管理系统的 CRUD 操作,并讨论数据库集成、错误处理、认证授权、性能优化及文档生成等高级主题,助力开发者打造强大的后端支持。
52 0

热门文章

最新文章