Dubbo API网关

作者: 索伦x | 来源:发表于2019-03-17 15:07 被阅读775次

    什么是API网关?

    在微服务架构中,通常会有多个服务提供者。设想一个电商系统,可能会有商品、订单、支付、用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更。作为UI端,在展示页面时可能需要从多个微服务中聚合数据,而且服务的划分位置结构可能会有所改变。网关就可以对外暴露聚合API,屏蔽内部微服务的微小变动,保持整个系统的稳定性。

    api网关

    API网关的作用

    • 协议转发,例如Dubbo到Ng http
    • api接口聚合
    • 路由,比如直接路由到第三方API接口
    • 统一鉴权
    • 限流
    • 防攻击
    • 系统拆分
    • api横向扩展、高可用、负载均横
    • 服务自动扩缩

    构建一个简单的WEB网关

    首先准备一个SpringBoot Web工程

    POM

            <!-- 调用Login微服务 -->
            <dependency>
                <groupId>com.suoron</groupId>
                <artifactId>testdubbo-client</artifactId>
                <version>1.0.0-SNAPSHOT</version>
            </dependency>
    

    application.yml

    dubbo:
      scan:
        basePackages: com.suoron.client.service,com.suoron.springboot.config
      ## ApplicationConfig Bean
      application:
        id: mobile-web-api
        name: mobile-web-api
      ## RegistryConfig Bean
      registry:
        id: zookeeper
        address: zookeeper://127.0.0.1:2181
    
    # Dubbo Endpoint (default status is disable)
    endpoints:
      dubbo:
        enabled: true
    
    ##健康检查http://127.0.0.1:9091/actuator/health
    management:
      server:
        port: 9091
      # Dubbo Health
      health:
        dubbo:
          status:
            ## StatusChecker Name defaults (default : "memory", "load" )
            defaults: memory
      # Enables Dubbo All Endpoints
      endpoint:
        dubbo:
          enabled: true
        dubbo-shutdown:
          enabled: true
        dubbo-configs:
          enabled: true
        dubbo-services:
          enabled: true
        dubbo-references:
          enabled: true
        dubbo-properties:
          enabled: true
        health:
          show-details: always
      endpoints:
        web:
          exposure:
            include: "*"
    
    启动类MyApplication
    @ComponentScan("com.suoron.dubbo.client.service")
    
    测试

    首先启动微服务Server,然后启动WEB网关

    相关文章

      网友评论

        本文标题:Dubbo API网关

        本文链接:https://www.haomeiwen.com/subject/eyzemqtx.html