创建服务的注册与发现 Eureka (四)
一、eureka注册中心
1、创建一个工程
工程名:microservicecloud-eureka-7001
2、向pom文件中增加如下:
<dependencies>
<!--eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
3、添加application.yml文件
server:
port: 7001
eureka:
instance:
hostname: localhost #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。Eureka不响自己注册
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ (单机)
#设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
4、增加服务启动类,并在类上增加 @EnableEurekaServer 注解, 如下所示:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer // EurekaServer服务器端启动类,接受其它微服务注册进来
public class EurekaServer7001
{
public static void main(String[] args)
{
SpringApplication.run(EurekaServer7001.class, args);
}
}
5、启动服务,在浏览器中打开 http://localhost:7001,显示如下图

二、服务注册到Eureka
1、创建工程
工程名:microservicecloud-provider-dept-8001
2、在pom.xml文件,新增Eureka的客户端依赖,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
3、配置文件application.yaml,新增如下内容:
eureka:
client: # 客户端注册进eureka内
service-url:
defaultZone: http://localhost:7001/eureka/
application.yaml中的全部内容如下:
server:
port: 8001 mybatis:
config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路径
type-aliases-package: com.yufeng.springcloud.entities # 所有Entity别名类所在包
mapper-locations:
- classpath:mybatis/mapper/**/*.xml # mapper映射文件 spring:
application:
name: microservicecloud-dept
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包
url: jdbc:mysql://192.168.172.20:3306/cloudDB01 # 数据库名称
username: root
password: root
dbcp2:
min-idle: 5 # 数据库连接池的最小维持连接数
initial-size: 5 # 初始化连接数
max-total: 5 # 最大连接数
max-wait-millis: 200 # 等待连接获取的最大超时时间 eureka:
client: # 客户端注册进eureka内
service-url:
defaultZone: http://localhost:7001/eureka/
4、代码的启动类中增加 @EnableEurekaClient 注解;
@SpringBootApplication
@EnableEurekaClient
public class DeptProvider8001_App
{
public static void main(String[] args)
{
SpringApplication.run(DeptProvider8001_App.class, args);
}
}
5、按照顺序启动服务,先启动 eureka7001 服务,接着启动 microservicecloud-provider-dept-8001 服务,浏览器打开: http://localhost:7001

三、服务的发现
对于注册到Eureka里面的微服务,可以通过服务发现来获得该服务的信息。
1、在服务提供的微服务的controller注入DiscoveryClient类
@RestController
public class DeptController
{
@Autowired
//@Resource(name = "deptServiceImpl")
private DeptService service; @Autowired
private DiscoveryClient discoveryClient; @RequestMapping(value = "/dept/add", method = RequestMethod.POST)
public boolean add(@RequestBody Dept dept)
{
return service.add(dept);
} @RequestMapping(value = "/dept/discovery", method = RequestMethod.GET)
public Object discovery()
{
List<String> list = discoveryClient.getServices(); //发现eureka中的微服务列表
System.out.println("eureka中所有的微服务的name列表" + list); //从eureka中获取指定name的微服务的信息(yml文件中配置的 spring.application.name)
List<ServiceInstance> instances = discoveryClient.getInstances(list.get(0));
for(ServiceInstance instance : instances)
{
System.out.println(instance.getServiceId() + "\t" + instance.getHost() + "\t"
+ instance.getPort() + "\t" + instance.getUri());
}
return this.discoveryClient;
}
}
2、启动类中增加 @EnableDiscoveryClient 注解
@SpringBootApplication
@EnableEurekaClient //本服务启动后自动注册到eureka中
@EnableDiscoveryClient //服务的发现, 暴露出来
public class DeptProvider8001_App
{
public static void main(String[] args)
{
SpringApplication.run(DeptProvider8001_App.class, args);
}
}
创建服务的注册与发现 Eureka (四)的更多相关文章
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(转载)
SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 转载请标明出处:http://blog.csdn.net/forezp/article/details ...
- SpringCloud-微服务的注册与发现Eureka(二)
一.SpringCloud简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...
- SpringCloud-微服务的注册与发现Eureka
一.SpringCloud简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...
- 服务的注册与发现Eureka(二)
1.服务治理概念 在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用.负载均衡.容错等,实现服务发现与注册. 2.服务的注册与 ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
一.spring cloud简介 鉴于<史上最简单的Spring Cloud教程>很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEAS ...
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 本文出自方志朋的博客 一.spring ...
- 第一篇:服务的注册与发现Eureka(Finchley版本)
一.创建服务注册中心(Eureka) 1. 首先创建一个maven主工程 创建一个主Maven工程,在其pom文件引入依赖,spring Boot版本为2.0.3.RELEASE,Spring Clo ...
- SpringCloud学习(一)服务的注册与发现Eureka(Finchley版本)
创建服务注册中心 在这里,我还是采用Eureka作为服务注册与发现的组件. 首先创建一个空项目 首先创建一个空项目,再创建一个maven项目,首先创建一个主Maven工程,在其pom文件引入依赖,sp ...
- 微服务深入浅出(3)-- 服务的注册和发现Eureka
现来说一些Eureka的概念: 1.服务注册 Register 就是Client向Server注册的时候提供自身元数据,比如IP和Port等信息. 2.服务续约 Renew Client默认每隔30s ...
随机推荐
- LayaAir疑难杂症之一:List渲染无法生效
问题描述 使用Laya的list来做图片列表展示,无法渲染list. 原因分析 根据官网提供的文档,要将list的renderType设置为render,如图所示: 完全按照官网示例做的,但是还是 ...
- 图表相同数据会自动合并问题(finereport)
finereport中,对于图表的操作,当遇到需要显示多个重复分类下的多个值时,由于自动合并相同数据,无法达到效果反复查询手册无果后,困扰好久,终想到了一个解决的办法:1.给查询的数据添加个列序号,每 ...
- mysql 5.5数据导入5.7 Failed - Error on Table user - 1067 - Invalid default value for 'CREATE_date'
表结构是这样 DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (....省略了一些无关紧要的字段 `CREATE_DATE_` timestamp NO ...
- Golang 包管理简介
Golang 包管理 在一个项目里,如果想引用本地包,经常会把新手搞的莫名其妙.这里通俗记录一下. 首先先要知道几个默认的规则 必须定义环境变量GOPATH,GOPATH可以定义多个目录 所有项目代码 ...
- 关于mysql 表导入数据
一.实验准备: 1.实验设备:Dell laptop 7559; 2.实验环境:windows 10操作系统; 3.数据库版本:mysql 8.0; 二.实验目的: 1.将一个宠物表pet.txt文件 ...
- bootstrap-datetimepicker 时间配置,包含颜色
if ($('.isdatetimepicker')!=undefined&&$('.isdatetimepicker').datetimepicker!=undefined) { / ...
- Swoft 图片上传与处理
上传 在Swoft下通过 \Swoft\Http\Message\Server\Request -> getUploadedFiles()['image'] 方法可以获取到一个 Swoft\Ht ...
- nvm管理node版本
一.介绍与作用 不同的项目中可能使用的node版本不同,对于维护多个版本的node就是一件麻烦事了,而nvm就可以很方便的管理不同的node版本, 可以在不同的node版本间切换使用.NVM资源(针对 ...
- UI测试和GUI测试的区别
UI 测试 包含GUI测试和command line 测试 分享连接 https://www.ranorex.com/resources/testing-wiki/gui-testing/
- Window下安装Scala出现:此时不应有 \scala\bin\..\lib\jline-2.14.5.jar
scala默认安装到了Program Files (x86)文件夹下.目录中有空格,空格就是导致这个问题的根本原因 把scala安装到其他目录即可 配置scala环境 在环境变量的系统变量里面添加SC ...