SpringCloud微服务(一)——Consul服务注册中心

Consul服务注册中心

SpringCloud

中文官网:https://www.springcloud.cc/spring-cloud-consul.html

Consul是一套开源的分布式服务发现和配置管理系统,Go语言开发。

Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。

与其它分布式服务注册与发现的方案相比,Consul 的方案更“一站式”——内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具。Consul 本身使用 go 语言开发,具有跨平台、运行高效等特点,也非常方便和 Docker 配合使用。

Eureka、Zookeeper、Consul三个注册中心的异同点

组件名 语言 健康检查 对外暴露接口 CAP Spring Cloud 集成
Eureka Java 可配支持 HTTP AP 集成
Consul Go 支持 HTTP/DFS CP 集成
Zookeeper java 支持 客户端 CP 集成

安装Consul

可以docker安装,win也可。consul --version查看版本。

win开启:

# 先进到consul目录 ,cmd
# 开发模式启动
consul agent -dev

通过localhost:8500访问控制界面

SpringCloud微服务(一)——Consul服务注册中心_第1张图片

服务提供者


<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-consul-discoveryartifactId>
dependency>
server:
  # consul服务端口
  port: 8006

spring:
  application:
    name: cloud-provider-payment
  cloud:
    consul:
      # consul注册中心地址
      host: localhost
      port: 8500
      discovery:
        hostname: 127.0.0.1
        # 服务名字
        service-name: ${spring.application.name}

启动类添加**@EnableDiscoveryClient**,该注解用于向使用consul或者zookeeper作为注册中心时注册服务。控制界面多了服务名称。

服务消费者

依赖配置一样,消费者使用RestTemplate调用服务提供者接口,@LoadBalanced实现集群负载均衡,轮询。

/**
 * @author zzyy
 * @date 2020-02-18 17:27
 **/
@Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}
/**
 * @author zzyy
 * @create 2020-02-18 17:23
 **/
@RestController
@Slf4j
public class OrderZkController {

    public static final String INVOKE_URL = "http://cloud-provider-payment"; //提供者服务名字,前提是消费者和提供者都要注册到注册中心

    @Resource
    private RestTemplate restTemplate;


    /**
     * http://localhost/consumer/payment/consul
     *
     * @return
     */
    @GetMapping("/consumer/payment/consul")
    public String paymentInfo() {
        return restTemplate.getForObject(INVOKE_URL + "/payment/consul", String.class);
    }
}

查看控制页面。

集群搭建

注册中心集群:加多个地址即可,查看eureka、zookeeper和consul官网。

服务集群保证服务名一致即可。

你可能感兴趣的:(java,spring,cloud,微服务,java-consul)