治理工具包 - rewin.ubsi.rest


UBSI的体系架构主要是面向中台的微服务层面,并不会限制微服务之上的前台应用开发框架的选择。对于一个典型的WebApp,前端可以是基于JS框架的SPA,也可以是移动APP或桌面APP;后端作为前端的接入服务层,主要用来提供rest服务接口及安全访问控制机制。

对于采用了SpringBoot框架开发的Web后端服务,可以引入UBSI WebApp治理工具包,这样在UBSI治理工具中可以做到对这些Web服务实例的发现及管理。

引入rewin.ubsi.rest

在SpringBoot项目的pom.xml中添加如下依赖:

<dependency>
    <groupId>rewin.ubsi</groupId>
    <artifactId>rewin.ubsi.rest</artifactId>
    <version>2.3.0</version>
</dependency>
  • rewin.ubsi.rest依赖的SprintBoot版本是2.6.6
  • rewin.ubsi.rest已经依赖了rewin.ubsi.core,不必重复引入

添加启动代码

  • 在应用入口的@SpringBootApplication注解中添加如下属性:

    @SpringBootApplication(
            scanBasePackages = {
                    "rewin.ubsi.rest",    // 引入治理接口
                    "{your-packages}"
            },
            exclude = {        // 取消MongoDB/Jedis的自动配置
                    MongoAutoConfiguration.class,
                    MongoDataAutoConfiguration.class,
                    RedisAutoConfiguration.class,
                    RedisRepositoriesAutoConfiguration.class
            }
    )
    public class Application {
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    }
    
  • 在应用初始化时添加ubsi启动步骤:

    @Component
    public class AppRunner implements ApplicationRunner {
        @Override
        public void run(ApplicationArguments args) throws Exception {
            // your start code
            rewin.ubsi.rest.Starter.startup(".");    // 启动rewin.ubsi.rest,参数为配置文件所在目录
        }
    }
    

添加运行时的配置文件

  • rewin.ubsi.consumer.json

    rewin.ubsi.rest在启动时会自动加载UBSI Consumer组件,如果在配置文件rewin.ubsi.consumer.json中配置了redis,则会将自己作为一个WebApp的实例注册到redis注册中心,随后UBSI治理工具就可以自动发现这个WebApp,并通过rest组件提供的api对其进行配置管理。配置示例如下:

    {
      "io_threads": 4,
      "timeout_connect": 5,
      "timeout_request": 10,
      "timeout_reconnect": 600,
    
      "redis_host": "{redis-server-host}",
      "redis_port": 6379,
      "redis_conn_idle": 2,
      "redis_conn_max": 16,
    }
    
  • rewin.ubsi.rest.json

    rewin.ubsi.rest在向redis注册时,需要声明自己的URL访问路径,这个路径应该配置在rewin.ubsi.rest.json文件中,示例如下:

    {
      "url": "http://{your-webapp-root-url}",
      "gateway": false
    }
    

    注:gateway表示是否允许Web服务直接转发UBSI服务请求

服务接口

rewin.ubsi.rest为Web服务提供了两组预置的服务接口,分别是:

  • /controller

    用于UBSI治理工具对Web服务的运行实例进行监控,比如:

    [GET] http://{your-webapp-root-url}/controller/info - 获得rewin.ubsi.rest的运行信息

  • /request

    用于转发UBSI服务请求,可以通过如下方式获得如何通过request body构造服务请求的帮助:

    [POST] http://{your-webapp-root-url}/request?help

results matching ""

    No results matching ""