使用Consul来替换Eureka

Consul简介

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

它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows

Consul 整合SpringCloud 学习网站:https://springcloud.cc/spring-cloud-consul.html

Consul下载地址https://www.consul.io/downloads.html

Consul环境搭建

官方下载地址下载window版,解压得到一个可执行文件。 
设置环境变量,让我们直接在cmd里可直接使用consul使命。在path后面添加consul所在目录例如D:\soft\consul_1.1.0_windows_amd64

启动consul命

consul agent -dev -ui -node=cy

-dev开发服务器模式启动,-node结点名为cy,-ui可以用界面访问,默认能访问。

测试访问地址:http://localhost:8500

Consul客户端

Maven依赖信息

<parent>

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

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

<version>2.0.1.RELEASE</version>

</parent>

<!-- 管理依赖 -->

<dependencyManagement>

<dependencies>

<dependency>

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

<artifactId>spring-cloud-dependencies</artifactId>

<version>Finchley.M7</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

<dependencies>

<!-- SpringBoot整合Web组件 -->

<dependency>

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

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

</dependency>

<!--SpringCloud consul-server -->

<dependency>

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

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

</dependency>

</dependencies>

<!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->

<repositories>

<repository>

<id>spring-milestones</id>

<name>Spring Milestones</name>

<url>https://repo.spring.io/libs-milestone</url>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

</repositories>

客户端配置文件

###eureka 服务端口号

server:

port: 8502

spring:

application:

name: consul-order

####consul注册中心地址

cloud:

consul:

host: localhost

port: 8500

discovery:

hostname: 192.168.18.220

DiscoveryClient用法

discoveryClient接口  可以获取注册中心上的实例信息。

@EnableDiscoveryClient 开启其他注册中心 比如consul、zookeeper

@SpringBootApplication

@EnableDiscoveryClient

publicclass AppMember {

     publicstaticvoid main(String[] args) {

           SpringApplication.run(AppMember.class, args);

     }

}

获取注册中心上信息

@RequestMapping("/getServiceUrl")

public List<String> getServiceUrl() {

List<ServiceInstance> list = discoveryClient.getInstances("zk-member");

List<String> services = new ArrayList<>();

for (ServiceInstance serviceInstance : list) {

if (serviceInstance != null) {

services.add(serviceInstance.getUri().toString());

}

}

return services;

}

@EnableDiscoveryClient 与@EnableEurekaClient区别

1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现; 适合于consul、zookeeper注册中心

2,@EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;

@RestController

public class OrderApiController {

@Autowired

private RestTemplate restTemplate;

@Autowired

private DiscoveryClient discoveryClient;

// 订单服务调用会员服务

@RequestMapping("/getOrder")

public String getOrder() {

// 有两种方式,一种是采用服务别名方式调用,另一种是直接调用 使用别名去注册中心上获取对应的服务调用地址

String serviceUrl = getServiceUrl("consul-member") + "/getMember";

String result = restTemplate.getForObject(serviceUrl, String.class);

System.out.println("订单服务调用会员服务result:" + result);

return result;

}

public String getServiceUrl(String name) {

List<ServiceInstance> list = discoveryClient.getInstances(name);

if (list != null && !list.isEmpty()) {

return list.get(0).getUri().toString();

}

return null;

}

}

转载于:https://www.cnblogs.com/xjatj/p/10289985.html

蚂蚁课堂:Consul搭建相关推荐

  1. 蚂蚁课堂(每特学院)-2期

    蚂蚁课堂2期视频公开-请大家多多支持蚂蚁课堂 密码: tt53 0001-蚂蚁课堂(每特学院)-2期-多线程快速入门 第01节.线程与进程的区别 第02节.为什么要用到多线程 第03节.多线程应用场景 ...

  2. 郭卓惺:互动课堂的搭建实例及相关领域应用

    本文来自腾讯云技术沙龙,本次沙龙主题为在线教育个性化教学技术实践 演讲嘉宾:郭卓惺 | 腾讯视频云终端技术中心 随着在线教育覆盖面的增加,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视 ...

  3. 合影效果java_【蚂蚁课堂】四十三:如何拍酷炫集体照?

    原标题:[蚂蚁课堂]四十三:如何拍酷炫集体照? 作者 | 蚂蚁MaE 编辑 | 萌仔 大家出去玩或者聚会的时候会经常拍合影,但多数人拍出的效果真心不敢恭维. 蚂蚁随手翻了一下同学的QQ空间,发现了这种 ...

  4. 蚂蚁课堂 - springboot入门(非常详细)讲解人:(余胜军)

    蚂蚁课堂 - springboot入门(非常详细)讲解人:(余胜军) http://www.mayikt.com/course/video/1172

  5. Nomad Consul搭建集群

    Nomad Consul搭建集群 1.安装Nomad和Consul 或者直接下载二进制文件放在/usr/bin下. https://www.nomadproject.io/downloads http ...

  6. 郭卓惺:互动课堂的搭建实例及相关领域应用 1

    本文来自腾讯云技术沙龙,本次沙龙主题为在线教育个性化教学技术实践 演讲嘉宾:郭卓惺 | 腾讯视频云终端技术中心 随着在线教育覆盖面的增加,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视 ...

  7. 关于leanote(蚂蚁笔记私服搭建安装)步骤

    关于leanote(蚂蚁笔记私服搭建安装)步骤 去官网下载leanote的Windows版的外壳进行安装: https://leanote.com/(界面私服连接并编辑自己笔记使用的管理的窗口界面) ...

  8. 蚂蚁课堂史上最全SpringBoot视频教程

    早上CSDN花积分换到了这部视频,后来去官网看了下竟然是免费的,这里分享给大伙.希望对大家有用. 课程大纲 第一节(SpringBoot概述) 第二节(创建第一个SpringBoot项目) 第三节(S ...

  9. 云信小课堂|搭建应用级别在线聊天室,7步就够了!

    Vol. 6 从2000年至今,聊天室一直活跃在人们的各种生活场景中,目前广泛运用于超级小班课.互动大班课.连麦开黑.主播 PK 等场景,还具备文本.表情.点赞.撒花等互动方式,架起沟通桥梁的同时,玩 ...

  10. 蚂蚁课堂-第四期-基于springcloud构建微服务电商项目_阿里巴巴29个屌炸天的开源项目,你用过几个?附编程资料!!!...

    1. 分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案.此项目包含开发分布式应用服务 ...

最新文章

  1. Ubantu安装maven
  2. python能写软件吗-python代码能做成软件吗
  3. 【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
  4. python 优先队列_python中使用优先队列
  5. Redux初学者指南
  6. SSM:Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束的解决
  7. 32位存储环境下整数范围为什么是[-2^31,2^31-1]?
  8. 2018数据可视分析挑战赛-二等奖作品及历年优秀作品
  9. 网络人工智能研究方向有哪些?
  10. Switch基本知识
  11. 文件服务器php源码,php 在服务器上载文件
  12. 2.11.PHP7.1 狐教程-【PHP 数组】
  13. 什么是死亡之 Ping 攻击?
  14. 「运维有小邓」三款性价比超高的AD域管理工具
  15. 视频图像协议接口大全
  16. MultipartFile transferTo() FileNotFound 拒绝访问
  17. 9个常用的免费高清壁纸图库网站
  18. javaSE之多线程vip插队
  19. 用scratch制作蓄力跳
  20. 电脑技巧:Win7、Win10、Win11如何选择,看完你就懂了

热门文章

  1. c语言基础知识点字母和含义,大学c语言必背基础知识_c语言基础知识大全
  2. 开源大数据周刊-第90期
  3. CRC循环校验码的计算
  4. java怎么播放视频_java 播放视频
  5. JS广告代码效果大全
  6. WINDOWS内核对象及其理解
  7. 卫星通信常用专业词汇
  8. 计算机的硬盘材料,电脑坏了把硬盘资料转移到新硬盘的方法
  9. 那些软件可以测试网速,怎么测试网速 测试网速用什么软件
  10. 在线光纤网速测试软件,光纤网速测试,宽带测试