c#使用高集群进行服务注册与发现

  

  

我个人觉得,中间件的部署与使用是非常难记忆的,也就是说,如果两次使用中间件的时间间隔比较长,那基本上等于要重新学习使用。

  

所以,我觉得学习中间件的文章,越详细越好,因为,这对作者而言也是一份珍贵的备忘资料。

  

  

高一个什么,我想大家通过搜索引擎一定可以搜索到,所以,我就不在重复他的官方描述了。

  

这里,我为大家提供一个更加好理解的描述。

  

<强>领事是什么?

  

高本质上是一个套接字通信中间件。

  

它主要实现了两个功能,服务注册与发现与自身的负载均衡的集群。

  

我们可以把他理解为一个没有界面的应用程序,因为没有界面,所以想启动领事就只能使用命令行了;也因为没有界面,一旦使用命令行启动了领事,那么,执行该命令行的用于Cmd . exe程序,就成了领事的宿主了,一旦关闭Cmd窗口,领事就停止运行了。

  

<>强服务注册与发现的本质是什么?

  

其实服务注册与发现的原理很简单。

  

当我们在本机运行高时,他会自动监听8500端口,然后我们通过一个开源类库(这个开源类库可以在nuget上检索到,文章下面会介绍),调用其下不同的方法来向这个领事进程发送TCP消息,来注册服务或者发现服务。

  

高进程在接收到注册消息时,就把注册的服务信息存储到本地磁盘或内存(因为我没有具体去调查驻存储数据是否使用了数据库,但我们都知道数据库的数据也是保存在本地磁盘的,所以,它肯定是把数据存进磁盘或者内存中了)。

  

<强>数据中心

  

驻存储数据的地方,官方为其命名为数据中心,也就是上面说的保存我们注册的服务信息的本地磁盘或者内存。

  

<强>高提供负载均衡的集群

  

领事的集群也很好理解,在我们成功启动领事以后,它除了监听8500端口以外,它还监听了一个8031端口。

  

这8031个端口就是用于高集群相互通信的。

  

我们都知道集群是要两台以上的电脑的,所以,我们就必须找到两台或以上的电脑安装领事中间件。

  

然后,使用领事的命令行,将两台电脑连接到一起,这样集群就形成了。

  

在集群内每台电脑上安装的领事中间件,我们统称为服务器代理(代理);当集群启动后,会在多个代理服务器之间选举出一个领袖。

  

选举领导人自然就是服务器代理之间的通信了,也就是通过上面提到8031的端口通信的。

  

选举了领袖,服务器代理就可以将自身的负载信息发送给领导了,这样客户端调用领事检索服务数据时,就可以去性能最优的那台机器上获取信息了。(注:这个就是举例说明,并非高的负载均衡的真实处理模式)

  

  

首先,去官网下载,领事官网下载地址https://www.consul.io/downloads.html

  

拉到网站的最下方,选择Window64-bit的领事下载,如下图:

  

 C #使用高集群进行服务注册与发现

  

下载完成后,我们得到一个压缩包consul_1.6.2_windows_amd64.zip;解压缩后,得到consul.exe文件,如下图:

  

 C #使用高集群进行服务注册与发现

  

因为我们要使用命令行来运行高,所以,我们将consul.exe所在的目录添加进环境变量,这样,当我们在CMD窗口中执行高的相关命令时,系统就会自动将这个些命令发送给consul.exe文件执行了。

  

配置环境变量如下图所示:

  

 C #使用高集群进行服务注册与发现

  

配置完环境变量,我们打开一个cmd的命令行窗口,然后输入领事来确认我们的环境变量是否配置成功,如下图:

  

 C #使用高集群进行服务注册与发现

  

看到图中的信息,就代表我们的领事的环境变量配置成功了,已经可以运行了。

  

接下来,我们在这个cmd窗体中输入领事的命令来启动高服务器代理,命令如下:

  

命令解释如下:

        领事代理-服务器ui -bootstrap-expect=1 -data-dir=/tmp/领事- node=consul-1客户=0.0.0.0绑定=192.168.1.111数据中心=dc1   之前      

c#使用高集群进行服务注册与发现