Consul 服务注册与发现
Consul是一种分布式,高度可用且具有数据中心感知能力的解决方案,用于跨动态,分布式基础架构连接和配置应用程序。
1.下载consul.exe
2.在consul.exe文件夹地址栏输入cmd
3.输入consul agent -dev
cloud-provider-paymentcounsul
<dependencies>
<!--SpringCloud consul-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.etc.cloud</groupId>
<artifactId>cloud-api-commons</artifactId>
</dependency>
<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-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</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>
</dependencies>
server:
port: 8005 spring:
application:
name: cloud-provider-paymentcounsul cloud:
consul:
host: localhost
port: 8500
discovery:
hostname: 127.0.0.1
service-name: ${spring.application.name}
@Slf4j
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8005 {
public static void main(String[] args) {
SpringApplication.run( PaymentMain8005.class,args);
log.info("****************PaymentMain8005 启动 ************ ");
}
}
@RestController
public class PaymentController {
@Value("${server.port}")
private String serverPort; @GetMapping("/payment/consul")
public String payment(){
return "spring cloud consul " + serverPort + UUID.randomUUID();
}
}
consul用@EnableDiscoveryClient注解
cloud-consumer-orderconsul:
<dependencies>
<!--SpringCloud consul-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.etc.cloud</groupId>
<artifactId>cloud-api-commons</artifactId>
</dependency>
<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-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</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>
</dependencies>
server:
port: 8000 spring:
application:
name: cloud-consumer-orderconsul cloud:
consul:
#consul 地址
host: localhost
port: 8500
discovery:
hostname: 127.0.0.1
service-name: ${spring.application.name}
@Slf4j
@EnableDiscoveryClient
@SpringBootApplication
public class OrderMain8000 {
public static void main(String[] args) {
SpringApplication.run( OrderMain8000.class,args);
log.info("****************OrderMain8000 启动 ************ ");
}
}
@RestController
public class OrderController {
private static final String URL = "http://cloud-provider-paymentcounsul"; @Autowired
private RestTemplate restTemplate; @GetMapping("/consumer/payment/consul")
public String paymentinfio(){
return restTemplate.getForObject(URL + "/payment/consul",String.class);
}
}
@Configuration
public class SpringApplicationConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
@LoadBalanced 开启负载均衡的注解
让这个RestTemplate在请求时拥有客户端负载均衡的能力
在springcloud 的使用中如果使用RestTemplate来进行rpc远程调用的时候 ,
在调用会员服务的时候有的会选择使用会员服务端在注册中心注册的名称来进行远程调用
也有的会直接使用域名进行调用,在这个过程中如果使用会员的注册名称的话在RestTemplate 那里开启 负载均衡 : @LoadBalanced
如果是使用域名进行调用就不用开启负载均衡
Consul 服务注册与发现的更多相关文章
- 微服务~Consul服务注册与发现
服务发现是基于微服务架构的关键原则之一.尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱.Consul通过HTTP API和DNS提供服务发现服务.Spring Cloud Consul利 ...
- SpringBoot + Spring Cloud Consul 服务注册和发现
什么是Consul Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul 的方案更"一站式" ...
- (8)ASP.NET Core3.1 Ocelot Consul服务注册与发现
1.服务注册与发现(Service Discovery) ●服务注册:我们通过在每个服务实例写入注册代码,实例在启动的时候会先去注册中心(例如Consul.ZooKeeper.etcd.Eureka) ...
- consul服务注册与发现
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 温故知新,.Net Core遇见Consul(HashiCorp),实践分布式服务注册与发现
什么是Consul 参考 https://www.consul.io https://www.hashicorp.com 使用Consul做服务发现的若干姿势 ASP.NET Core 发布之后通过命 ...
- 三. SpringCloud服务注册与发现
1. Eureka 1.1 Eureka理解 什么是服务治理 Spring Cloud封装了Netflix公司开发的Eurkeka模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之 ...
- Consul 服务注册与服务发现
上一篇:Mac OS.Ubuntu 安装及使用 Consul 1. 服务注册 对 Consul 进行服务注册之前,需要先部署一个服务站点,我们可以使用 ASP.NET Core 创建 Web 应用程序 ...
- 分布式服务注册和发现consul 简要介绍
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架 ...
- SpringCloud+Consul 服务注册与服务发现
SpringCloud+Consul 服务注册与服务发现 1. 服务注册: 在Spring.factories有一段: # Discovery Client Configuration org.spr ...
- Spring Cloud Consul 实现服务注册和发现
Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具,它为基于 JVM 的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布 ...
随机推荐
- C#导出Excel设置单元格样式
C# 导出Excel 1 //导出Excel 2 private void ExportExcel(string fileName, System.Data.DataTable myDGV, stri ...
- VUE学习-过滤器
过滤器 常用于 过滤数据 或者 格式化数据 <div class="main-container"> <div class="datetime-wrap ...
- 汇总-软件-分类:SSH客户端工具
官网-FinalShell 官网-Tabby GitHub-Tabby
- Windos下 java后台软件服务化(举例)-WinSW
WinSW-软件服务化 1.1 举例:ApiWintool可执行jar ApiWintool.exe ApiWintool.jar ApiWintool.xml install.cmd uninsta ...
- 以EEPROM为例的硬件IIC的使用
目录 参考调试MPU6050与EEPROM的经验,整合了目标内存/寄存器地址是否为16位的情况,合并了单字节与多字节间的操作,添加了返回值与读写超时功能:硬件IIC的7位从机地址查询方式读写参考代码 ...
- .net core 添加省市区三级联动以及编辑时显示选中的城市。
1 @model Core.Net.Model.CoreNetBuild.CoreNetPrejectAllocation; 2 @using Core.Net.Common.Core.Net.Cor ...
- Kubernetes--管理Pod对象的容器(3)
共享节点的网络名称空间 同一个Pod对象的各容器均运行于一个独立的.隔离的Network名称空间中,共享同一个网络协议栈及相关的网络设备.也有一些特殊的Pod对象需要运行于所在节点的名称空间中,执行系 ...
- git修改历史提交的备注信息
1 git checkout '版本分支号' && git rebase -i 5bce64d^ (或者 git rebase -i HEAD ~4) //5bce64d 是 ...
- Metasploit渗透测试框架一
Metasploit简介 Metasploit是一个渗透测试平台,使您能够查找,利用和验证漏洞.该平台还有Metasploit Pro. Metasploit是一个免费的.可下载的框架,本身自带数百已 ...
- 第四章:用Python对用户的评论数据进行情感倾向分析
文章目录 项目背景 获取数据 情感倾向 senta_bilstm 模型 情感划分 数据描述 数据分析 总体评论倾向 评论分布 各分布的情感倾向 评论分词 去除停用词 绘制词云图 结论 源码地址 本文可 ...