Ocelot学习笔记
最近因工作需要,开始学习Ocelot。首先简单介绍一下,Ocelot是一个基于.net core的开源webapi 服务网关项目,目前已经支持了IdentityServer认证。根据 作者介绍,Ocelot本质上是一堆中间件的集合,当HttpRequest请求到达后由一堆中间件进行处理,处理完毕,请求根据配置转发给下游服务。然后接受下游服务的返回信息在转发给客户端,详细信息请参考作者给出的文档。
GitHub地址:https://github.com/TomPallister/Ocelot
先简单介绍下,如何搭建一个Ocelot项目。
首先,新建一个基于.net core的webapi项目, core版本要高于或等于1.1,因为目前Ocelot是基于.net core1.1
然后可以通过nuget安装Ocelot
Install-Package Ocelot
至此,项目搭建完毕。下面,在项目中添加 configuration.json 配置文件。Ocelot主要功能都是通过配置项来实现的。首先,我们来实现最简单的服务转发功能。配置文件中有两个配置项,一个是ReRoutes主要的服务路由配置,都配置在此配置项中。一个GlobalConfiguration,全局配置项,一些可应用与全局的配置可放在此配置项中。
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/values",
"DownstreamScheme": "http",
"DownstreamPort": ,
"DownstreamHost": "localhost",
"UpstreamPathTemplate": "/api/values",
"UpstreamHttpMethod": [ "Get" ],
"QoSOptions": {
"ExceptionsAllowedBeforeBreaking": ,
"DurationOfBreak": ,
"TimeoutValue":
}
},
{
"DownstreamPathTemplate": "/api/product",
"DownstreamScheme": "http",
"DownstreamPort": ,
"DownstreamHost": "localhost",
"UpstreamPathTemplate": "/api/product",
"UpstreamHttpMethod": [ "Get" ],
"QoSOptions": {
"ExceptionsAllowedBeforeBreaking": ,
"DurationOfBreak": ,
"TimeoutValue":
}
}
],
"GlobalConfiguration": {
}
配置项完毕后,现在需要修改Startup中的代码
将刚新建的json文件,添加到系统配置项中。然后简单修改一下ConfigureServices和Configure,主要就是将Ocelot作为中间件注册。当然你可以按照自己的需求,做更多的扩展。
Program.cs 类文件代码
至此,全部工作已经完成。然后我们新建两个api服务,对应configuration.json文件中的下游服务。
然后依次启动 apinoe,apitwo,和ServcesGateWay,即可看到结果
最新文章
- Java-使用二叉树实现快速排序-遁地龙卷风
- Atom编辑器添加eclipse快捷键
- JPush集成
- 编码Q&;A
- HTML页面处理以及资源文件的加载
- iOS获取汉字的拼音
- debian 颜色设置
- DOM操作--表格点击行变色
- HDU 5890 Eighty seven
- win7下sublime text3 安装Emmet的pyv8
- Java温故而知新-冒泡法排序
- layer子层给父层页面元素赋值,以达到向父层页面传值的效果
- Pycharm 常用快捷键
- MFC打印
- Python爬虫【实战篇】百度翻译
- 基于前后端分离的身份认证方式——JWT
- 关于并查集的路径压缩(Path Compress)优化
- thinkphp 多图片上传 单图片上传
- OpenLdap 对接内部系统(Gitlab+Wiki+Jumpserver+Openvpn)配置
- javascript实现一行文字随不同设备自适应改变字体大小至字数完全展示