Getting Started

Ocelot是只在.NET Core运行,目前基于netstandard2.0构建的。如果Ocelot适合你们的话,那么这个文档会有所帮助。

.NET Core 2.0

安装Nuget包

安装Ocelot以及依赖包。你将新疆一个.netstandard 2.0项目,并引入包。然后根据下面的Startup和Configuration节点启动运行。

安装Ocelot Nugget命令行:Install-Package Ocelot

配置项

下面是最基本的ocelot.json配置。它不会做任何事,但是能够正常运行Ocelot

{
"ReRoutes": [],
"GlobalConfiguration": {
"BaseUrl": "https://api.mybusiness.com"
}
}

大多要注意的是 BaseUrl。Ocelot需要知道在那个URL下运行的,以便查找头文件和替换一些配置。这个URL是外部的地址,它在客户端上能看到Ocelot在运行在那个URL。如果你正在 http://123.12.1.1:6543 运行Ocelot容器,但是就好像有nginx代理一样,在https://api.mybusiness.com上响应。在这种情况下,Ocelot的BaseUrl应该是https://api.mybusiness.com

如果因为一些原因你要使用Ocelot容器并且想在 http://123.12.1.1:6543 客户端响应,你可以这么做,但是如果你正在部署多个Ocelot,那么你可能希望通过命令行一些脚本传递它。希望无论什么调度器你都能通过传递IP。

Program

接着在你的Program.cs文件输入如下代码。主要注意的是AddOcelot()(增加Ocelot服务)UseOcelot().Wait()(设置Ocelot中间件)。

public class Program
{
public static void Main(string[] args)
{
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
config
.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath)
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile($"appsettings.{hostingContext.HostingEnvironment.EnvironmentName}.json", true, true)
.AddJsonFile("ocelot.json")
.AddEnvironmentVariables();
})
.ConfigureServices(s => {
s.AddOcelot();
})
.ConfigureLogging((hostingContext, logging) =>
{
//add your logging
})
.UseIISIntegration()
.Configure(app =>
{
app.UseOcelot().Wait();
})
.Build()
.Run();
}
}

.NET Core 1.0

Install NuGet package

安装Ocelot及其依赖包。新建一个.net core 1.0项目并引入包。然后按照下面的Startup和Configuration节点设置并运行。请注意安装对应版本的nuget包。

Configuration

下面是最基本的配置内容。不会做任何事但是会正常运行项目

{
"ReRoutes": [],
"GlobalConfiguration": {}
}

Program

接着在Program.cs输入如下代码

public class Program
{
public static void Main(string[] args)
{
IWebHostBuilder builder = new WebHostBuilder(); builder.ConfigureServices(s => {
}); builder.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>(); var host = builder.Build(); host.Run();
}
}

Startup

使用json文件配置启动实例的例子如下所示

public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddJsonFile("ocelot.json")
.AddEnvironmentVariables(); Configuration = builder.Build();
} public IConfigurationRoot Configuration { get; } public void ConfigureServices(IServiceCollection services)
{
services.AddOcelot(Configuration);
} public void Configure(IApplicationBuilder app)
{
app.UseOcelot().Wait();
}
}

你需要做的就是这么多。

Ocelot中文文档-Getting Started的更多相关文章

  1. Ocelot中文文档-Route

    路由(Routing) Ocelot主要功能是接收即将发来的请求并转发它们至下游服务.与此同时,以另一个http请求的形式(在将来这可能是任何传输的机制) Ocelot将一个请求的路由描述为另一个路由 ...

  2. Ocelot中文文档入门

    入门 Ocelot仅适用于.NET Core,目前是根据netstandard2.0构建的,如果Ocelot适合您,这个文档可能会有用. .NET Core 2.1 安装NuGet包 使用nuget安 ...

  3. Ocelot中文文档-跟踪

    Ocelot使用一个杰出的项目Butterfly 提供了跟踪功能. 为了使用跟踪,请阅读Butterfly的文档. 在Ocelot中如果你想跟踪一个ReRoute,你需要做如下事情: 在Configu ...

  4. Ocelot中文文档-不支持

    Ocelot不支持一下几点... 分块编码 - Ocelot将始终获取body大小并返回Content-Length头. 如果这不适合你的场景,只能表示抱歉! 转发host头 - 您发给Ocelot的 ...

  5. Ocelot中文文档-路由

    Ocelot的主要功能是接管进入的http请求并把它们转发给下游服务.目前是以另一个http请求的形式(将来可能是任何传输机制). Ocelot将路由一个请求到另一个请求描述为ReRoute.为了在O ...

  6. Ocelot中文文档-管理

    Ocelot支持在运行时通过一个认证的Http API修改配置.有两种方式对其验证, 使用Ocelot的内置IdentityServer(仅用于向管理API验证请求)或将管理API验证挂接到您自己的I ...

  7. Ocelot中文文档-Raft(实验功能不能用于生产环境)

    Ocelot最近整合了Rafty,这是我在去年一直研究的Raft的一个实现. 这个项目实验性非常强,所以在我认为它没问题之前,请不要在生产环境中使用Ocelot的这个功能. Raft是一种分布式一致性 ...

  8. Ocelot中文文档-入门

    Ocelot只能用于.NET Core,目前是为netcoreapp2.0构建的,这个文档可能会帮你了解Ocelot是否适合你. .NET Core 2.0 安装NuGet包 使用nuget安装Oce ...

  9. Ocelot中文文档-配置

    这里有一个配置的列子.其中有两个配置块.一个ReRoutes数组和一个GlobalConfiguration.ReRoutes配置块是一些告诉Ocelot如何处理上游请求的对象.Globalconfi ...

  10. Ocelot中文文档-认证

    为了验证ReRoutes并随后使用Ocelot的任何基于声明的功能,如授权或使用令牌中的值修改请求. 用户必须像往常一样在他们的Startup.cs中注册认证服务,但他们给每个注册提供了一个方案(认证 ...

随机推荐

  1. js实现抽奖

    抽奖.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  2. 用scp这个命令来通过ssh传输文件

    小结: 1. upload files 到 ssh 服务器 localhost $ scp localfile root@172.20.34.**:~/remotepath 2. 从 ssh 服务器d ...

  3. C# Thread、ThreadPool、Task、Invoke、BeginInvoke、async、await 汇总

    本文将主要通过"同步调用"."异步调用"."异步回调"三个示例来讲解在用委托执行同一个"加法类"的时候的的区别和利弊. ...

  4. VS工具栏没有出现可用工具的情况

    (1)没有切换到资源视图,打开具体的对话框. (2)如果你在调试状态,即使打开了具体的对话框,VS工具箱还是不会出现可用的控件的.所以不要在调试状态下添加控件.

  5. JVM活学活用——调优工具

    概述 工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相 ...

  6. 宽字符————_T、_TEXT、L、TEXT之间的区别

    _T._TEXT.L.TEXT之间的区别 在分析前先对三者做一个简单的分类 _T._TEXT.TEXT三者都是根据编译器的环境进行ANSI/UNICODE变换的,_T和_TEXT是根据_UNICODE ...

  7. what does GIT PUSH do exactly?

    有效理解 git 的对象模型 https://stackoverflow.com/questions/26005031/what-does-git-push-do-exactly 所谓分支, 就是一个 ...

  8. 《机器学习实战(基于scikit-learn和TensorFlow)》第五章内容学习心得

    本章在讲支持向量机(Support Vector Machine). 支持向量机,一个功能强大的机器学习模型,能够执行线性或非线性数据的分类.回归甚至异常值检测的任务.它适用于中小型数据集的分类. 线 ...

  9. Ubuntu 18.0.4安装Mongodb

    2.21更新: 安装后本地通过robo 3T连接正常,但是其它机器通过IP连接时报错,继续查找,解决方案在这里(传送门),原因是mongodb安装完成后默认监听本地地址,也就是127.0.0.1,这样 ...

  10. hdu 6161--Big binary tree(思维--压缩空间)

    题目链接 Problem Description You are given a complete binary tree with n nodes. The root node is numbere ...