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. Python设计模式运用

    1 面向对象 2 创建型模式 3 结构型模式 4 行为型模式

  2. python基本数据类型之列表和元组

    python基本数据类型之列表与元组 python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且同一个 ...

  3. shell脚本学习-变量

    跟着RUNOOB网站的教程学习的笔记 shell变量 shell变量的命名 定义变量时,变量名不加美元符号($,PHP语言中需要),如: name="runoob" 注意,变量名与 ...

  4. Unity3D中声音播放

    Unity3D 播放声音需要使用 Audio Source 组件,并且需要 Audio Listener 组件配合,不然无法听到声音.Main Camera 会默认有 Audio Lisetener. ...

  5. Struts2学习第三天——保存登陆信息及数据校验

    在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.Se ...

  6. Oracle OMF管理数据文件

    1.什么是OMF? Oracle managed file的缩写,简单的理解,就是oracle自己管理自己的文件,可以是dbf,redolog 等等,具体可以参考官方文档Adiministrator中 ...

  7. MySQL 基础--时间戳类型

    时间戳数据存储 .TimeStamp的取值范围为'1970-01-01 00:00:01' UTC 至'2038-01-19 03:14:07' UTC: .在存储时间戳数据时先将数据转换为UTC时区 ...

  8. Varnish实现Web站点加速

    Varnish 是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang使用3台Varnish代替了原来的12台Squid,性能比以前更好. Varnish 的作者Poul-He ...

  9. 《Nosql精粹》—— 读后总结

  10. C语言中全局结构体指针隐含的错误

    前天在嵌入式系统上,调试一个数组的全局变量时,发现该变量一直会动态变化.深入分析, 才发现该全局结构体没有申请内存,而是用了一个指针.这种情况编译器是检查不出来的,在linux 上运行会挂掉,但是在裸 ...