ocelot简易教程之快速开始(代码片段)

yilezhu yilezhu     2022-12-27     667

关键词:

Ocelot是为.net core量身定做的,目前是基于 netstandard2.0进行构建的。

.NET Core 2.1中如何使用呢?

安装NuGet package

使用nuget安装Ocelot及其依赖项。您需要创建一个netstandard2.0项目并将其Package安装到项目中。然后按照下面的“启动”和“ 配置”节点启动并运行。
安装命令 Install-Package?Ocelot
你可以通过下面的链接查看Ocelot的历史版本https://www.nuget.org/packages/Ocelot/ 目前最新版是10.0.4。最新版最近正在进行重构,更新比较频繁。

配置

以下配置是一个非常基础的Ocelot.json配置,他不会做任何事情,但却可以让ocelot正常运行。


    "ReRoutes": [],
    "GlobalConfiguration": 
        "BaseUrl": "https://api.yilezhu.cn"
    

这个配置里面最重要的是BaseUrl。Ocelot需要知道它正在运行的URL,以便执行Header查找和替换以及某些管理配置。设置此URL时,它应该是客户端将看到Ocelot运行的外部URL,例如,如果您正在运行容器,则Ocelot可能会在URL上运行http://123.12.1.1:6543但在其前面有类似nginx的响应在https://api.yilezhu.cn。在这种情况下,Ocelot基本网址应为https://api.yilezhu.cn

如果由于某种原因你正在使用容器并且希望Ocelot在http://123.12.1.1:6543上响应客户端的请求, 那么你可以这样做但是如果要部署多个Ocelot,你可能希望在命令行中传递它某种脚本。希望您使用的任何调度程序都可以传递IP。

特别需要注意的是,这里的Ocelot.json配置文件需要在VS中右键修改为“始终复制”属性。

Program配置方法

官方文档是按照下面进行配置的。不过个人还是习惯在Sartup.cs文件中进行相关的配置。博主就先贴出官方文档给出的配置方法。
然后在你的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();
    

Startup配置方法

我个人也比较习惯在Startup.cs中进行配置,不习惯在Program.cs中配置。下面是我配置的一种方式,当然你也可以自由发挥。

public void ConfigureServices(IServiceCollection services)
        
             services.AddMvc();

            services.AddOcelot(new ConfigurationBuilder()
                    .AddJsonFile("ocelot.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();

总结

今天只是给大家介绍Ocelot的非常非常简单地使用,可以说零配置,并介绍了官方的使用方法以及我平时的使用方式,只为了快速开始Ocelot,让项目能够跑起来。接下来我们会详细的介绍Ocelot的配置。

ocelot简易教程之集成identityserver认证以及授权(代码片段)

原文:Ocelot简易教程(五)之集成IdentityServer认证以及授权Ocelot简易教程目录Ocelot简易教程(一)之Ocelot是什么Ocelot简易教程(二)之快速开始1Ocelot简易教程(二)之快速开始2Ocelot简易教程(三)之主要特性及路由详解Ocelot简易... 查看详情

ocelot简易教程之配置文件数据库存储插件源码解析(代码片段)

原文:Ocelot简易教程(七)之配置文件数据库存储插件源码解析作者:依乐祝原文地址:https://www.cnblogs.com/yilezhu/p/9852711.html上篇文章给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储到数据库中。并没有对实现原... 查看详情

ocelot简易教程之请求聚合以及服务发现(代码片段)

原文:Ocelot简易教程(四)之请求聚合以及服务发现上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能。希望能对大家有所帮助。作者:依乐祝原文... 查看详情

ocelot简易教程之重写配置文件存储方式并优化响应数据(代码片段)

原文:Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据本来这篇文章在昨天晚上就能发布的,悲剧的是写了两三千字的文章居然没保存,结果我懵逼了。今天重新来写这篇文章。今天我们就一起来探讨下如何重写Ocelo... 查看详情

ocelot简易教程之ocelot是什么

...原文地址:https://www.cnblogs.com/yilezhu/p/9557375.html简单的说Ocelot是一个用.NETCore实现并且开源的API网关技术。可能你又要问了,什么是API网关技术呢?Ocelot又有什么特别呢?我们又该如何集成到我们的asp.netcore程序中呢?下面我会通... 查看详情

javalogback简易教程(代码片段)

本作品采用知识共享署名-非商业性使用4.0国际许可协议进行许可。一、前言本文以一个简单的项目为例,一步步展示logback的同步和异步配置方法,并且配置的日志要求满足阿里巴巴Java开发手册-日志规约,因为对于... 查看详情

koa快速入门教程(代码片段)

...async函数可查阅阮大的ECMAScript6入门这是一篇从零开始的简易教程,话不多 查看详情

jquery拓展简易快速实现触摸效果(代码片段)

1、js代码1//触摸开始事件,改变元素的样式2functiontouchstart(e)3$(this).removeClass("touchend").addClass("touchstart");4if(e.data.cancelBubble)5if(e.cancelBubble)6e.cancelBubble=true;78if(e.stopPropagation())9e.st 查看详情

sparksql教程翻译快速开始(代码片段)

文章目录GettingStartedStartingPoint:SparkSessionCreatingDataFramesUntypedDatasetOperations(akaDataFrameOperations)RunningSQLQueriesProgrammaticallyGlobalTemporaryViewCreatingDatasetsInteroperatingwithRDDs 查看详情

socket编程之多客服端(简易版)(代码片段)

服务端:#!/usr/bin/envpython#-*-coding:utf-8-*-importsocketimportsyssk=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sk.bind((‘127.0.0.1‘,8080))sk.listen(5)whileTrue:#让服务端不停接受客户端print("开始接受请求!")conn,add 查看详情

微服务之:从零搭建ocelot网关和consul集群(代码片段)

原文:微服务之:从零搭建ocelot网关和consul集群介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成。首先解释几个本次教程中需要的术语网关 Gateway(APIGW/API网关),顾名思义,是企业IT在系统... 查看详情

tokio教程之深入异步(代码片段)

深入异步Tokio教程之深入异步https://tokio.rs/tokio/tutorial/async在这一点上,我们已经完成了对异步Rust和Tokio的相当全面的考察。现在我们将深入挖掘Rust的异步运行时模型。在教程的一开始,我们就暗示过,异步Rust采取了... 查看详情

docker简易搭建elasticsearch集群教程(代码片段)

点击关注公众号,实用技术文章及时了解来源:blog.csdn.net/belonghuang157405/article/details/83301937写在前面:为什么要用ElasticSearch?我们的应用经常需要添加检索功能,开源的ElasticSearch是目前全文检索引擎的首选。... 查看详情

golang之orm框架gorm快速开始(代码片段)

Gorm快速入门Gorm是Go语言的ORM框架,其特点有:全特性ORM(几乎包含所有特性)模型关联(一对一,一对多,一对多(反向),多对多,多态关联)钩子(Before/AfterCreate/Save/Update/Delete/Find)预加载事务复合主... 查看详情

实践教程之如何快速使用polardb-x(代码片段)

PolarDB-X为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验PolarDB-X的安装部署和各种内核特性。除了免费的实验,PolarDB-X也提供免费的视频课程,手把手教你玩转PolarDB-X分布式数据库。本期实验... 查看详情

springboot初始教程之数据库连接池(druid)(代码片段)

SpringBoot初始教程之数据库连接池(druid)(六)1.介绍Druid是一个JDBC组件库,包括数据库连接池、SQLParser等组件。DruidDataSource是最好的数据库连接池。SpringBoot支持任何一种数据库链接池的配置,在这里用druid作为例子进行讲解2.... 查看详情

springboot初始教程之数据库连接池(druid)(代码片段)

SpringBoot初始教程之数据库连接池(druid)(六)1.介绍Druid是一个JDBC组件库,包括数据库连接池、SQLParser等组件。DruidDataSource是最好的数据库连接池。SpringBoot支持任何一种数据库链接池的配置,在这里用druid作为例子进行讲解2.... 查看详情

[paddlepaddle][转载][官方教程]pp-human快速开始(代码片段)

目录环境准备模型下载配置文件说明预测部署参数说明方案介绍行人检测行人跟踪跨镜行人跟踪属性识别行为识别环境准备环境要求:PaddleDetection版本>=release/2.4或develop版本PaddlePaddle和PaddleDetection安装#PaddlePaddleCUDA10.1pyth... 查看详情