spring cloud微服务快速教程之(二)服务注册与发现 eureka
0、为什么需要eureka
当我们从当体系统拆分为多个独立服务项目之后,如果aaa.com/uer、aaa.com/order;;相互之间调用,如果只是一个服务一个实例,那还可以直接通过固定地址(如http://111.111.11.1:7119/user/getuser/1)直接访问;
但是,我们一个服务有很多个实例,这样你就不能写死地址了吧,多个之间你得挑出一个来调用吧(负载均衡),还有多个实例有的停止了,有的新加入了,这你得心跳检测健康监测吧等等;这些,都是从单体系统拆分后面临的实际问题,你可以自己一个一个去克服和实现;当遇到了spring cloud,哈哈,你有福了,spring cloud eureka正是为你解决以上问题而来;
eureka服务发现组件包含eureka server(服务注册中心)和eureka client(服务注册与发现);本身通过心跳检测(默认30S)进行服务的注册与发现与健康检查
一、eureka集成
1、eureka server
1.1、添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1.2、配置文件增加配置
eureka:
instance:
hostname: localhost
prefer-ip-address: true
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
enable-self-preservation: false spring:
application:
name: eurka-server
1.3、启动类增加 @EnableEurekaServer 注解
@SpringBootApplication
@EnableEurekaServer
public class application
{
public static void main(String[] args)
{
SpringApplication.run(application.class);
}
}
一个eureka server就完成了,启动运行

还没有服务实例,因为我们还没添加,好,下面我们来添加eureka client
2、eureka client
2.1、添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.2、修改配置文件
server:
port: spring:
application:
name: user eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
2.3、启动类中增加 @EnableEurekaClient 注解
@SpringBootApplication
@EnableEurekaClient
@EnableHystrixDashboard
public class application
{
public static void main(String[] args)
{
SpringApplication.run(application.class);
}
}
完成
我们在controller里面添加一个方法进行测试
@RestController
@RequestMapping("/user")
public class UserController
{
@Autowired
private ServiceUtil serviceUtil; @RequestMapping("/hello")
public String Hello()
{
return ("hello world" +serviceUtil.getPort());
}
}
3、测试
先启动eureka server 项目,再启动client项目,我们可以看到,client的服务实例已经注册进来了

再切换端口增加一个实例,可以看到,也注册进来了,这样就可以通过eureka管理多个服务的多个实例以及相互之间调用的问题了

GIT源码后面再放出
spring cloud微服务快速教程之(二)服务注册与发现 eureka的更多相关文章
- Spring Cloud 微服务架构学习笔记与示例
本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...
- spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现
0.前言 什么是Spring Cloud Alibaba? Spring Cloud Alibaba 是阿里开源的,致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便 ...
- Spring Cloud微服务笔记(三)服务治理:Spring Cloud Eureka快速入门
服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构 ...
- 只需五分钟-用Maven快速搭建Spring Cloud微服务
Maven安装手册 1.准备安装包 安装包: apache-maven-3.5.4-bin.zip (最好JDK 1.7及以上版本) 集成包: eclipse-maven3-plugin.zip 2 ...
- spring cloud微服务实践二
在上一篇,我们已经搭建了spring cloud微服务中的注册中心.但只有一个注册中心还远远不够. 接下来我们就来尝试提供服务. 注:这一个系列的开发环境版本为 java1.8, spring boo ...
- Spring Cloud 微服务二:API网关spring cloud zuul
前言:本章将继续上一章Spring Cloud微服务,本章主要内容是API 网关,相关代码将延续上一章,如需了解请参考:Spring Cloud 微服务一:Consul注册中心 Spring clou ...
- Spring Cloud 微服务架构的五脏六腑,统统晒一晒!
Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...
- Spring Cloud微服务安全实战_00_前言
一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介: 二.最终形成的架 ...
- Spring cloud微服务安全实战_汇总
Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...
- Spring Cloud微服务Sentinel+Apollo限流、熔断实战总结
在Spring Cloud微服务体系中,由于限流熔断组件Hystrix开源版本不在维护,因此国内不少有类似需求的公司已经将眼光转向阿里开源的Sentinel框架.而以下要介绍的正是作者最近两个月的真实 ...
随机推荐
- 替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
提起 Spring Cloud 的限流降级组件,一般首先想到的是 Netflix 的 Hystrix. 不过就在2018年底,Netflix 宣布不再积极开发 Hystrix,该项目将处于维护模式.官 ...
- 力扣337——打家劫舍 III
这一篇也是基于"打家劫舍"的扩展,需要针对特殊情况特殊考虑,当然其本质还是动态规划,优化时需要考虑数据结构. 原题 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃 ...
- Redis(六):list/lpush/lrange/lpop 命令源码解析
上一篇讲了hash数据类型的相关实现方法,没有茅塞顿开也至少知道redis如何搞事情的了吧. 本篇咱们继续来看redis中的数据类型的实现: list 相关操作实现. 同样,我们以使用者的角度,开始理 ...
- 巨坑练习题!!!—— Car的旅行线路
在看题目之前,请童鞋们做好心理准备╮(╯▽╰)╭ 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游. 她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之 ...
- export 和 export default 的区别
export命令用于规定模块的对外接口. 一个模块就是一个独立的文件.该文件内部的所有变量,外部无法获取.如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量.下面是一个 ...
- Linux开发环境准备(一)
工欲善其事,必先利其器 今天是腊月廿九,明天春节.我想着在今天对2019年所学到的东西做下总结. 从操作系统的安全性,系统代码是否开源,对开发人员的友好性,以及学习和工作的需求,我最终选择了Linux ...
- Dart语言学习(九) 运算符
一.运算符及其描述 二.Dart运算符注意点 1. 除法运算符"/" 和 整除运算法"~/" 的区别 除法运算符 "/" 结果是浮点型 整 ...
- ReactNative---ref的用法和技巧
1.获取上下文的组件 2. ref属性不仅接受string类型的参数,而且它还可以接受一个function 作为callback.如:将组件view作为参数赋值给this._view <View ...
- centos7中修改运行级别
centos6 在centos6里打开vim /etc/inittab文件看到下面有一行 id:5:initdefault,因此我们可以通过修改这个文件的id后的数字来修改运行级别 如果我们想要直接切 ...
- 老哈佛H3的空调控制器的维修记录
这部哈弗车是2005年出厂的,应该差不多是第一批了吧,小毛病很多了.夏天到了,空调也不能启动,灯不亮,按键没反应令我很是着急.于是开始研究. 这款空调的控制器在cd机中控下面,需要拆中控取出.是一个黑 ...