Wing~致力于打造一个功能强大、最接地气的.NET微服务框架。——网关篇

什么是网关?

        微服务的应用可能是部署在不同机房、不同地区、不同域名下的。此时客户端想要请求对应的服务,都需要知道机器的具体IP或域名;当微服务实例众多时,对客户端来说就难以维护。此时就有了网关,客户端相关的请求直接发送到网关,由网关根据请求标识解析判断出具体的微服务网址,再把请求发送到服务实例上。

搭建网关框架

        在Wing_Study解决方案的基础上,新建ASP.NET Core空模板。取名ServiceUI。配置和上一篇文章配置一致,并将启动端口设置为6002(不同的是,这篇文章中,因私人原因,将之前的PG数据库换成了SQLSERVER。见谅)。请参考ServiceUI搭建

        需要注意的是配置文件中的UseAutoSyncStructure。它可以自动在数据库中创建Wing所需要的表结构,所以一定要注意,其值要为True。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  // 是否启用配置中心,默认启用
  "ConfigCenterEnabled": false,
  "Consul": {
    "Url": "http://localhost:8500"
  },
  "ConnectionStrings": {
    "Wing": "填写你的数据库连接字符串"
  },
  //自动同步实体结构到数据库
  "UseAutoSyncStructure": true,
  "Gateway": {
    "Policy": {
      "Global": {
        限流
        //"RateLimit": {
        //  //是否启用
        //  "IsEnabled": true,
        //  //最多执行次数
        //  "NumberOfExecutions": 1,
        //  //秒数
        //  "PerSeconds": 10,
        //  //每次最大执行并发数
        //  "MaxBurst": 1
        //}
      }
    },
    // 请求日志
    "Log": {
      // 是否启用网关日志记录
      "IsEnabled": true,
      // 是否启用事件总线(RabbitMQ)存储日志,生产环境推荐启用,可以提升程序的性能。参考官方文档
      "UseEventBus": false
    }
  }
}

        为了测试服务网关,我们接着在Service1服务节点创建一个API。控制器取名Test,方法取名Get。正常访问路劲应为http://localhost:5001/api/test 。但通过网关代理,则为http://localhost:6002/service1/api/test

请求服务地址默认是{网关IP或域名}/{服务名}/{服务路由} 

启动UI,网关,Service1服务。访问 http://localhost:6002/service1/api/test,可在UI页面上看到请求服务已被日志记录

下一篇讲讲网关的网关策略

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值