歪头儿在帝都资料

本文主要介绍歪头儿在帝都资料 方法和在新技术下所面对的“挑战”,方便大家深入理解歪头儿在帝都资料 过程。本文也将分享歪头儿在帝都资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。


歪头儿在帝都

什么是Consul

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。

Consul安装

官网(consul.io)最新版本1.8.0 提供了MacOS,Windows, Linux, 如果你不知道怎么安装,官方还提供了视频。
歪头儿在帝都
我这里使用docker安装,安装过程总结起来为三句话:
docker search consul
docker pull consul
docker run –name consul -d -p 8600:8500 consul

没问题的话,本机访问http://localhost:8600则可以打开consul自带的管理系统,默认情况下没有服务注册进来
歪头儿在帝都

准备工作

  • 新建父工程, 主要约定SpringCloud, SpringBoot版本号,我使用的是Hoxton.SR1, SpringBoot2.2
  • 新建3个子Module,这里两个service,一个consumer, 两个service我用8001和8002端口来区分,主要是想在服务消费时反应客户端负载均衡。

项目结构如下图
歪头儿在帝都
父工程pom.xml

<dependencyManagement>         <dependencies>             <dependency>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-dependencies</artifactId>                 <version>2.2.2.RELEASE</version>                 <type>pom</type>                 <scope>import</scope>             </dependency>             <dependency>                 <groupId>org.springframework.cloud</groupId>                 <artifactId>spring-cloud-dependencies</artifactId>                 <version>Hoxton.SR1</version>                 <type>pom</type>                 <scope>import</scope>             </dependency>         </dependencies>     </dependencyManagement> 

服务提供者

服务注册中心有了,那么我们来开发两个服务提供者,这里新建了两个Module,端口8001和8002。两个Module代码相同,主要为了演示负载使用。

新建Module,添加spring-cloud-starter-consul-disconvery依赖

歪头儿在帝都

pom.xml

 <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency>         <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>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>         </dependency>     </dependencies> 

添加配置(application.yml)

server:   port: 8001 spring:   application:     name: consul-student-service   cloud:     consul:       port: 8600       host: 127.0.0.1       discovery:         service-name: ${spring.application.name}  

修改启动类,添加服务

这里我直接写了一个测试接口放在启动类里。这里我只贴了端口8001的代码,8002代码结构相同,只是端口不同。

@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulStudentService8001 {      public static void main(String[] args) {         SpringApplication.run(ConsulStudentService8001.class,args);     }      @GetMapping("/student/version")     public String version(){         return "8001,202007222300";     } } 

OK,到这一步,启动两个服务,不出异常的情况下,可在注册中心查看当前的服务实例。
歪头儿在帝都
歪头儿在帝都
歪头儿在帝都

Consul消费者

服务注册中心有了,服务提供者也有了,我们再来开发一个服务消费者。

新建Module,同样添加spring-cloud-starter-consul-disconvery依赖

pom.xml

 <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-consul-discovery</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>         </dependency>     </dependencies> 

添加配置(application.yml)

server:   port: 8080  spring:   application:     name: consul-student-consumer   cloud:     consul:       host: 127.0.0.1       port: 8600       discovery:         service-name: ${spring.application.name}         # 不需要注册到consul中         register: false 

修改启动类,调用服务

开发RestTemplate配置类,调用REST接口时使用。

@Configuration public class ApplicationContextConfig {      @Bean     @LoadBalanced     public RestTemplate restTemplate(){         return new RestTemplate();     } } 

修改启动类

@SpringBootApplication @EnableDiscoveryClient @RestController public class ConsulStudentConsumer {      public static void main(String[] args) {         SpringApplication.run(ConsulStudentConsumer.class,args);     }      @Autowired     RestTemplate restTemplate;      @GetMapping("/consul/student/version")     public String version(){         //这里使用服务实例名调用REST接口         return restTemplate.getForObject("http://consul-student-service/student/version",String.class);     } } 

OK, 这一步完成之后,可以启动消费者接口,刷新几次,从返回结果上能看出来是轮训调用服务提供者接口实例。

歪头儿在帝都资料部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 歪头儿在帝都资料

提供最优质的资源集合

立即查看 了解详情