一、consul安装
2、选择版本:本人开发环境是windows,所以选择win64;
3、安装:保存至D:/SpringCloud/consul(自定义路径,linux将保存路径加到PATH),执行consul -v,没报错说明安装成功;
4、启动consul:搭建集群环境至少需要3个节点,本次只介绍本地开发调试,使用开发者模式启动即可,进入consul文件夹,执行consul agent -dev;
5、检验是否启动成功:打开浏览器,访问http://localhost:8500 
从界面可以看到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显示绿色勾选,即表示发布成功;
4、浏览器输入http://localhost:8082/hello?name=bootbook,如果“hello bootbook”,那么恭喜你,发布成功了。

SpringCloud-Consul开发环境配置的更多相关文章

  1. 【CentOS7】开发环境配置

    [CentOS7]开发环境配置 目录 ===================================================================== 1.安装openjdk ...

  2. Python开发环境配置

    好久没有写博客了,自从6月份毕业后,进入一家做书法.字画文化宣传的互联网公司(www.manyiaby.com),这段时间一直在进行前端开发,对于后端的使用很少了,整天都是什么html.css.jav ...

  3. Visual studio 通用开发环境配置:SDL,FFMPEG为例

    引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...

  4. AndroidStudio开发环境配置-Windows

    Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Imag ...

  5. WIN10下java8的开发环境配置与第一个java程序

    一.开发环境配置 1.在官网上下载jdk-8u111-windows-x64.exe 2.运行安装包,可以自定义安装路径 3.进入环境变量设置: 计算机右键-->属性-->高级系统设置-- ...

  6. Mac下golang开发环境配置

    go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...

  7. win7 x64 vs2010 directShow开发环境配置

    近来工作需要,要用dirrectShow写一个视频播放的demo验证自己的想法.开发环境配置了好久都没有成功,最后终于弄完,现在记录下来,以后有同学遇到同样问题,可以以此法解决. windows SD ...

  8. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  9. XMPP开发环境配置

    首先配置XMPP开发环境配置需要的软件 先安装xampp-osx-1.8.3-5-installer.dmg 安装成功后launchpad里会多出一个XAMPP(其他),点开里面的manager-os ...

  10. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

随机推荐

  1. Java 构造方法、final

    构造方法:构造(创建)对象时使用的方法. 方法名必须与类名称完全相匹配: 构造方法不需要返回类型: 构造方法不能被static.final等关键字修饰,且不能有return返回语句: 伴随着new被调 ...

  2. js面向对象杂谈

    **万丈高楼平地起** 1. 通过命名规范创建具有私有属性的对象: 以__开头的对象为私有对象,但是实际是能访问到的. 2. 通过自执行函数中,return出来一个对象,return旁边的地方都可以写 ...

  3. ESA2GJK1DH1K开发教程: 来看看最新整理的整个开发板的教程大纲吧

    项目开发:教程大纲(测试板型号:ESA2GJK1DH1K) 购买链接: https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.25911deb ...

  4. [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)

    全国城市列表选择 (包含定位城市.热门城市.全国城市) 用ScrollView 实现,解决 SectionList 实现的卡顿问题 实现效果如图: 代码实现如图: 主逻辑文件 cityList.js ...

  5. 第02组 Alpha冲刺(2/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:写博客,复习C语言 GitHub签入记录 接下来的计划:构思游戏实现 还剩下哪些任务:敲代码 燃尽图 遇到的困难:Alpha冲刺时间 ...

  6. django数据处理

    目录 django积累 连接数据库: 模板 后台管理 功能扩展: 日志打印: django积累 连接数据库: 连接数据库 : 1.创建数据库 create database oa default ch ...

  7. makefile通用版本(三)

    DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin DIR_LIB = -Wl,-rpath=/home/exbot ...

  8. 作业:用pygame实现俄罗斯方块

    用Pygame实现俄罗斯方块 参考资料后我安装了Pygame,参考了网上的代码实现了俄罗斯方块小游戏.我试着理解网上的代码的原理和含义,对这些代码的原理有了一个粗略地理解,代码通过参数,RGB值等来实 ...

  9. 20189220余超 团队博客——阅读软件app

    项目名称 小说阅读器 项目功能 注册登录 用户信息.用户密码.用户图像修改 书籍分类 书架 书籍搜索(作者名或书籍名) 书籍阅读(仅txt格式,暂不支持PDF等其他格式) 阅读字体.背景颜色.翻页效果 ...

  10. 提取文件中的每一个mask,并将mask命名为文件名字

    import cv2 as cv import random import glob import os from PIL import Image import shutil def get_sam ...