
# Spring Cloud Eureka应用接入Nacos引擎
本章节通过一个demo进行全流程的Spring Cloud Eureka应用接入Nacos引擎操作演示。
将使用一个provider服务和一个consumer服务接入Nacos引擎。
 #### 前提条件
- 已创建Nacos引擎，具体操作请参考[创建注册配置中心](https://support.huaweicloud.com/usermanual-cse/cse_03_0001.html)。
- 下载github的[demo源码](https://github.com/ZrBac/eureka-demo.git)到本地并解压。
- 本地编译构建打包机器环境已安装了Java JDK、Maven，并且能够访问Maven中央库。
 
#### 约束限制
- Nacos对Eureka的兼容，主要是兼容Eureka服务端侧的API，将服务侧注册的客户端实例信息进行保存与刷新，因此如果您仅使用Eureka作为注册中心，那么Nacos的诸多特性如命名空间和配置管理是不能使用的**。**
- 使用Eureka作为客户端，仅能在Nacos的"服务管理"中进行查阅，Eureka服务均使用Nacos的默认属性进行展示，即：
  - 默认命名空间：**public**。
  
  - 默认分组名称：**DEFAULT_GROUP**。
   
- 在Nacos中在"服务管理"页面创建服务的"保护阈值"设置的值属于Nacos的特性，无法作用于Eureka服务。
 
#### Spring Cloud Eureka应用接入Nacos引擎
1. 登录[微服务引擎控制台](https://console.huaweicloud.com/cse2/)。
2. 获取Nacos引擎注册发现地址。 
   1. 在左侧导航栏选择"注册配置中心"，单击创建的Nacos引擎实例。
   
   2. 在"基础信息"页面的"连接信息"区域，获取注册发现地址。 ![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000002025183509.png "点击放大")
      
   
   
   
   
3. 修改demo中的注册中心地址和微服务名。 
   1. 在"application.properties"中配置Nacos的服务注册发现地址和微服务名。
      - 在下载到本地的demo源码目录中找到"eureka-demo-master\\eureka-consumer\\src\\main\\resources\\application.properties"文件，配置consumer服务：
        ```
        server.port=9001
        spring.application.name=eureka-client-consumer //微服务名
        eureka.client.serviceUrl.defaultZone= XXX.nacos.cse.com:8848/nacos/eureka //nacos的服务注册发现地址
        eureka.instance.lease-renewal-interval-in-seconds=15 //服务心跳刷新间隔
        eureka.client.registry-fetch-interval-seconds=15 //拉取注册中心间隔（建议与心跳间隔一致）
        ```
        
      
      - 在下载到本地的demo源码目录中找到"eureka-demo-master\\eureka-provider\\src\\main\\resources\\application.properties"文件，配置provider服务：
        ```
        server.port=9000
        spring.application.name=eureka-client-provider //微服务名
        eureka.client.serviceUrl.defaultZone= XXX.nacos.cse.com:8848/nacos/eureka //nacos的服务注册发现地址
        eureka.instance.lease-renewal-interval-in-seconds=15 //服务心跳刷新间隔
        eureka.client.registry-fetch-interval-seconds=15 //拉取注册中心间隔（建议与心跳间隔一致）
        ```
        
       
   
   
   
   
4. 打包demo源码成jar包。
   
   1. 在demo源码根目录下，打开cmd命令，执行**mvn clean package**命令，对项目进行打包编译。
   
   2. 编译成功后，生成如[表1]所示的两个Jar包。
       表1软件包列表 
      | 软件包所在目录                   | 软件包名称                                     | 说明    |
      |:---|:---|:---|
      | \\eureka-consumer\\target | eureka-client-consumer-1.0.0-SNAPSHOT.jar | 服务消费者 |
      | \\eureka-provider\\target | eureka-client-provider-1.0.0-SNAPSHOT.jar | 服务生产者 |
         
      
   
   
   
   
5. 部署SpringCloud应用。 
   将微服务Provider和Consumer部署至Nacos引擎所在VPC的ECS节点。
   1. 请参考[购买并登录Linux弹性云服务器](https://support.huaweicloud.com/qs-ecs/ecs_01_0103.html)在引擎实例所属VPC下创建一台ECS节点并登录。
   
   2. 安装JRE，为服务提供运行环境。
   
   3. 将[4]生成JAR包上传至ECS节点。
   
   4. 执行命令：**java -jar** **{对应jar包}**，运行生成的JAR包。
    
   
   
6. 确认部署结果。 
   1. **可选：** 在微服务引擎控制台页面，在左侧导航栏选择"注册配置中心"，单击[前提条件]中创建的Nacos引擎。
   
   2. 选择"服务管理"，查看微服务eureka-client-consumer和eureka-client-provider的实例数量。
      - 若实例数量值不为0，则表示已经成功接入Nacos引擎。
      
      - 若实例数量为0，或者找不到eureka-client-consumer和eureka-client-provider服务名，则表示微服务应用接入Nacos引擎失败。
       
   
   
   
   
 
