c#微服务Ocelot⽹关服务发现
前⾯提到微服务⽅案,介绍了该东西,推荐⼀篇介绍博⽂
我要说的是Ocelot服务发现⽅案,其⾃⾝已经集成了Consul,Eureka服务发现,其项⽬名称分别是
Ocelot.Provider.Consul,Ocelot.Provider.Eureka。
配置使⽤⽅法:
GlobalConfiguration中需要以下内容。提供程序是必需的,如果您未指定主机和端⼝,则将使⽤Consul默认值。"ServiceDiscoveryProvider": {
"Host": "localhost",
"Port": 8500,
"Type": "Consul"
}
由于⼀些原因,我是不建议使⽤的,但是不得不说这2个是成熟稳定的,对于⼀般的中⼩项⽬推荐使⽤etcd.Ocelot并没有直接集成它,但是完全可以按照Ocelot.Provider.Consul集成,Git上⾯已经存在了
对应的
GlobalConfiguration中需要以下内容。提供程序是必需的,如果您未指定主机和端⼝,则将使⽤默认值。"ServiceDiscoveryProvider": {
"Host": "localhost",
"Port": 8500,
"Type": "Etcd"
}
类型这⾥还可以设置PollEtcd,这样内部会定时刷新服务列表,因为Ocelot注册单例,每次获取只是获取的服务列表
由于etcd是底层建设,所以我扩展了项⽬,提供了etcd对服务注册和发现。
项⽬采⽤了Consul的⽅法,当前服务发现是基于单节点的,配置的是IP和端⼝。
所以我再此扩展了,⾥⾯重写了服务发现提供类,并且扩展IOcelotBuilder。可以通过单节点启动后,内部定时间隔刷新集的地址,⼀旦该单节点失效,内部将根据获取的集节点,⽴即重新建⽴⼀个连接。
微服务网关和注册中心区别etcd服务注册发现项⽬:
项⽬扩展:
上⾯项⽬都已经上传nuget
完美哈哈哈
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论