千家信息网

如何从零搭建ocelot网关和consul集群

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关如何从零搭建ocelot网关和consul集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。介绍微服务中有关键的几项技术,
千家信息网最后更新 2026年11月02日如何从零搭建ocelot网关和consul集群

今天就跟大家聊聊有关如何从零搭建ocelot网关和consul集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

介绍

微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成。

首先解释几个需要的术语

网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界上提供给外部访问内部接口服务的统一入口,简化了外部由于多服务协同完成任务时的繁琐配置。网关组件有Kong,ocelot,

服务发现:通过网关访问内部各个微服务,网关要找到所需服务的过程称为服务发现

服务注册:既然有服务发现,前提是要把所需服务提前"录入",这个录入的过程称为服务注册。服务注册可配置文件(人肉方式不推荐),也可用服务注册组件如Consul或者Eureka等等(推荐)

搭建Consul集群(Windows)

官网下载Consul程序,https://www.consul.io/downloads.html

下载下来就是一个可执行文件Consul.exe

Consul有两种代理模式,一种server,一种client,官方建议Server端达到3台以上才可高可用,但不要太多,太多会给集群间数据同步造成压力,client数量不限。

多个server端之间会选择出一个leader,当一个server的leader宕机则会从其他server端"投票"选择新的leader

实践

这里server我们用2台实验

192.168.74.55

192.168.74.54

1台Client

192.168.74.161

consul启动有两种方式一种是命令行,一种是配置文件的方式。

命令行方式启动一个consul的server端

consul agent -server -ui -bootstrap-expect 2 -data-dir opt/consul/data -node ServerMaster -bind 192.168.74.55 -client 192.168.74.55

关键参数说明

-server:server模式启动

-ui :开启ui界面(consul.exe内部带了GUI图形界面操作)

-bootstrap-expect 2:server端到2个时集群生效

-data-dir:consul产生的文件路径(consul自己会产生一下数据存储的位置)

-node:此节点名称

-bind:集群内部通信地址,默认0.0.0.0

-client:此节点绑定的通讯地址

以上只是关键参数,以下是完整参数说明:

但是命令启动很繁琐,所以推荐下面的配置文件的方式启动

在consul同文件夹下建立一个server.json的配置文件

为了快速启动,再建立一个bat批处理文件runconsul.bat

consul agent -config-dir server.jsonpause

双击runconsul.bat启动consul

在192.168.74.54服务器开启一个server端继续以上操作。

命令方式启动

consul agent -server -ui -data-dir opt/consul/data -node Server01 -bind 192.168.74.54 -client 192.168.74.54 -join=192.168.74.55

-join将192.168.74.54加入到192.168.74.55服务器

配置文件方式:

在192.168.74.161服务器开启一个consul的client端

命令方式:

consul agent -ui -data-dir opt/consul/data -node ServerSlave -bind 192.168.74.161 -client 192.168.74.161 -join 192.168.74.55

配置文件方式:

效果

简单Consul集群到这里就搭建成功,只要访问三台服务器任意一个都可数据同步,演示:

netcore集成Consul服务注册

服务注册关键代码

首先新建一个ConsulClient的类库

ConsulRegister.csproj所需组件如下:

再新建一个.netcore的webapi项目WebA,并且引用ConsulRegister项目

在WebA项目中的Startup.cs文件中加入Consul服务

在WebA项目的appsettings.json配置文件中加入以下Consul服务端配置

这里服务注册就算完成

Ocelot网关搭建

接下来继续Ocelot借助于Consul实现服务发现

新建项目Ocelot.Gateway

将以下依赖加入Ocelot.Gateway.csproj中:

新建ocelot.json文件

修改Startup.cs文件如下:

发布WebA后复制两份分别启动

dotnet WebA.dll --urls="http://0.0.0.0:2001"

dotnet WebA.dll --urls="http://0.0.0.0:2002"

到这里相当于2001和2002程序简单集群了一下

可以发现日志中有 http://192.168.74.161:2002/HealthCheck调用信息:

这其实是consul进行健康检查进行的调用。

启动多个程序后,打开浏览器打开Consuld界面会发现注册了两个服务

这里ocelot网关和consul的服务注册和发现就算初步集成。

如果生成环境是windows的情况,将consul做成windwos服务即可

sc create "ConsulServer" binPath="F:\XXX\consul.exe agent -config-dir XXX.json"

生产环境是linux则借助systemd做成守护进程即可

看完上述内容,你们对如何从零搭建ocelot网关和consul集群有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

服务 文件 网关 方式 配置 集群 命令 项目 服务器 关键 内容 参数 数据 界面 程序 组件 推荐 繁琐 地址 多个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 广州百单互联网科技有限公司 互联网的科技 喔噻互联网科技 世界互联网领先科技成果 卫星互联网科技股票 须眉科技是互联网公司吗 北京华百购互联网科技有限公司 江阴互联网智能科技产品进口 用友工业互联网科技发展 为客找房互联网科技公司怎么样 合肥互联网科技公司公章图片 互联网科技实习生岗位 杭州披云加互联网科技有限公司 城市宝互联网科技有限公司 互联网科技年终奖 山东大美朱楼互联网科技有限公司 扫呗互联网科技有限公司 北京天晋互联网科技有限公司 互联网对科技影响 广州万易互联网科技有限公司 奇酷互联网络科技公司 上海致骋互联网科技 国外互联网科技网站 互联网科技公司做什么 太原新华互联网科技学校怎么样 千方科技属于互联网企业吗 西安小鹰速贷互联网科技有限公司 福建互联网展示科技馆设计 10位科技互联网大佬
0