Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)
Spring Cloud Eureka VS Consul构建微服务架构
-- 服务注册与发现
一、Spring Cloud Eureka
Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。
1、创建“服务注册中心”
添加依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version><relativePath/>
</parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>
</dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
比较繁琐,可以直接通过idea添加
2、通过注解开启服务
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
3、修改配置文件
server.port=110eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
4、创建“服务提供方”(client)
添加依赖
<parent> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version><relativePath/> <!-- lookup parent from repository -->
</parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
添加配置
spring.application.name=eureka-client
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:110/eureka/
在application中添加注解
@SpringBootApplication
@EnableDiscoveryClient
public class ServiceConsumerApplication {public static void main(String[] args) {SpringApplication.run(ServiceConsumerApplication.class, args);} @Beanpublic RestTemplate restTemplate(RestTemplateBuilder builder) {// Do any additional configuration herereturn builder.build();}
}
在控制器中使用
@RestController
public class DcController {@AutowiredDiscoveryClient discoveryClient;@GetMapping("/dc")public String dc() {String services = "Services: " + discoveryClient.getServices();System.out.println(services);return services;}}
打开连接http://localhost:110
5、创建eureka消费者
//eureka消费者和提供者结构配置一样
<!--消费提供者提供的接口-->
@RestController
public class IndexController {@AutowiredLoadBalancerClient loadBalancerClient;@AutowiredRestTemplate restTemplate;@GetMapping("/consumer")public String dc() {ServiceInstance serviceInstance = loadBalancerClient.choose("eureka-client");String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc";System.out.println(url);ServiceInstance instance = loadBalancerClient.choose("eureka-consumer");System.out.println(instance.getHost()+":"+instance.getPort());return restTemplate.getForObject(url, String.class);}
}
二、Spring Cloud Consul
Spring Cloud Consul项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具。
Spring Cloud Consul包含了下面几个特性:
- 服务发现
- 健康检查
- Key/Value存储
- 多数据中心
1、添加依赖
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-config</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><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies><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>
2、properties添加配置
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
3、开启服务
需要本地开启consul服务,去官网下载服务端软件
https://www.consul.io/
从官网下载对应版本的服务端软件,Windows系统在当前的软件的目录下面打开cmd,并且输入consul agent -dev,即可开启服务
4、开启spring boot项目
输入http://localhost://8500即可打开UI界面
转载来源:https://blog.csdn.net/qq_31673689/article/details/80028681 原作者:Mi_Chong
Spring Cloud构建微服务架构:服务注册与发现(Eureka、Consul)相关推荐
- Spring Cloud构建微服务架构(五)服务网关
通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: alt 我们使用Spring Cloud Netflix中的Eureka实 ...
- Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为 ...
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】
前言 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服 ...
- Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)【Dalston版】
前言 在上一篇<Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)>中,我们已经体验了如何使用@HystrixCommand来为一个依赖资源定义服务降级逻辑.实 ...
- Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)【Dalston版】
前言 在前两篇<Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)>和<Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)&g ...
- Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
在上一篇<服务容错保护(hystrix断路器)>的介绍中,我们提到断路器是根据一段时间窗内的请求情况来判断并操作断路器的打开和关闭状态的.而这些请求情况的指标信息都是HystrixComm ...
- Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】
上一篇我们介绍了使用Hystrix Dashboard来展示Hystrix用于熔断的各项度量指标.通过Hystrix Dashboard,我们可以方便的查看服务实例的综合情况,比如:服务调用次数.服务 ...
- Spring Cloud构建微服务架构:服务网关(路由配置)【Dalston版】
在上一篇<Spring Cloud构建微服务架构:服务网关(基础)>一文中,我们通过使用Spring Cloud Zuul构建了一个基础的API网关服务,同时也演示了Spring Clou ...
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】 1
前言 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服 ...
- Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】
通过上一篇<分布式服务跟踪(整合logstash)>,我们虽然已经能够利用ELK平台提供的收集.存储.搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利.但是,在ELK平台中的数据分析 ...
最新文章
- 综述:基于GAN的图像翻译模型盘点
- FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
- 安装mysql准备执行页面_mysql 安装
- LeetCode412Fizz Buzz
- 2019西电网安实验班选拔考试
- 查询端口号是否被占用指令
- Android SDK 开发——发布使用踩坑之路
- jQuery入门 简单用法
- 三星Galaxy note I9220 系统廋身
- 计算机office demo,办公软件应用(Office2007)中级 DEMO盘-2013.doc
- springboot实现图片验证码登录
- python3.7爬取墨菲定律保存在本地txt
- iPhone开发基础
- 农民伯伯android,Android3.1r1API中文文档——ImageView(cnmahj+农民伯伯).doc.doc
- 整理的一些关于手机拍照技巧的内容
- Swift 3DTouch开发 自定义ShortcutItems
- Hadoop3.x集群搭建及配置的完整操作流程
- caj双击没反应的解决方法
- 软件版本命名规范详解
- 城市智商的提出,基于互联网云脑的智慧城市发展水平评测研究