外部微服务导入

基础服务搭建

redis

系统自带有 redis 管理功能,可通过系统管理员为租户添加 redis 实例,来方便租户内的应用使用 redis。

系统管理员登录控制台,选择“中间件管理 --> 中间件系统管理 --> Redis 实例管理 -->明细”

1723186331671

在明细窗口中选择“使用模板新建”按钮

1723186387388

参数说明:

  • 数量:本次需要新增的 redis 实例数量,一般可选择1
  • 应用模板:选择 redis 服务模板
  • 租户:可以选择某一个租户,系统将会在租户下部署 redis 服务,也可以统一将 redis 服务部署到平台自带的 redis 租户下,方便统一管理和追踪问题。建议采用第二种方式。
  • 部署集群:选择该租户下的 kube 部署集群。这样 redis 服务才会一直运行,不会被池模式回收实例。

1723186449764

点击确定后,系统后台会在对应的租户下面创建 redis 服务,并将此 redis 纳入到 redis 池中进行管理。当某一个租户下有 redis 服务组件的应用部署或者启动时,会到池中抢占这个创建好的 redis 实例,并进行绑定。这个 redis 实例就会分配给这个租户,方便租户内的应用进行使用。

其中分配 key 的含义,@符号前面标识是给生产还是开发时使用,每个租户会最多被分配两个 redis 实例,production-session 是提供给生产应用使用的,dev-session 是提供给开发状态的应用使用的;@符号后面则是绑定的租户名称。

image-20230614175051806

nacos

系统支持一个租户部署一套 nacos,通过租户管理员登录到控制平台,选择应用/服务管理,从应用市场中选择 nacos 进行部署即可完成 nacos 的部署。

image-20230614175019950

部署的时候需要注意,部署的集群请选择该租户下的 kube 集群。

image-20230614174946600

由于平台目前内置的 nacos 是采用 helm 包的方式部署的,如果需要对外提供域名访问,有两种方案。一是需要用平台默认的域名访问,则要在平台的 redis 中增加相应的配置才能够将域名解析到 nacos 服务上。二是可以在 k8s 中定义 ingress 指向 nacos 服务来实现外部域名的访问。

平台默认域名访问

使用系统管理员登录到管理控制台,选择运维管理 --> Redis管理

image-20230614174534286

在 Redis 管理界面中找到 GLOBAL_DOMAIN_UPSTREAM,为其增加配置项

image-20230614174453772

在其中增加域名及需要映射的 service 地址。域名为应用管理中提供的默认域名,service 地址格式为:service 名称.service 所在名空间:端口号。例如:nacos-cs.newdao-tenant-edgedemo:8848。配置好后即可通过域名访问至 nacos 中

image-20230614180116416

ingress 配置访问

参考 ingress 的标准用法即可,此处不再举例。

sentinel

与 nacos 一样,通过租户管理员登录控制台后,在应用服务管理中添加 sentinel 服务即可。如果需要访问的话也和 nacos 一样增加 redis 配置即可

seata

与 nacos 一样,通过租户管理员登录控制台后,在应用服务管理中添加 seata 服务即可。如果需要访问的话也和 nacos 一样增加 redis 配置即可

image-20230614181052601

微服务导入

前端导入

创建前端服务

在我的开发下选择企业应用,添加创建企业应用,搜索外部应用导入模板,选择该模板来创建应用。

image-20230614182557651

创建好应用后,为保证相关组件为最新的组件,可以在架构中更新相应的组件。

image-20230614185338767

新增模块

进入 IDE 后,选择模块设置

image-20230614182649189

在弹出的模块设置对话框中,默认会有一个 main 模块,如果不需要则可以删除。之后可以点击添加新建前端服务模块。

参数说明:

  • 名称:模块的名称,建议采用英文
  • 显示名:模块的显示名称,可以使用中文也可以使用英文
  • 运行环境:选择应用所需的运行环境,目前有 tomcat、java、nginx、nginx-前端构建、自动等类型。如果是上传前端编译后的源码选择 nginx,如果是通过 git/svn 等方式获取前端的源码后编译发布,则选择 nginx-前端构建。
  • 导入方式:目前支持上传和源码两种,选择上传时,可上传编译后的文件,选择源码时则可以配置 git/svn 选项下载源码后由平台进行编译。

image-20230614185039627

设置导入参数

模块创建好后即可设置相应的参数完成应用的导入。首先在右上角选择对应的模块,之后输入相应的配置参数。这里以源码的导入举例

  • 仓库类型:目前支持 svn 和 git 两种方式
  • 代码分支:代码在 git 中的分支名称
  • 仓库用户:代码仓库中的用户名
  • 仓库 Token:代码仓库中的 token,支持使用用户名密码的模式,也支持使用 token 的模式。
  • 仓库密码:代码仓库中的密码
  • 源目录:代码在仓库中的目录位置
  • 目标目录:需要下载至本项目下的目录位置,例如 /uisource
  • 文件列表:相当于文件的白名单,在此列表的目录都会导入。目录采用通配符进行标识,结尾为 / 时表示文件夹,没有 / 时表示文件。多个文件用回车进行隔开。例如:
/test/**/ui/  
/aa/**/bb/  
/cc/d.html
  • 文件过滤:相当于文件列表的黑名单,在此列表中的目录均不会导入。配置方法同文件列表

image-20230614183552376

配置完成后点击导入源码按钮和确认按钮。

如果采用平台内置的 kong 网关则需要在配置中对网关进行设置,本此示例中采用根目录直接访问,配置如下

image-20230614184440605

如果需要从平台内置的门户进行访问,则需要对服务网关进行配置

image-20230614184547229

如果需要对 nginx 的配置进行修改,则可以在代码选项卡中,修改相应的配置文件。路径如下:/model/service/模块名称/deploy/模块名称.module.conf

image-20230614184812894

发布前端服务

完成配置后点击右上角的发布按钮,即可将应用发布至生产环境或者发布至应用市场中。

image-20230614184932445

发布成功后与 nacos 一样,可以有两种选择将前端服务的访问地址暴露出去。一是使用平台默认的网关进行访问,二是手动配置 ingress 指向部署后的前端应用 pod,配置可参考前面的 nacos 配置。

image-20230614191404683

后端导入

创建微服务

在我的开发下选择企业应用,添加创建企业应用,搜索外部应用导入模板,选择该模板来创建应用。

image-20230614182557651

创建好应用后,为保证相关组件为最新的组件,可以在架构中更新相应的组件。

image-20230614185338767

新增模块

进入 IDE 后,选择模块设置

image-20230614182649189

在弹出的模块设置对话框中,默认会有一个 main 模块,如果不需要则可以删除。之后可以点击添加新建前端服务模块。

参数说明:

  • 名称:模块的名称,建议采用英文
  • 显示名:模块的显示名称,可以使用中文也可以使用英文
  • 运行环境:选择应用所需的运行环境,目前有 tomcat、java、nginx、nginx-前端构建、自动等类型。如果是上传前端编译后的源码选择 nginx,如果是通过 git/svn 等方式获取前端的源码后编译发布,则选择 nginx-前端构建。
  • 导入方式:目前支持上传和源码两种,选择上传时,可上传编译后的文件,选择源码时则可以配置 git/svn 选项下载源码后由平台进行编译。

image-20230614185428130

设置导入参数

模块创建好后即可设置相应的参数完成应用的导入。首先在右上角选择对应的模块,之后输入相应的配置参数。这里以源码的导入举例

  • 仓库类型:目前支持 svn 和 git 两种方式
  • 代码分支:代码在 git 中的分支名称
  • 仓库用户:代码仓库中的用户名
  • 仓库 Token:代码仓库中的 token,支持使用用户名密码的模式,也支持使用 token 的模式。
  • 仓库密码:代码仓库中的密码
  • 源目录:代码在仓库中的目录位置
  • 目标目录:需要下载至本项目下的目录位置,例如 /uisource
  • 文件列表:相当于文件的白名单,在此列表的目录都会导入。目录采用通配符进行标识,结尾为 / 时表示文件夹,没有 / 时表示文件。多个文件用回车进行隔开。例如:
/test/**/ui/  
/aa/**/bb/  
/cc/d.html
  • 文件过滤:相当于文件列表的黑名单,在此列表中的目录均不会导入。配置方法同文件列表

image-20230614183552376

配置完成后点击导入源码按钮和确认按钮。

微服务相关设置

导入的微服务需要重点注意四个地方的配置

①、服务依赖配置

如果一个微服务中有其他的服务依赖,提供两种解决方案。一是通过 maven 的私有化仓库,二是将所依赖的服务源码一起导入后共同进行编译,源码按照相应的层级关系放置即可。

image-20230614185845720

②、多层级代码时 pom 文件修改

如果代码存在多层级的目录,或者父子工程,则需要对 pom 文件中编译后的 target 目录进行修改,将目录指向模块根目录下的 target 目录,这样平台才能够识别到需要发布的 jar 包是哪一个。

image-20230614190103434

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <addResources>true</addResources>
                    <outputDirectory>../../../target</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

③、微服务注册地址配置

代码中的微服务注册地址、端口号等设置主要提供有两种方式。

  • 一是手动编写,即手动编写可以访问到的地址及端口号。
  • 二是组件进行补充,通过引入 cloud link 组件,会默认指向该租户下的 nacos、redis 等服务。cloudLink 里面维护了 nacos 服务、sentinel 服务的连接信息。cloudLink 组件可以生成如下环境变量,在应用开发过程中,开发者可在代码里面引用这些变量

image-20230614190542832

image-20230614190723595

//目前已有的参数
// sentinel地址全路径
COMP_CLOUDLINK_SENTINEL_ADDRESS
// nacos IP地址
COMP_CLOUDLINK_NACOS_IP
// nacos 端口
COMP_CLOUDLINK_NACOS_PORT
// redis 地址
COMP_REDIS_REDISHOST 
// redis 端口号
COMP_REDIS_REDISPORT
// redis 密码
COMP_REDIS_REDISPASSWORD

在 nacos 中的配置文件也是同理

image-20230614190851195

发布微服务

点击右上角的发布按钮,即可将微服务发布至生产环境或者发布至应用市场中。

image-20230614191132664

发布成功后就可以在 nacos 中的服务列表中看到注册成功的服务。

image-20230614191225215

results matching ""

    No results matching ""