欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringCloud-Consul开发环境配置

程序员文章站 2022-03-21 17:23:56
一、consul安装 1、下载:https://www.consul.io/downloads.html; 2、选择版本:本人开发环境是windows,所以选择win64; 3、安装:保存至D:/SpringCloud/consul(自定义路径,linux将保存路径加到PATH),执行consul ......
一、consul安装
1、下载:
2、选择版本:本人开发环境是windows,所以选择win64;
SpringCloud-Consul开发环境配置
3、安装:保存至d:/springcloud/consul(自定义路径,linux将保存路径加到path),执行consul -v,没报错说明安装成功;
SpringCloud-Consul开发环境配置
4、启动consul:搭建集群环境至少需要3个节点,本次只介绍本地开发调试,使用开发者模式启动即可,进入consul文件夹,执行consul agent -dev;
5、检验是否启动成功:打开浏览器,访问 
SpringCloud-Consul开发环境配置
从界面可以看到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显示绿色勾选,即表示发布成功;
SpringCloud-Consul开发环境配置
4、浏览器输入,如果“hello bootbook”,那么恭喜你,发布成功了。