阿里云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

相关实践学习
微服务实战-服务注册中心 - Nacos
Nacos是阿里巴巴于2018年7月发布的一个开源项目,它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 支持几乎所有主流类型的服务的发现、配置和管理: Kubernetes Service&nbsp; gRPC &amp; Dubbo RPC Service&nbsp; Spring Cloud RESTful Service &nbsp;
目录
相关文章
|
6月前
|
人工智能 运维 安全
配置驱动的动态 Agent 架构网络:实现高效编排、动态更新与智能治理
本文所阐述的配置驱动智能 Agent 架构,其核心价值在于为 Agent 开发领域提供了一套通用的、可落地的标准化范式。
2571 90
|
6月前
|
人工智能 安全 数据可视化
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
本文系统性地提出并阐述了一种配置驱动的独立运行时Agent架构,旨在解决当前低代码/平台化Agent方案在企业级落地时面临困难,为Agent开发领域提供了一套通用的、可落地的标准化范式。
551 18
配置驱动的动态Agent架构网络:实现高效编排、动态更新与智能治理
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
666 4
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
276 0
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
264 5
|
监控 安全 API
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
169 0
|
JSON Android开发 数据格式
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
137 0
|
监控 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
357 0

热门文章

最新文章