zoukankan      html  css  js  c++  java
  • Ocelot 新手上路

    新手上路,老司机请多多包含!Ocelot 在博园里文章特别多,但是按照其中一篇文章教程,如果经验很少或者小白,是没法将程序跑向博主的结果.

    因此总结下     参考多篇文章,终于达到预期效果。

     Ocelot   目标是使用.NET运行微服务/面向服务架构,我们需要一个统一的入口进入我们的服务,提供监控、鉴权、负载均衡等机制,也可以通过编写中间件的形式,来扩展Ocelot的功能。  Ocelot是一堆特定顺序的中间件。

     Ocelot开源地址:https://github.com/TomPallister/Ocelot

     

    分别创建三个API

    1.ApiGateway

    2.WebApiA

    3.WebApiB

    以 APIGateway 项目 Nuget控制台,执行Ocelot安装。

    PM>Install-Package Ocelot    按回车等待安装

    如果看到这种情况  恭喜你   环境基本就绪  咱们开始走上编码

    1、APIGateway修改Startup

    
    

    public class Startup
    {

    
    


    public Startup(IConfiguration configuration)
    {
    Configuration = configuration;
    }

    
    


    public IConfiguration Configuration { get; }

    
    


    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {

    
    

    services.AddMvc();
    services.AddOcelot(new ConfigurationBuilder()
    .AddJsonFile("configuration.json")
    .Build());

    
    

    }

    
    


    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public async void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {

    
    

    if (env.IsDevelopment())
    {
    app.UseDeveloperExceptionPage();
    }

    
    

    await app.UseOcelot();

    
    

    app.UseMvc();

    
    

    }

    
    

    }

     

    添加命名空间

    using Ocelot.DependencyInjection;
    using Ocelot.Middleware;

    3.ocelot.json 添加json

    配置如下:

    {
    "ReRoutes": [
    {
    "DownstreamPathTemplate": "/api/values",
    "DownstreamScheme": "http",
    "DownstreamHostAndPorts": [
    {
    "Host": "localhost",
    "Port": 5001
    }
    ],
    "UpstreamPathTemplate": "/webapia/values",
    "UpstreamHttpMethod": [ "Get" ]
    },
    {
    "DownstreamPathTemplate": "/api/values",
    "DownstreamScheme": "http",
    "DownstreamHostAndPorts": [
    {
    "Host": "localhost",
    "Port": 5002
    }
    ],
    "UpstreamPathTemplate": "/webapib/values",
    "UpstreamHttpMethod": [ "Get" ]
    }
    ]
    }

    4.分别修改   launchSettings.json

    1.ApiGateway   5000

    2.WebApiA        5001

    3.WebApiB        5002

    修改两个地方就好

     

     最后设置启动项   鼠标  选中解决方案  右键  选择设置启动项

     

    配置完成  看看效果F5 跑起来

    大家会发现  为什么

    http://localhost:5000/api/values  报错了

    那是因为我们配置

    因此这个地方  访问咱们需要换一个链接

    http://localhost:5000/webapib/values

    http://localhost:5000/webapia/values

     看步骤大家应该就能猜到为什么会这样运行,具体原理  可以看博园中大神们的注解

  • 相关阅读:
    dpdk 连接错误
    strace 跟踪文件
    鲲鹏服务器 centos 升级gcc + 安装qemu
    centos 升级gcc
    undefined reference to `shm_open'
    Golang与C互用
    [ TIME ] Timed out waiting for device dev-ttyS0.device. [DEPEND] Dependency failed for Serial Getty on ttyS0.
    大型 Web 应用插件化架构探索
    网易游戏基于 Flink 的流式 ETL 建设
    基于WASM的无侵入式全链路A/B Test实践
  • 原文地址:https://www.cnblogs.com/xiaobai123/p/9156143.html
Copyright © 2011-2022 走看看