云主机CSE环境搭建和服务接入

1 概述

1.1 背景介绍

微服务引擎CSE,是用于微服务应用的云中间件,支持华为云贡献到Apache社区的注册配置中心Servicecomb引擎和开源增强的注册配置中心Nacos引擎。用户可结合其他云服务,快速构建云原生微服务体系,实现微服务应用的快速开发和高可用运维。 CSE本地开发工具包含了ServiceComb引擎2.x的本地轻量化版本,提供用于本地开发的轻量服务中心、配置中心和简单易用的界面。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计30分钟。

1.4 案例流程

1.4.png{{{width="40%" height="auto"}}}

说明: ① 在云主机上搭建CSE本地开发工具; ② Web-demo服务添加配置对接CSE; ③ 启动Web-demo服务自动注册到CSE。

1.5 资源总览

本案例预计花费总计0元。 |资源名称| 规格| 单价(元)| 时长(h)| |-|-|-|-| |CSE本地开发工具包| ServiceComb引擎2.x,单个微服务数量100,微服务版本数量10000| 0| 0.5| |开发者空间-云主机| 免费版| 0| 0.5|

2 搭建本地CSE环境

2.1 下载CSE本地开发工具包并启动服务

登录云主机,在浏览器中输入下载地址:https://support.huaweicloud.com/devg-cse/cse_04_0046.html进入下载页面,选择Local-CSE-2.1.8-linux-amd64.zip版本包下载。 2.1-1.png 下载好以后解压工具包,如图所示。 2.1-2.png 进入Local-CSE-2.1.8-Linux-amd64目录下,右键点击空白处,在弹出的菜单中选择“Open Terminal Here”。 2.1-3.png 在命令行中输入以下命令启动CSE服务:

nohup sh start.sh >/dev/null 2>&1 &

2.1-4.png 在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103 2.1-5.png

2.2 测试CSE服务注册功能

接上面的步骤,继续在命令行中输入如下命令测试“服务注册”:

curl -X POST 'http://127.0.0.1:30100/v4/default/registry/microservices' -d '{"service":{"serviceName":"Demo"}}'

2.2-1.png 在命令行中输入如下命令测试“服务发现”:

curl -X GET 'http://127.0.0.1:30100/v4/default/registry/instances?appId=default&serviceName=Demo'

2.2-2.png 在命令行中输入如下命令测试“新建配置”:

curl -H 'Content-Type: application/json' -X POST 'http://127.0.0.1:30110/v1/default/kie/kv' -d '{"key":"spring.test","value":"{\"name\":\"demo\"}","value_type":"json","status":"enabled"}'

2.2-3.png 在命令行中输入如下命令测试“获取配置”:

curl -X GET 'http://127.0.0.1:30110/v1/default/kie/kv?key=spring.test'

2.2-4.png

3 SpringCloud项目接入CSE

3.1 云主机CodeArts IDE运行项目

参考“基于云主机的CodeArts IDE运行Java电商项目”完成在云主机的CodeArts IDE上运行自己的项目。 在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103 3.1-1.png 发现应用数和服务数依然是0,说明项目并没有接入到CSE。

3.2 在pom.xml中引入依赖

在代码主目录下,找到pom.xml文件,在pom文件中 标签下引入如下依赖:

<dependency>
    <groupId>com.huaweicloud</groupId>
    <artifactId>spring-cloud-starter-huawei-service-engine</artifactId>
    <version>1.11.9-2021.0.x</version>
    <exclusions>
        <exclusion>
            <groupId>com.huaweicloud</groupId>
            <artifactId>spring-cloud-starter-huawei-swagger</artifactId>
        </exclusion>
    </exclusions>
</dependency>

cse-new.png 说明: 上述spring-cloud-starter-huawei-service-engine模块包含以下依赖模块,涵盖了CSE微服务引擎的各种功能:

<!--  注册发现模块  -->
<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-discovery</artifactId>
</dependency>
<!--  配置中心模块  -->
<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-config</artifactId>
</dependency>
<!--  服务治理模块  -->
<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-governance</artifactId>
</dependency>
<!--  灰度发布模块  -->
<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>spring-cloud-starter-huawei-router</artifactId>
</dependency>

3.3 增加配置文件bootstrap.yml

在项目代码中找到./src/main/resources目录,增加对接CSE服务的必要配置文件bootstrap.yml,文件内容如下:

spring:
  application:
    name: E-Commerce

  cloud:
    servicecomb:
      service:

        name: ${spring.application.name}

        version: ${CAS_INSTANCE_VERSION:0.0.1}

        application: ${CAS_APPLICATION_NAME:basic-application}

        environment: production

      discovery:

        address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}

        healthCheckInterval: 10

        pollInterval: 15000

        waitTimeForShutDownInMillis: 15000
      config:

        serverAddr: ${PAAS_CSE_CC_ENDPOINT:http://127.0.0.1:30110}
        serverType: kie

        kie:
          customLabel: ${spring.application.name}
          customLabelValue: ${INSTANCE_TAG:default}

        fileSource: governance.yaml,application.yaml

3.3-1.png

3.4 启动项目

在Java项目找到项目的主函数文件,然后在主函数左边点击绿色的三角形按钮,然后选择第一个“在CommerceApplication中运行主程序”: 3.4-1.png 即可完成项目启动运行,左下角终端中显示“Started CommerceApplication in XXX seconds”即表示项目运行成功。 在浏览器中输入以下地址打开本地微服务管理页面: http://127.0.0.1:30103 3.4-2.png 在页面上,我们可以看到我们的demo项目已经注册到管理中心。

3.5 bootstrap.yml配置文件分析

spring:
  application:
    name: E-Commerce

此处配置为微服务名称,一旦定好后续不能更改。

service:
       name: ${spring.application.name}
       version: ${CAS_INSTANCE_VERSION:0.0.1}
       application: ${CAS_APPLICATION_NAME:basic-application}
       environment: production

此处配置为微服务基本信息,name就是微服务名称,引用上面的定义;version是微服务版本号;application是应用名称,默认情况下只有应用名称相同的微服务之间才可以相互发现;Environment是环境名称,只有环境名称相同的微服务之间才可以相互发现,可以取值 development, testing, acceptance, production。

discovery:
       address: ${PAAS_CSE_SC_ENDPOINT:http://127.0.0.1:30100}
       healthCheckInterval: 10
       pollInterval: 15000
       waitTimeForShutDownInMillis: 15000

此处配置是注册发现相关配置,address是注册中心地址;healthCheckInterval是微服务向CSE发送心跳间隔时间,单位秒;pollInterval拉取实例的轮询时间,单位毫秒;waitTimeForShutDownInMillis是优雅停机设置,优雅停机后,先从注册中心注销自己,这个时间表示注销自己后等待的时间,这个时间后才退出。

3.6 总结

本案例为CSE微服务实践的第一步,指导开发者从零搭建本地CSE开发环境,为后续实验打好基础。接下来,我们将在此环境中学习配置使用配置中心、灰度发布、微服务治理等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值