注册服务到服务中心(Consul)

添加POM文件中的依赖

在POM文件添加如下依赖:

                <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>

spring-boot-starter-actuator负责健康检查,spring-cloud-starter-consul-discovery负责对Consul的支持。

在引用spring-cloud-starter-consul-discovery时必须明确版本号,我们这个项目BOOT的版本是2.1.8.RELEASE,spring-cloud-starter-consul-discovery版本号是2.1.3.RELEASE,可以在Spring Cloud官网查到。

或者使用dependencyManagement进行版本号的管理,在POM文件里添加如下内容可以不指明spring-cloud-starter-consul-discovery的版本号:

	<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <dependencies> ..... <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency> ..... </dependencies>

配置文件

spring.application.name=spring-cloud-provider-01
server.port=9000
spring.cloud.consul.host=localhost
#consul端口可以自行修改
spring.cloud.consul.port=8500
#注册到consul的服务名称
spring.cloud.consul.discovery.serviceName=service-provider

启动类

SpringCloudProviderApplication.java

@SpringBootApplication
//支持服务发现
@EnableDiscoveryClient
public class SpringCloudProviderApplication { public static void main(String[] args) {
SpringApplication.run(SpringCloudProviderApplication.class, args);
} }

启动服务

启动服务后自动完成注册服务的过程,回到consul控制界面可以看到服务已经注册好了:



点击service-provider可以看到该服务只有一个微服务:

负载均衡

我们参照spring-cloud-provider项目在复制一个微服务项目spring-cloud-provider-second,并对HelloWorld类进行修改以便区分:

spring-cloud-provider项目中的HelloWorld类:

@RestController
public class HelloWorld { @RequestMapping("/hello")
public String Hello(@RequestParam String name){
return "你好!" + name + ",这是第一个微服务。";
}
}

spring-cloud-provider-second项目中的HelloWorld类:

@RestController
public class HelloWorld { @RequestMapping("/hello")
public String Hello(@RequestParam String name){
return "你好!" + name + ",这是第二个微服务。";
}
}

修改spring-cloud-provider-second项目的端口号:

spring-cloud-provider-second项目中的application.properties文件内容:

spring.application.name=spring-cloud-provider-02
server.port=9001
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
#注册到consul的服务名称
spring.cloud.consul.discovery.serviceName=service-provider

启动spring-cloud-provider-second项目,查看service-provider服务提供者已经出现了两个服务提供者:

源码

Github仓库:https://github.com/sunweisheng/spring-cloud-example

注册服务到服务中心(Consul)的更多相关文章

  1. NetCore项目实战篇06---服务注册与发现之consul

    至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的 ...

  2. 注册中心ZooKeeper,Eureka,Consul,Nacos对比

    简介 ​ 服务注册中心本质上是为了解耦服务提供者和服务消费者.对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的.更进一步,为了支持弹性扩缩容特性,一个微服务的提供者 ...

  3. .NET Core微服务一:Consul服务中心

    本文的项目代码,在文章结尾处可以下载. 防爬虫,本文的网址是:https://www.cnblogs.com/shousiji/p/12253295.html 本文使用的环境:Windows10 64 ...

  4. 微服务(入门二):netcore通过consul注册服务

    基础准备 1.创建asp.net core Web 应用程序选择Api 2.appsettings.json 配置consul服务器地址,以及本机ip和端口号信息 { "Logging&qu ...

  5. windows下consul利用json文件注册服务

    windows下,以开发模式启动consul命令 consul agent -dev -config-dir=D:\tools\consul 人工注册服务,新建一个json文件 ,放到D:\tools ...

  6. Asp.net core 向Consul 注册服务

    Consul服务发现的使用方法:1. 在每台电脑上都以Client Mode的方式运行一个Consul代理, 这个代理只负责与Consul Cluster高效地交换最新注册信息(不参与Leader的选 ...

  7. Spring Boot + Spring Cloud 构建微服务系统(一):服务注册和发现(Consul)

    使用Consul提供注册和发现服务 什么是 Consul Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul ...

  8. 服务注册和发现(Consul)

    使用Consul提供注册和发现服务 什么是 Consul Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul ...

  9. .net core grpc consul 实现服务注册 服务发现 负载均衡(二)

    在上一篇 .net core grpc 实现通信(一) 中,我们实现的grpc通信在.net core中的可行性,但要在微服务中真正使用,还缺少 服务注册,服务发现及负载均衡等,本篇我们将在 .net ...

随机推荐

  1. javascript判断chrome浏览器的方法

    var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1; if (isChrome) { alert( ...

  2. springcloud费话之Eureka集群

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

  3. PCA算法和实例

    PCA算法 算法步骤: 假设有m条n维数据. 1. 将原始数据按列组成n行m列矩阵X 2. 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值 3. 求出协方差矩阵C=1/mXXT 4. ...

  4. Redis线上环境做Keys匹配操作!你可以离职了!

    转自:https://blog.csdn.net/bntx2jsqfehy7/article/details/84207884一.一个新闻 新闻内容如下:php工程师执行redis keys * 导致 ...

  5. SCM

    scm即软件配置管理. 软件配置管理(SCM)是指通过执行版本控制.变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性,配置管理是对工作成果的一种有效保护. SCM(Sof ...

  6. linux下清空文件内容

    在命令行下#cat /dev/null >listener.log

  7. Java Web学习总结(12)Filter过滤器

    一,Filter简介 Filter也称之为过滤器,Filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理. 二,Filter开发步骤 1)编写一个 ...

  8. exists 的简单介绍

    准备数据: CREATE TABLE Books( BookID number, BookTitle VARCHAR2(20) NOT NULL, Copyright varchar2(20) ) I ...

  9. Python3解leetcode Binary Tree PathsAdd Digits

    问题描述: Given a non-negative integer num, repeatedly add all its digits until the result has only one ...

  10. webpack使用的补充

    1.分离生产环境和开发环境的wepack.config.js 我们可以将生产环境和开发环境中的配置分离为两个不同的文件,并且还维护一个共同的配置文件 common,可以通过 webpack.merge ...