SpringCloud学习笔记(五)_Consul注册中心

这篇具有很好参考价值的文章主要介绍了SpringCloud学习笔记(五)_Consul注册中心。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本章使用的Consul版本是 1.7.2

项目架构图如下:

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

搭建服务提供者

1、新建一个maven项目(test-springcloud-provider-payment8006)

结构如下:

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

2、引入依赖,编辑pom文件

1 <!-- spring-cloud 整合 consul -->
2 <dependency>
3     <groupId>org.springframework.cloud</groupId>
4     <artifactId>spring-cloud-starter-consul-discovery</artifactId>
5 </dependency>

完整pom.xml文件如下:

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <parent>
 6         <artifactId>test-springcloud</artifactId>
 7         <groupId>com.test</groupId>
 8         <version>1.0-SNAPSHOT</version>
 9     </parent>
10     <modelVersion>4.0.0</modelVersion>
11 
12     <artifactId>test-springcloud-provider-payment8006</artifactId>
13 
14     <dependencies>
15 
16         <!-- spring-cloud 整合 consul -->
17         <dependency>
18             <groupId>org.springframework.cloud</groupId>
19             <artifactId>spring-cloud-starter-consul-discovery</artifactId>
20         </dependency>
21 
22         <!-- spring boot -->
23         <dependency>
24             <groupId>org.springframework.boot</groupId>
25             <artifactId>spring-boot-starter-web</artifactId>
26         </dependency>
27         <dependency>
28             <groupId>org.springframework.boot</groupId>
29             <artifactId>spring-boot-starter-actuator</artifactId>
30         </dependency>
31 
32         <dependency>
33             <groupId>org.springframework.boot</groupId>
34             <artifactId>spring-boot-devtools</artifactId>
35             <scope>runtime</scope>
36             <optional>true</optional>
37         </dependency>
38         <dependency>
39             <groupId>org.projectlombok</groupId>
40             <artifactId>lombok</artifactId>
41             <optional>true</optional>
42         </dependency>
43 
44         <dependency>
45             <groupId>org.springframework.boot</groupId>
46             <artifactId>spring-boot-starter-test</artifactId>
47             <scope>test</scope>
48         </dependency>
49 
50     </dependencies>
51 
52     <build>
53         <finalName>test-springcloud-provider-payment8006</finalName>
54     </build>
55 
56 </project>

pom.xml

3、编辑配置文件application.yml

 1 # 端口
 2 server:
 3   port: 8006
 4 
 5 spring:
 6   application:
 7     name: cloud-payment-service
 8   cloud:
 9     consul:
10       host: localhost
11       port: 8500
12       discovery:
13         # hostname: 127.0.0.1
14         service-name: ${spring.application.name}

4、编写主启动类

1 @EnableDiscoveryClient
2 @SpringBootApplication
3 public class PaymentMain8006 {
4     public static void main(String[] args) {
5         SpringApplication.run(PaymentMain8006.class, args);
6     }
7 }

5、编写Controller

 1 @RestController
 2 @Slf4j
 3 public class PaymentController {
 4 
 5     @Value("${server.port}")
 6     private String serverPort;
 7 
 8     @RequestMapping(value = "payment/consul")
 9     public String paymentconsul(){
10         return "springcloud with consul:" + serverPort + "\t" + UUID.randomUUID();
11     }
12 }

6、启动项目,测试项目

1)启动Consul服务,使用开发模式,命令:consul agent -dev

2)启动项目(test-springcloud-provider-payment8006)

3)使用地址:http://localhost:8006/payment/consul

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

4)打开Consul的界面,地址:http://localhost:8500/

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

搭建服务消费者

1、新建一个maven项目(test-springcloud-order7998)

项目结构如下:

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

2、引入pom依赖,同上(与服务提供者依赖相同)

3、编辑application.yml文件

 1 # 端口
 2 server:
 3   port: 7998
 4 
 5 spring:
 6   application:
 7     name: cloud-order
 8   cloud:
 9     consul:
10       host: localhost
11       port: 8500
12       discovery:
13         # hostname: 127.0.0.1
14         service-name: ${spring.application.name}

4、编辑启动类

1 @SpringBootApplication
2 public class OrderMain7998 {
3     public static void main(String[] args) {
4         SpringApplication.run(OrderMain7998.class, args);
5     }
6 }

5、编辑配置类,注入RestTemplate对象

 1 @Configuration
 2 public class AppConfig {
 3 
 4     /**
 5      * 注入restTemplate,请用请求rest接口
 6      * @return
 7      */
 8     @Bean
 9     // 标注此注解后,RestTemplate就具有了客户端负载均衡能力
10     // 负载均衡技术依赖于的是Ribbon组件~
11     // RestTemplate都塞入一个loadBalancerInterceptor 让其具备有负载均衡的能力
12     @LoadBalanced
13     public RestTemplate restTemplate(){
14         return new RestTemplate();
15     }
16 }

6、编辑Controller

 1 @RestController
 2 @Slf4j
 3 public class OrderController {
 4 
 5     public static final String PAYMENT_URL = "http://cloud-payment-service";
 6 
 7     @Autowired
 8     private RestTemplate restTemplate;
 9 
10     @GetMapping("/consumer/payment/consul")
11     public String paymentconsul(){
12         return restTemplate.getForObject(PAYMENT_URL + "/payment/consul", String.class);
13     }
14 
15 }

7、启动项目,测试

1)启动项目(test-springcloud-order7998)

2)使用地址:http://localhost:7998/consumer/payment/consul,进行访问

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

3)打开Consul的界面,地址:http://localhost:8500/

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习

节点信息:

SpringCloud学习笔记(五)_Consul注册中心,SpringCloud,java-consul,spring cloud,学习文章来源地址https://www.toymoban.com/news/detail-670879.html

到了这里,关于SpringCloud学习笔记(五)_Consul注册中心的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud(H版&alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)

    源码地址:https://gitee.com/jackXUYY/springboot-example 创建订单服务,支付服务,公共api服务(共用的实体),eureka服务 1.cloud-consumer-order80 2.cloud-provider-payment8001 3.cloud-api-commons 4.cloud-eureka-server7001 5.cloud-eureka-server7002 如图所示 修改本地host映射 修改数据库地址为自己的地址,并初始

    2024年02月03日
    浏览(50)
  • 基于SpringCloud的微服务架构学习笔记(2)注册中心Eureka和负载均衡Ribbon

    1.7.1 远程调用的问题 地址信息获取 : 服务消费者 如何获取 服务提供者 的 地址信息 (不能每次都写死): URL:http://localhost:8081/user/\\\"+order.getUserId() 多选一 :如果有多个服务提供者,消费者如何进行选择 监测健康状态 :消费者如何获知提供者的健康状态 1.7.2 eureka原理 地址

    2024年02月13日
    浏览(37)
  • Springcloud笔记(2)-Eureka服务注册中心

    Eureka作为一个微服务的治理中心,它是一个服务应用,可以接收其他服务的注册,也可以发现和治理服务实例。 服务治理中心是微服务(分布式)架构中最基础和最核心的功能组件,它主要对各个服务实例进行管理,包括 服务注册和服务发现 等 本文参考:springcloud教程 --

    2024年02月05日
    浏览(46)
  • SpringCloud学习路线(3)—— Eureka注册中心

    一、导引 服务调用出现的问题 服务调用采取的请求地址是静态的,当我们使用服务集群时,很容易造成只能调用固定的微服务上的接口。 多个提供者,消费者的使用对象无法确定 消费者无法得知提供者的状态 二、Eureka注册中心 (一)作用: 消费者如何获取服务提供者具体

    2024年02月16日
    浏览(39)
  • 微服务 - Consul服务注册中心

    上篇说到构建良好的架构,依托于基础设施建设(自动化测试、自动化部署、服务监控,服务发现、配置中心等等),决定成败的往往是基础设施建设,所以从搭建一个注册中心和配置中心开始我们新一阶段的启程。 注册中心选型 你有没有思考过这样一个问题,为什么会有这么

    2023年04月23日
    浏览(48)
  • # 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3)

    段子手168 Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署, Eureka Server 实例会彼此增量地同步信息,从而确保所有节点数据一致。 事实上,节点之间相互注册是 Eureka Server 的默认行为。 1)修改 eureka_server 子工程(子模块)中的 application.yml 文件 模拟两个

    2024年04月26日
    浏览(41)
  • 服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

    Eureka Eureka是由Netflix开源的一个服务注册和发现组件,它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server,客户端则是那些需要注册的服务。Eureka具有以下特点: 高可用性 :Eureka支持多节点部署,能够在节点故障时自动进行故障转移。 自我

    2024年04月22日
    浏览(34)
  • 微服务注册中心之Zookeeper,Eureka,Nacos,Consul,Kubernetes区别

    微服务的注册中心目前主流的有以下五种: Zookeeper , Eureka , Consul , Nacos , Kubernetes 1.1.1 为什么需要注册中心 随着单体应用拆分,首当面临的第一份挑战就是服务实例的数量较多,并且服务自身对外暴露的访问地址也具有动态性。可能因为服务扩容、服务的失败和更新等

    2024年02月06日
    浏览(44)
  • SpringCloud源码学习笔记3——Nacos服务注册源码分析

    系列文章目录和关于我 实现服务治理、服务动态扩容,以及调用时能有负载均衡的效果。 如果我们将服务提供方的ip地址配置在服务消费方的配置文件中,当服务提供方实例上线下线,消费方都需要重启服务,导致二者耦合度过高。注册中心就是在二者之间加一层,实现解耦

    2023年04月08日
    浏览(44)
  • 【Java项目】SpringCloud项目注册到Nacos中心时显示的是内网IP导致不同服务器之间无法互相调用接口的解决并发

    微服务项目地址—动动你发财的小手点一个stars吧 出现这个问题是之前我也就遇到过的,这个问题的情况就是: 我们知道微服务项目是可以把不同的项目部署在不同的服务器上从而减少某一台服务器的压力,我们只需要为每一个服务配置一个注册中心即可,然后一个服务需要

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包