应无所住,而生其心
排名
1
文章
873
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Windows下安装Consul与简单介绍

10018人阅读 2020/5/25 20:39 总访问:5419240 评论:0 收藏:0 手机
分类: 微服务

Consul 是一个用来实现分布式系统服务发现与配置的开源工具。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,也可以作为配置中心。

为什么需要服务注册与服务发现:
我的理解:就是服务于服务之间不直接依赖,而是通过注册中心来管理。就类似依赖注入一样,类与类之间不支持依赖,而是通过依赖注入容器来管理。
和依赖注入类似,依赖于接口依赖于抽象不依赖于具体实现,用服务治理和就依赖于服务治理了不依赖于具体的服务了,相当于多加了一层

因为多加了一层,服务与服务之间的耦合度降低了,通过服务发现的方式去调用服务,可以支持动态扩展,比如动态的增加服务与减少服务

下载:

https://download.tnblog.net/resource/index/836598dc6043401f9e8ab6634b303313

这里吐槽下这个上传大小的限制…emmm项目要配置,iis要配置,nginx要配置,跨过一个坑又要一个坑


解压:

找一个位置解压,然后在你解压的位置输入启动命令(开发者模式):

  1. consul agent -dev

如图:

输入命令正确启动即可不需要安装,启动成功后输入地址http://localhost:8500/
就可以成功的访问到Consul的界面了


nodes里边存放的是集群节点

Consul启动模式:

开发者模式
通过命令:consul agent -dev

简单启动,就可以通过http://localhost:8500/ 来访问这个consul
但是,这种模式一般是自己开发的时候用的,因为它不带记忆功能,不能持久化数据,关闭后数据就没有了,也不能与其他consul互通。

外网访问:
consul agent -dev 只能本地可以访问
要想通过ip可以访问,使用下面的使用即可
consul agent -dev -client 0.0.0.0 -ui 指定ip可以访问

Client模式
这种模式下,所有注册到当前节点的服务会被转发到Server,本身是不持久化这些信息。
Client模式不能脱离Server单独运行,因此无法实现单机模式

Server模式
Consul 的 Server 模式,表明这个 Consul 是个 Server ,这种模式下,功能和 Client
都一样,唯一不同的是,它会把所有的信息持久化的本地,这样遇到故障,信息是可以被保留的。

运行命令:

  1. consul agent -server -bootstrap-expect 1 -data-dir /soft/data/consul -node=consulServer1 -bind=10.267.83.220 -ui -rejoin -config-dir=/soft/config/consul/ -client 0.0.0.0

启动后可以通过http://10.267.83.220:8500 来访问这个consul的ui界面。

  • server : 定义agent运行在server模式
  • bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
  • bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
  • node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
  • ui: 开启consul的界面;
  • rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
  • config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载
  • client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

当然简单一点就直接consul agent -server就行

关于Consul Key/Value数据持久化的问题:

如果不用Consul本身的数据持久化,可以考虑自己存储这些持久化数据,然后可以在初始化的时候,把配置信息比如存储在数据库中的配置信息写到consul,然后在获取。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价