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

Windows下安装Consul与简单介绍

9688人阅读 2020/5/25 20:39 总访问:5255712 评论: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)

评价

Windows平台分布式架构实践 - 负载均衡

原文地址: https://www.cnblogs.com/atree/p/windows_loadbalancer.html 概述  最近.NET的世界开始闹腾了,微软官方终...

.NET Windows服务发布、安装、卸载、监听脚本。服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

Windows下Redis的主从复制

Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强...

Redis基础安装操作-Windows

一、下载 redis官方没有提供windows版本,需要从微软的git下载releases版二、安装,启动1.解压出来 启动服务 可能会双击会...

Windows 自带的netsh进行端口映射

使用netsh 把本地任意ip的25566端口 映射到192.168.81.234的25565端口netshinterfaceportproxyaddv4tov4listenaddress=0.0....

Windows使用wireshark抓包小心得

wireshrak是个网络抓包工具,常用。但是在数据较大的网络环境中直接使用软件抓包会导致wireshark卡死。为什么呢 ?网卡瞬间...

Windows下安装RabbitMQ

跳过舞,祝大家新年快乐哇!1、下载安装erlang因为rabbitmq是基于erlang实现的所以需要先安装erlang打开网址https://www.er...

NET CORE配置EF连接字符串。Windows验证的连接字符串配置

在appsettings.json中配置好连接字符串{"ConnectionStrings":{ "BloggingDatabase":"Server=(lo...

系统重装(一):安装制作Windows原装系统U盘

Windows是美国微软公司研发的跨平台及设备应用的操作系统.xinXP已经停止更新,微软也将在2020年1月14日正式结束对Windows 7...

通过Windows服务进行FTP与服务器之间文件的传输

这几天做了一个关于FTP与服务器之间文件互相传输的Windows服务,本地开发的时候非常顺利,很快就开发完成了,可是将服务部...

系统重装(二):安装Windows系统

嗨,大家好!上一篇我们介绍了如何制作windows系统U盘,这一篇就来介绍一下如何安装。上一篇链接请点击:http://www.tnblog...

Windows系统下如何查看及升级powershell到3.0版本

最近在学习.net core,用到了SQLServer.Data.EntityFrameworkCore框架,在根据数据库表生成对应实体类时提示必须先升级本机...

Windows服务器 粘贴失败无法复制

windows服务器,复制粘贴失败,无法复制的问题重启rdpclip.exe进程即可

NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing

.net core grpc报错:NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing ALPN suppor...

启动grpc报错:HTTP/2 over TLS is not supported on Windows 7

.net core grpc报错:NotSupportedException: HTTP/2 over TLS is not supported on Windows 7 due to missing ALPN suppor...

c Windows sdk科大讯飞语音合成

只是记录一下思路需要把c++的dll转换成c#用的dll可以用这种方式导入,需要把下载的sdk,放到bll