一、consul安装
2、选择版本:本人开发环境是windows,所以选择win64;
3、安装:保存至D:/SpringCloud/consul(自定义路径,linux将保存路径加到PATH),执行consul -v,没报错说明安装成功;
4、启动consul:搭建集群环境至少需要3个节点,本次只介绍本地开发调试,使用开发者模式启动即可,进入consul文件夹,执行consul agent -dev;
从界面可以看到consul能做什么:服务发现、健康检查、K/V存储、多数据中心;
二、新建Srping Cloud Consul项目(此文仅为记录,以下源码参考重新定义springcloud示例)
1、创建Maven父级pom工程
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>code</artifactId>
<groupId>cn.springcloud.book</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ch13-1</artifactId>
<packaging>pom</packaging>
<modules>
<module>ch13-1-consul-provider</module>
<module>ch13-1-consul-consumer</module>
<!--<module>ch13-1-consul-config</module>-->
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 管理依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--注意: 这里必须要添加,否则各种依赖有问题 -->
<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>
</project>
2、创建consul-provider模块
pom文件继承父级即可,创建启动入口类ConsulProviderApplication:
/**
* consul-server 的启动主类
* 为了简化代码,我们将 Controller 代码放在主类中,实际工作中不建议这么做
*/
@RestController
@SpringBootApplication
public class ConsulProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ConsulProviderApplication.class, args);
}
/**
* 注意:新版Spring Cloud Consul 默认注册健康检查接口为:/actuator/health
*
* @return SUCCESS
*/
@GetMapping("/actuator/health")
public String health() {
return "SUCCESS";
}
/**
* 提供 sayHello 服务:根据对方传来的名字 XX,返回:hello XX
* @return String
*/
@GetMapping("/sayHello")
public String sayHello(String name){
return "hello," + name;
}
}
在bootstrap.yml添加配置信息:
server:
port: 8081 # 因为本地启动,防止端口冲突
spring:
application:
name: consul-provider
cloud:
consul:
host: 127.0.0.1 # consul 启动地址
port: 8500 # consul 启动端口
3、创建consul-consumer模块
这里我们使用Spring Cloud Openfeign作为服务调用组件,因此要在consul-consumer的pom引入以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
创建启动入口类ConsulConsumerApplication:
/**
* consul-consumer 的启动主类
* 为了简化代码,我们将 Controller 代码放在主类中,实际工作中不建议这么做
*/
@RestController
@SpringBootApplication
@EnableFeignClients
public class ConsulConsumerApplication {
/** 调用 hello 服务*/
@Autowired
private HelloService helloService;
@GetMapping("/actuator/health")
public String health(){
return "SUCCESS";
}
/** 接收前端传来的参数,调用远程接口,并返回调用结果 */
@GetMapping("/hello")
public String hello(String name){
return helloService.sayHello(name);
}
public static void main(String[] args) {
SpringApplication.run(ConsulConsumerApplication.class,args);
}
}
添加fegincliet类HelloService
/** 使用 openfeign 组件,调用远程服务 */
@FeignClient("consul-provider")
public interface HelloService {
@RequestMapping(value = "/sayHello",method = RequestMethod.GET)
String sayHello(@RequestParam("name") String name);
}
在bootstrap.yml添加配置信息:
server:
port: 8082 # 因为本地启动,防止端口冲突
spring:
application:
name: consul-consumer
cloud:
consul:
host: 127.0.0.1 # consul 启动地址
port: 8500 # consul 启动端口
三、效果展示
1、启动consul;
2、启动consul-provider和consul-consumer;
3、浏览器输入http://localhost:8500,如果services->Health Checks显示绿色勾选,即表示发布成功;

- 【CentOS7】开发环境配置
[CentOS7]开发环境配置 目录 ===================================================================== 1.安装openjdk ...
- Python开发环境配置
好久没有写博客了,自从6月份毕业后,进入一家做书法.字画文化宣传的互联网公司(www.manyiaby.com),这段时间一直在进行前端开发,对于后端的使用很少了,整天都是什么html.css.jav ...
- Visual studio 通用开发环境配置:SDL,FFMPEG为例
引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...
- AndroidStudio开发环境配置-Windows
Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Imag ...
- WIN10下java8的开发环境配置与第一个java程序
一.开发环境配置 1.在官网上下载jdk-8u111-windows-x64.exe 2.运行安装包,可以自定义安装路径 3.进入环境变量设置: 计算机右键-->属性-->高级系统设置-- ...
- Mac下golang开发环境配置
go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...
- win7 x64 vs2010 directShow开发环境配置
近来工作需要,要用dirrectShow写一个视频播放的demo验证自己的想法.开发环境配置了好久都没有成功,最后终于弄完,现在记录下来,以后有同学遇到同样问题,可以以此法解决. windows SD ...
- 基于Eclipse的Hadoop应用开发环境配置
基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...
- XMPP开发环境配置
首先配置XMPP开发环境配置需要的软件 先安装xampp-osx-1.8.3-5-installer.dmg 安装成功后launchpad里会多出一个XAMPP(其他),点开里面的manager-os ...
- Mac电脑配置IOS React Native开发环境配置笔记
React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...
随机推荐
- spring-data-redis 关于订阅客户端不断创建新线程的问题
项目中使用了spring-data-redis 实现消息订阅功能,原来的配置是这样子: <redis:listener-container connection-factory="je ...
- python面试题以及答案
目录 Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Python的 ...
- 编译rabbitmq c++客户端
rabbitmq官网地址 rabbitmq客户端 c++版本地址 rabbitmq客户端 c版本地址 下载c++版本:根据编译说明 Pre-requisites boost-1.47.0 or new ...
- robotframework连接mysql
1.安装mysql数据库,并启动,创建数据库test及user表(可以自定义) 2.配置robotframework环境加载DatabaseLibrary 3.安装pymysql,下载地址:https ...
- centos安装安全狗提示Need system command 'locate' to install safedog for linux的解决方法
今天为客户的centos服务器安装安全狗时提示Need system command 'locate' to install safedog for linux.Installation aborte ...
- CNN是怎样一步步工作的?
非常形象详细的博客:链接1 链接2 为了完成我们的卷积,我们不断地重复着上述过程,将feature和图中每一块进行卷积操作.最后通过每一个feature的卷积操作,我们会得到一个新的二维数组.这也可以 ...
- date命令的FORMAT中输入空格的几种方法
1.date +%Y-%m-%d\ (一个空格)%H:%M:%S 此命令中用了转义字符 \ ,将空格转义出来 2.date +%Y-%m-%d' '%H:%M:%S 此命令中的单引号内可以是一个或多 ...
- django-debug-toolbar调试请求接口
第一步: pip install django-debug-toolbar 安装完成,往下继续配置. 第二步: 打开项目,找到settings.py 文件. 找到: INSTALLED_APPS-- ...
- python paramiko模块简介及安装
一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...
- vue之子父组件通信
一. 子-父组件间通信: let children = { # 定义子组件 template: `<div> <button @click="send"&g ...