购物,谈谈百度和谷歌seo优化的区别,学网站建设需要多久,百度网盘搜索神器介绍微服务中有关键的几项技术#xff0c;其中网关和服务服务发现#xff0c;服务注册相辅相成。首先解释几个本次教程中需要的术语网关 Gateway#xff08;API GW / API 网关#xff09;#xff0c;顾名思义#xff0c;是企业 IT 在系统边界上提供给外部访问内部接口服务… 介绍 微服务中有关键的几项技术其中网关和服务服务发现服务注册相辅相成。首先解释几个本次教程中需要的术语网关 GatewayAPI GW / API 网关顾名思义是企业 IT 在系统边界上提供给外部访问内部接口服务的统一入口简化了外部由于多服务协同完成任务时的繁琐配置。网关组件有Kongocelot,服务发现通过网关访问内部各个微服务网关要找到所需服务的过程称为服务发现服务注册既然有服务发现前提是要把所需服务提前“录入”这个录入的过程称为服务注册。服务注册可配置文件人肉方式不推荐也可用服务注册组件如Consul或者Eureka等等推荐搭建Consul集群(Windows)官网下载Consul程序https://www.consul.io/downloads.html下载下来就是一个可执行文件Consul.exeConsul有两种代理模式一种server,一种client,官方建议Server端达到3台以上才可高可用但不要太多太多会给集群间数据同步造成压力client数量不限。多个server端之间会选择出一个leader,当一个server的leader宕机则会从其他server端”投票“选择新的leader实践这里server我们用2台实验192.168.74.55192.168.74.541台Client192.168.74.161consul启动有两种方式一种是命令行一种是配置文件的方式。命令行方式启动一个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关键参数说明-serverserver模式启动-ui 开启ui界面consul.exe内部带了GUI图形界面操作 -bootstrap-expect 2server端到2个时集群生效-data-dirconsul产生的文件路径consul自己会产生一下数据存储的位置-node此节点名称-bind集群内部通信地址默认0.0.0.0-client此节点绑定的通讯地址以上只是关键参数以下是完整参数说明 但是命令启动很繁琐所以推荐下面的配置文件的方式启动在consul同文件夹下建立一个server.json的配置文件 为了快速启动再建立一个bat批处理文件runconsul.batconsul 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 -join192.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 --urlshttp://0.0.0.0:2001dotnet WebA.dll --urlshttp://0.0.0.0:2002到这里相当于2001和2002程序简单集群了一下可以发现日志中有 http://192.168.74.161:2002/HealthCheck调用信息这其实是consul进行健康检查进行的调用。启动多个程序后打开浏览器打开Consuld界面会发现注册了两个服务 这里ocelot网关和consul的服务注册和发现就算初步集成。如果生成环境是windows的情况将consul做成windwos服务即可sc create ConsulServer binPathF:\XXX\consul.exe agent -config-dir XXX.json生产环境是linux则借助systemd做成守护进程即可 目前集群搭建成功但是连接的话如果指定某个端点的ip进行连接端点宕机就会导致网关一样无法连接consul进行服务发现。所以还需进行配置暴露一个端点让客户端连接配置详情https://www.consul.io/docs/connect/configuration.html不过也可以做成虚拟ip进行多台consul的负载。客户端连接虚拟ip即可项目地址https://github.com/liuyl1992/Ocelot.GatewayToConsul原文地址:https://www.cnblogs.com/xiaoliangge/p/10221950.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com