springCould中的consul-从小白开始【4】

目录

1.consul介绍 ❤️❤️❤️

2.安装 ❤️❤️❤️

3.创建8006模块 ❤️❤️❤️

 4.创建80模块❤️❤️❤️


1.consul介绍 ❤️❤️❤️

Consul 是一种用于服务发现配置分布式一致性的开源软件。它由HashiCorp开发和维护,可用于帮助构建和管理现代化的分布式系统。Consul提供了服务注册与发现、健康检查、分布式键值存储、多数据中心支持等功能,可帮助开发人员和系统管理员更好地管理和监控分布式应用程序和微服务架构。

2.安装 ❤️❤️❤️

官网:https://developer.hashicorp.com/consul/install?product_intent=consul#Windows

小张下载的Windows版的~ 

  • 1.窗口下直接cmd
  • 2.使用consul --version 查看版本号
  • 3.使用 consul agent -dev 运行
  • 4.浏览器访问 localhost:8500

  • 访问地址,说明成功

3.创建8006模块 ❤️❤️❤️

1.建模块

在父工程下创建工程

注意:jdk版本号,maven版本

2.导pom

1.springboot依赖

2.mybatis依赖

3.mysql依赖

4.通用配置

5.consul依赖

    <dependencies><!--springboot--><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.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency><!--mysql-connector-java--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!--通用配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--引入自己的api通用包--><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--springboot整合consul客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency></dependencies>

3.写yml

1.服务端口

2.服务名称

3.datasource配置

4.consul配置

5.mybatis配置

server:port: 8006
spring:application:name: consul-provider-paymentdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springcloudusername: rootpassword: 123456#consul注册信息cloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.xz.springcloud.entity

4.主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8006 {public static void main(String[] args) {SpringApplication.run(PaymentMain8006.class);}
}

5.编写业务

1.引入自己的端口号

2.注入service

3.编写业务

@RestController
public class PaymentController {@Value("${server.port}")private String serverPort;@Autowiredprivate PaymentService paymentService;@RequestMapping("/payment/consul")public String paymentZk() {return "spring cloud with consul:" + serverPort + "\t\t" + UUID.randomUUID().toString();}@GetMapping("/payment/getById/{id}")public CommonResult getById(@PathVariable("id") Integer id) {Payment result = paymentService.getById(id);if (result != null) {return new CommonResult(200, "查询成功,serverPort:" + serverPort, result);} else {return new CommonResult<Payment>(404,"查询无果,serverPort:"+serverPort,null);}}
}

6.测试

1.访问浏览器地址,查询结果

2.访问localhost:8500

访问成功~ 

创建节点成功~ 

 4.创建80模块❤️❤️❤️

1.建模块

在父工程下创建模块

注意jdk和maven版本

2.导pom

1.springboot依赖

2.通用配置依赖

3.consul依赖

 <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.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--consul--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency></dependencies>

3.写yml

1.服务端口

2.服务名称

3.consul配置信息

server:port: 80spring:application:name: consul-payment-ordercloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}

4主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderConsulMain80 {public static void main(String[] args) {SpringApplication.run(OrderConsulMain80.class);}
}

5.配置类 

后面调用URL,使用的是服务名,而不是具体的地址,所以加上@LoadBalance表负载均衡

@Configuration
public class ApplicationConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return  new RestTemplate();}
}

6.业务类

1.要访问的url,使用服务名,做负载均衡

2.注入restTemplate

3.调用restTemplate

@RestController
public class OrderController {private static final String INVOKE_URL= "http://consul-provider-payment";@Autowiredprivate RestTemplate restTemplate;@GetMapping("/payment/getById/{id}")public CommonResult getById(@PathVariable("id") Integer id) {return restTemplate.getForObject(INVOKE_URL + "/payment/getById/" + id, CommonResult.class);}@GetMapping("/payment/consul")public String discoveryConsul(){return restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);}
}

7.测试

1.使用80,访问路径

2.访问local:8500

服务80和服务 8006都入住到consul~

 

查询成功~ 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/297879.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【四】记一次关于架构设计从0到1的讨论

记一次关于架构设计从0到1的讨论 简介&#xff1a; 在一次面试中和面试官讨论起来架构设计这个话题&#xff0c;一聊就不知不觉一个小时了&#xff0c;感觉意犹未尽。现在回想起来感觉挺有意思的&#xff0c;古人说独学而无友则孤陋而寡闻&#xff0c;的确是这样的&#xff0c…

使用ArcMap对工厂选址

文章目录 题目流程1&#xff0c;添加河流数据和高程数据2&#xff0c;对河流数据进行选取3&#xff0c;对高程数据进行选取并划定工厂选址范围1&#xff0c;栅格提取法2&#xff0c;重分类法 4&#xff0c;汇总 结果 题目 实验名称&#xff1a;工厂选址 实验目的及要求&#x…

动态规划系列 | 最长上升子序列模型(上)

文章目录 最长上升子序列回顾题目描述问题分析程序代码复杂度分析 怪盗基德的滑翔翼题目描述输入格式输出格式 问题分析程序代码复杂度分析 登山题目描述输入格式输出格式 问题分析程序代码复杂度分析 合唱队形题目描述输入格式输出格式 问题分析程序代码复杂度分析 友好城市题…

WorkPlus超级APP助力企业节省IT人力成本,实现快速移动化

在信息化时代&#xff0c;移动应用已经成为企业发展的重要组成部分。然而&#xff0c;开发和维护原生客户端的成本却相对较高&#xff0c;需要大量的iOS、安卓和桌面端工程师。为了解决这一问题&#xff0c;WorkPlus作为一个功能完备的超级APP&#xff0c;为企业节约了大量的IT…

游戏软件提示d3dcompiler_43.dll的五个解决方法,亲测靠谱

在使用电脑进行工作&#xff0c;玩游戏的时候&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“D3DCompiler_43.dll丢失”的提示。D3DCompiler_43.dll是一个非常重要的动态链接库文件。它是由DirectX SDK提供的&#xff0c;用于编译和优化DirectX着色器代码的…

第四周:机器学习知识点回顾

前言&#xff1a; 讲真&#xff0c;复习这块我是比较头大的&#xff0c;之前的线代、高数、概率论、西瓜书、樱花书、NG的系列课程、李宏毅李沐等等等等…那可是花了三年学习佳实践下来的&#xff0c;现在一想脑子里就剩下几个名词就觉得废柴一个了&#xff0c;朋友们有没有同感…

数组元素反序

和前面的字符串逆向输出有异曲同工之妙 第一位和最后一位交换位置&#xff0c;然后用比大小循环 那么接下来修改一下这个程序&#xff0c;我们接下来解释一下p的概念 画图解释&#xff1a; 在最前面的 定义的时候&#xff0c;我们将p&#xff08;0&#xff09;定义在了1上&…

智能算法(GA、DBO等)求解零等待流水车间调度问题(NWFSP)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

[Linux] MySQL数据库之索引

一、索引的相关知识 1.1 索引的简介 索引是一个排序列表&#xff0c;包含索引值和包含该值的数据行的物理地址&#xff08;类似于 c 语言链表&#xff0c;通过指针指向数据记录的内存地址&#xff09;。 使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索…

Unity2017升级到Unity2018在Window7上输出空异常错误问题

Unity2017升级到Unity2018在Window7上输出空异常错误问题 一、环境Window7二、现象Unity报空异常&#xff08;.NET 4.x Equivalent&#xff09;三、日志四、解决方案第一种解决方案第二种解决方案 一、环境Window7 二、现象Unity报空异常&#xff08;.NET 4.x Equivalent&…

C++ 学习系列 -- C++ 中的多态行为

一 多态是什么&#xff1f; 多态是面向对象三大特征中重要一项&#xff0c;另外两项分别是封装与继承。 所谓多态&#xff0c;指的是多种不同的形态&#xff0c;也就是去完成某个具体的行为&#xff0c;多个不同的对象去操作同一个函数时&#xff0c;会产生不同的行为&…

全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛题目+答案讲解

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…