设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 轻轻的闭上眼睛,慢慢的酝酿心情,将白天所有烦恼不快撒向天空,随着流星的坠落一起沉淀,愿今夜有个好梦,晚安!

轻轻的闭上眼睛,慢慢的酝酿心情,将白天所有烦恼不快撒向天空,随着流星的坠落一起沉淀,愿今夜有个好梦,晚安!

查看: 6289|回复: 9

.Net Core微服务网关Ocelot基础介绍及集成

[复制链接]

  离线 

TA的专栏

  • 打卡等级:偶尔看看
  • 打卡总天数:13
  • 打卡月天数:0
  • 打卡总奖励:142
  • 最近打卡:2025-04-08 12:44:45
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
370
主题
346
精华
0
金钱
1230
积分
748
注册时间
2023-2-10
最后登录
2025-5-31

发表于 2023-3-4 17:29:53 | 显示全部楼层 |阅读模式

网关是什么

简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过http也可以很好的向客户端提供服务。但是对于业务复杂、规模庞大的项目来说,使用网关有很多无法舍弃的好处,比如可以进行统一的请求聚合来节省流量、降低耦合度,可以赋予项目熔断限流的能力提高可用性等等。

ocelot是什么

ocelot是.net core实现的开源的api网关项目,开源地址:https://github.com/ThreeMammals/Ocelot

ocelot除了十分契合.net开发者以外,功能强大,包含:路由、认证、请求聚合、限流熔断、服务发现、鉴权,还有内置负载均衡器、Consul集成等等。

当然了,api网关不止这一款,市面上还有kong之类的,随自己喜好就好。

ocelot集成

首先明确一点,网关应该作为独立进程存在。那么我们先新建一个.net core3.1项目,然后添加nuget包:

183042jd2yqexjcl922cdr.jpeg

关于版本,选择当前所能支持的最新版即可。

添加好nuget包以后,需要修改StartUp:

  1. // This method gets called by the runtime. Use this method to add services to the container.
  2. public void ConfigureServices(IServiceCollection services)
  3. {
  4. services.AddOcelot();
  5. //services.AddControllers();
  6. }
  7. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  8. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  9. {
  10. app.UseOcelot().Wait();
  11. //if (env.IsDevelopment())
  12. //{
  13. // app.UseDeveloperExceptionPage();
  14. //}
  15. //app.UseHttpsRedirection();
  16. //app.UseRouting();
  17. //app.UseAuthorization();
  18. //app.UseEndpoints(endpoints =>
  19. //{
  20. // endpoints.MapControllers();
  21. //});
  22. }
复制代码

这里不要惊讶,因为走了网关就不会再走默认的管道了。UseOcelot().Wait() 表示设置ocelot所有的中间件,而ocelot也提供了很多集成中间件的库,就像这些:

183043x9rr9za1er8r90he.jpeg

现在,想要让ocelot成功运行,还需要新增配置文件,并在Program新增配置文件的引用:

  1. public static IHostBuilder CreateHostBuilder(string[] args) =>
  2. Host.CreateDefaultBuilder(args)
  3. .ConfigureAppConfiguration(config =>
  4. {
  5. config.AddJsonFile("ocelotConfig.json", optional: false, reloadOnChange: true);
  6. })
  7. .ConfigureWebHostDefaults(webBuilder =>
  8. {
  9. webBuilder.UseStartup<startup>();
  10. });
复制代码

配置文件:

  1. {
  2. "Routes": [
  3. {
  4. "DownstreamPathTemplate": "/{url}", //服务地址--url变量
  5. "DownstreamScheme": "http",
  6. "DownstreamHostAndPorts": [
  7. {
  8. "Host": "123.123.123.123",
  9. "Port": 5050 //服务端口
  10. }
  11. ],
  12. "UpstreamPathTemplate": "/MJ/{url}", //网关地址--url变量
  13. "UpstreamHttpMethod": [ "Get", "Post" ]
  14. }
  15. ]
  16. }
复制代码

这是一份简单的转发配置,Downstream和Upstream开头的配置项就是下游、上游相关项。这里要说一句,在微服务架构中,客户端——服务端通常理解为上游——下游,这里自行替换一下。

上面的配置文件做了一件事,接收上游请求时,把请求路径中含有【/MJ/所有】的请求转发到IP【http://123.123.123.123:5050/所有】并回传结果,支持http的get、post方法,其实这就是最基本的路由。

来测试一下,启动项目并写好请求路径:

183043nrsv1ia5aswsfdia.jpeg

可以看到,ocelot成功把本地请求按照路由规则转发给远程服务器,并回发了结果。一个网关最基本的功能有了。

截图中所请求的远程服务,是我前几篇文章基于consul搭建起来的项目,有兴趣可以去看看。

关于ocelot更高级的应用,比如熔断限流、身份认证等,都是通过配置来完成的,我会整理后发出来,同时也建议仔细阅读官方文档,地址:https://ocelot.readthedocs.io/en/latest/

到此这篇关于.Net Core微服务网关Ocelot基础介绍及集成的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持晓枫资讯。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
-2
主题
3
精华
0
金钱
39
积分
11
注册时间
2022-12-24
最后登录
2023-6-12

发表于 2023-5-10 20:31:55 | 显示全部楼层
感谢分享~~~~学习学习~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:18
  • 打卡月天数:0
  • 打卡总奖励:242
  • 最近打卡:2025-05-26 05:01:50
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
273
积分
42
注册时间
2023-1-2
最后登录
2025-5-26

发表于 2023-5-16 07:04:03 | 显示全部楼层
感谢大大分享~~~~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:22
  • 打卡月天数:0
  • 打卡总奖励:262
  • 最近打卡:2025-03-17 12:55:42
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
306
积分
48
注册时间
2023-1-16
最后登录
2025-3-17

发表于 2023-5-22 10:07:05 | 显示全部楼层
谢谢分享~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:106
  • 打卡月天数:1
  • 打卡总奖励:2078
  • 最近打卡:2025-07-04 12:47:37
等级头衔

等級:晓枫资讯-列兵

在线时间
4 小时

积分成就
威望
0
贡献
-1
主题
12
精华
0
金钱
2184
积分
87
注册时间
2023-1-21
最后登录
2025-7-4

发表于 2023-5-29 03:20:36 | 显示全部楼层
感谢楼主分享~~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:常驻代表
  • 打卡总天数:31
  • 打卡月天数:0
  • 打卡总奖励:407
  • 最近打卡:2025-04-09 20:57:30
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
455
积分
64
注册时间
2023-1-13
最后登录
2025-4-9

发表于 2023-5-29 22:37:54 | 显示全部楼层
看看,学习学习~~~~
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:27
  • 打卡月天数:0
  • 打卡总奖励:354
  • 最近打卡:2025-03-14 12:23:19
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
407
积分
62
注册时间
2023-2-28
最后登录
2025-3-14

发表于 2023-8-16 11:01:52 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
19
积分
18
注册时间
2022-12-27
最后登录
2022-12-27

发表于 2023-9-17 15:58:53 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:12
  • 最近打卡:2023-12-29 13:41:22
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
25
积分
6
注册时间
2023-7-27
最后登录
2023-12-29

发表于 2023-9-27 07:31:54 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-27
最后登录
2022-12-27

发表于 2024-1-11 03:37:46 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼
5楼
6楼
7楼
8楼
9楼
10楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表