
# 应用逻辑隔离管理
应用逻辑隔离主要用于不同的开发环境共享公共CSE资源的场景，降低成本。逻辑隔离还用于微服务之间的关系管理，通过配合合理的隔离策略，可以更好地控制微服务之间的可访问性、权限等。
#### 服务发现
按照app隔离不同的业务域的微服务。
不同的业务域使用不一样的app名称。同一个业务域内的服务，能够相互发现和点到点访问。不同业务域的服务，不能相互发现，需要通过待访问微服务所在的业务域内的Spring Cloud Gateway去访问。
![](https://support.huaweicloud.com/bestpractice-cse/zh-cn_image_0000001515357545.png "点击放大")
#### 动态配置
动态配置按照公共、应用、服务三个层次进行管理。
简单的场景，可以使用应用级配置和服务级配置。应用级配置被该应用下的所有微服务共享，是公共配置；服务级配置只对具体微服务生效，是独享配置。复杂的场景，可以通过使用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指定多个服务，这样配置项就可以对多个服务和应用生效，非常灵活。
   
 
