更新时间:2024-08-16 GMT+08:00
分享

应用逻辑隔离管理

应用逻辑隔离主要用于不同的开发环境共享公共CSE资源的场景,降低成本。逻辑隔离还用于微服务之间的关系管理,通过配合合理的隔离策略,可以更好地控制微服务之间的可访问性、权限等。

服务发现

按照app隔离不同的业务域的微服务。

不同的业务域使用不一样的app名称。同一个业务域内的服务,能够相互发现和点到点访问。不同业务域的服务,不能相互发现,需要通过待访问微服务所在的业务域内的Spring Cloud Gateway去访问。

动态配置

动态配置按照公共、应用、服务三个层次进行管理。

简单的场景,可以使用应用级配置和服务级配置。应用级配置被该应用下的所有微服务共享,是公共配置;服务级配置只对具体微服务生效,是独享配置。复杂的场景,可以通过使用custom_tag和custom_value来定义配置。 例如某些配置,是对所有应用共享的,那么就可以使用这个机制。在配置文件增加如下配置:
spring:
  cloud:
    servicecomb:
      config:
        kie:
          customLabel: public# 默认值是public
          customLabelValue: default # 默认值是空字符串

只要配置项带有public标签,并且标签值为default,这些配置项就会对该微服务生效。可以这样理解配置中心:

  1. 把配置中心当成数据库的一个表tbl_configurations, key是主键, 每个label都是属性。
  2. 客户端会根据如下3个条件查询配置:
    • 自定义配置

      select * from tbl_configurations where custome_label=custome_label_value & withStrict=false

    • 应用级配置

      select * from tbl_configurations where app=demo_app & environment=demo_environment & withStrict=true

    • 服务级配置

      select * from tbl_configurations where app=demo_app & environment=demo_environment & service=demo_service & withStrict=true

    其中,withStrict为true的时候,表示有且只有条件里面指定的属性;withStrict为false的时候,表示除了条件里面的属性,允许有其他的属性。

    还可以给标签app指定多个应用,或者给标签service指定多个服务,这样配置项就可以对多个服务和应用生效,非常灵活。

相关文档