服务器其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 服务器其它 > 微服务注册配置Consul

微服务之注册中心和配置中心Consul详解

作者:stark张宇

这篇文章主要为大家介绍了微服务 注册中心和配置中心Consul选型及基本使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

概述

上篇说到构建良好的架构,依托于基础设施建设(自动化测试、自动化部署、服务监控,服务发现、配置中心等等),决定成败的往往是基础设施建设,所以从搭建一个注册中心和配置中心开始我们新一阶段的启程。

注册中心

注册中心选型

你有没有思考过这样一个问题,为什么会有这么多的注册中心(etcd/ZooKeeper/Consul),选用那个最适合自己,是不是在选用的时候会眼花缭乱?

我在开始做的时候,自己也有很多困惑,将近3年的时候里我都在不停的学习,但是还是有很多不同的框架和产品,后来我明白了其中的原因,他们就像生活中的可乐、果汁、和牛奶一样,你在使用的时候选取你的编程语言(Java、Go、PHP),程序易接入的就好了。

产生注册中心五花八门的原因是因为语言很多,都想打造最适合自己的体系生态,我选择Consul为大家讲解,因为它安装和接入都比较方便。

不用被这些假象所困扰,多学习网络和系统的底层原理,万变不离其宗,技术人应该是给出解决方案。

CAP原理

FeatureConsulZooKeeperetcd
服务健康检查服务状态、内存、硬盘长链接、Keepalive链接心跳
多数据中心支持
K/V存储服务支持支持支持
一致性RaftPaxosRaft
CAP定理CPCPCP
使用接口(多语言能力)Http/Dns客户端Http/Grpc
安全acl/httpsaclHttps支持

Consul介绍

使用PHP、和Go编写,使用Consul作为注册中心和配置中心比较方便,所以我选用的是Consul。

Consul 内部端口说明:

Consul Raft算法

Consul 集群的特点:

Consul 集群的角色:

算法的详情可以点击官网视频查看

Consul 基本使用

注册服务

1.注册服务是Consul最基础的服务,点击查看官网Api

PUT 192.168.88.144:8500/v1/agent/service/register
{
    "Name":"audio",
    "Id":"audio",
    "Tags":[
        "v2",
        "primary"
    ],
    "Address":"192.168.88.144",
    "Port":8500,
    "Check":{
        "HTTP":"http://192.168.88.144:8500",
        "Interval":"10s"
    }
}
{
  "id": "web",
  "name": "web",
  "port": 80,
  "check": {
    "name": "ping check",
    "args": ["ping", "-c1", "test.stark.com"],
    "interval": "30s",
    "status": "passing"
  }
}

2.发现服务

GET http://192.168.88.144:8500/v1/health/service/audio
[
    {
        "Node": {
            "ID": "38779dca-bffd-e399-6597-266aff68132c",
            "Node": "server01-virtual-machine",
            "Address": "127.0.0.1",
            "Datacenter": "dc1",
            "TaggedAddresses": {
                "lan": "127.0.0.1",
                "lan_ipv4": "127.0.0.1",
                "wan": "127.0.0.1",
                "wan_ipv4": "127.0.0.1"
            },
            "Meta": {
                "consul-network-segment": ""
            },
            "CreateIndex": 13,
            "ModifyIndex": 17
        },
        "Service": {
            "ID": "audio",
            "Service": "audio",
            "Tags": [
                "v2",
                "primary"
            ],
            "Address": "192.168.88.144",
            "TaggedAddresses": {
                "lan_ipv4": {
                    "Address": "192.168.88.144",
                    "Port": 8500
                },
                "wan_ipv4": {
                    "Address": "192.168.88.144",
                    "Port": 8500
                }
            },
            "Meta": null,
            "Port": 8500,
            // ...
}
]

Service API Service 相关的 API 都在 /v1/agent/service 下:

关于更多Consul的使用,查询官方文档吧。

以上就是微服务之注册中心和配置中心Consul详解的详细内容,更多关于微服务注册配置Consul的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文