springcloud consul +consul 实现服务注册及发现

要想利用consul提供的服务实现服务的注册与发现,我们需要建立consul cluster
consul方案中,每个提供服务的节点上都要部署和运行consulagent,所有运行consul agent节点的集合构成consul cluster


consul agent
有两种运行模式:serverclient。这里的serverclient只是consul集群层面的区分,与搭建在cluster之上的应用服务无关。
server模式运行的consul agent节点用于维护consul集群的状态,
官方建议每个consul cluster至少有3个或以上的运行在server modeagentclient节点不限。

我们这里以安装三个节点为例,环境配置如下

Centos 下:

两台主机:s1192.168.204.4   s2:192.168.204.5 

准备工作

分别下载consulwebui包和consul包。

下载:

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_web_ui.zip

wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip

下载到目录usr\local下。在usr\local\bin下创建文件夹webui,

在usr\local\bin下进行操作

解压:unzip consul_0.7.5_web_ui.zip 并把解压出来的文件移到webui中。

1. mv index.html webui    2. mvstatic webui

解压: unzipconsul_0.7.5_linux_amd64.zip

firewall-cmd    --query-port=8300/tcp 查询端口是开启firewall-cmd  --add-port=8300/tcp    打开端口

firewall-cmd   --add-port=8500/tcp

firewall-cmd   --add-port=8301/tcp

 

启动consul

1.      S1上:

co nsulagent -server -bootstrap-expect 2 -data-dir data -node=n1 -bind=192.168.204.4-ui-dir=webui  -dc=dc1

2.     S2上:

consul agent -server -bootstrap-expect 2 -data-dir data -node=n2 -bind=192.168.204.5-ui-dir=webui  ./dist -dc=dc1

3.     S2上:

consul join 192.168.204.5

 

4.     访问端口

http://localhost:8500

如果遇到不能访问的情况,第一检测8500端口是否开了。要是还是不行的话,就重新对webui重新解压,重新开启服务。

 

Windows下:

一台主机,一台客户机

S1:10.114.73.24 S2:10.114.72.25

1.     下载consul包

https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_windows_amd64.zip

2.      在s1上解压到一个目录 如:E:\SpringCloud\consul,s2上解压到:c:\consul

3.      在s1上的E:\SpringCloud\consul目录下建立文件夹data ,在s2上的c:\consul下建立文件夹data

4.      在s1上执行consul agent -server -bootstrap -bind=10.114.73.24 -client=10.114.73.24-data-dir=data -ui -node=10.114.73.24

5.      s2上执行consul agent -bind=0.0.0.0 -client=10.114.72.25 -data-dir=data -node=10.114.72.25 -join=10.114.73.24

6.      s1打开浏览器访问:http://localhost:8500

 

 

Springcloud consul consul集成

1.准备:主机:10.114.73.24agent方式启动 consul

2.eclipse中新建springboot工程,pom.xml中引入:

   <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-actuator</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-consul-discovery</artifactId>

        </dependency>

 

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

3.主文件:

package com.example;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

 

@SpringBootApplication

@EnableDiscoveryClient 

@RestController

public class ConsulServerAApplication {

    @RequestMapping("/home"

    public Object home() { 

        System.out.println("1111111111111"); 

        return"OK11"

    } 

    public static void main(String[] args) {

       SpringApplication.run(ConsulServerAApplication.class,args);

    }

}

4.新建application.yml文件

内容为:

spring:

  cloud:

    consul:

      host: 10.114.72.25

      port: 8500

      discovery:

        enabled: true

        instance-id: Users

        service-name: getUsers

        hostname: 10.114.73.24

  application:

    name: zwc-service1

5.    最后工程文件类似于:

 

6.      启动 alt+shift+x,b

7.      访问http://10.114.73.24:8500/v1/catalog/service/getUsers  http://10.114.73.24:8080/home

没有更多推荐了,返回首页