TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
118篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
.net core3.1使用API网关Ocelot五:配合consul实现动态路由
10090
人阅读
2020/9/1 17:25
总访问:
3838677
评论:
0
收藏:
0
手机
分类:
微服务
真正的项目中我们的服务会很多,如果一一地配置到配置文件,将会是一个巨大的工程,这个时候我们就可以让Ocelot与我们的服务发现组件consul配合了,这样也可以比较方便的实现动态路由。 实现效果:如果需要新增服务的时候,不用修改静态配置文件。ocelot自动获取consul发现的所有服务,实现集群功能。 关于consul的用法,我前面写了几篇 https://www.tnblog.net/aojiancc2/article/details/3848 下面就说一下怎么把Ocelot配合consul使用 <br/> tn3#下载与添加consul依赖 下载consul ``` install-package Ocelot.Provider.Consul -version 16.0.1 ``` 在ConfigureServices中添加consul依赖 ![](https://img.tnblog.net/arcimg/aojiancc2/e8599ae20fcd4c2ea96b46140de035b0.png) <br/> tn3#在Ocelot全局配置中添加关于consul的配置 ``` "ServiceDiscoveryProvider": { "Host": "localhost", "Port": 8500, "Type": "Consul" } ``` 效果如下 ![](https://img.tnblog.net/arcimg/aojiancc2/b3d8d3db9c7b4757888f46d051935939.png) 这样就可以让Ocelot与consul结合起来了是不是很简单 <br> #####当然前提是你先要把consul正常的跑起来 ![](https://img.tnblog.net/arcimg/aojiancc2/63414c4a643e4927ae5df1eea1628e22.png) 比如我这里就把consul跑起来并且注入了一个服务进去 consul怎么注入服务可以参考:https://www.tnblog.net/aojiancc2/article/details/3884 #####然后我们其实就可以通过api网关去访问,服务发现中注入的接口了 ![](https://img.tnblog.net/arcimg/aojiancc2/984298724d7643ca9e7cf9780f08af4d.png) 可以看到服务是被成功访问的 ![](https://img.tnblog.net/arcimg/aojiancc2/84a54272e81240c88ce2ffec623da431.png) 换一个接口访问试试 ![](https://img.tnblog.net/arcimg/aojiancc2/d853b2e4981f4e6ba294b7b7279c5687.png) 也是可以的 ![](https://img.tnblog.net/arcimg/aojiancc2/4ccfe0a2035146c19deacdd8ff0110fd.png) tn3#好我说一下Ocelot结合Consul的访问规则 大家都知道,其实服务注入,服务发现就是为了降低服务之间的耦合度,可以支持动态扩容,也就是可以通过服务名拿到服务项目的具体ip与端口,这块就是叫服务发现嘛,动态扩展就是服务注入,其实也是一个整体感觉,要分开说的话可以这样理解一下。 #####所以我们访问的规则其实是: api网关地址/服务名/具体的接口地址 也就是这里的axj其实是服务名: ![](https://img.tnblog.net/arcimg/aojiancc2/39253c3a9d564859a9d8bd6bcf2ccea7.png) 对应的就是服务发现的的服务名: ![](https://img.tnblog.net/arcimg/aojiancc2/f47c749ed0624215b19a05cfeecc2cb4.png) tn>之所以这么做其实挺好的,服务名就代表了那一块服务,然后后面接具体的接口,这样就可以很好的把api网关和服务发现结合起来了 <br> #####好了这会就写到这里了,留两个问题 1:api网关和服务发现结合后的单独特殊配置 2: 如果consul中一个服务使用了集群,是否可以直接支持负载均衡
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}