第二篇:SpringCloud 服务的注册与发现Eureka(Dalston.SR5版本)
一.创建父工程
1 首先创建一个maven父工程。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zhihua</groupId><artifactId>spring_cloud_pro</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>spring_cloud_pro</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.13.RELEASE</version></parent><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR5</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
二 . 创建Eureka Server
2 然后创建2个子工程工程: 一个model工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client。
下面以创建Eureka Server为例子,详细说明创建过程:
右键工程->创建model-> 选择spring initialir 如下图:
创建完后的工程,其pom.xml继承了父pom文件,同时父工程加入相应的model,引入依赖,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zhihua</groupId><artifactId>eureka_server</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>eureka_server</name><description>Demo project for Spring Boot</description><parent><groupId>com.zhihua</groupId><artifactId>spring_cloud_pro</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.RELEASE</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>**重点内容**
</project>
3 启动一个服务注册中心
只需要一个注解@EnableEurekaServer,这个注解需要在springboot工程的启动application类上加:
@SpringBootApplication
@EnableEurekaServer //eureka服务
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
4 配置文件appication.yml
spring:application:name: eureka-server #服务名称
server:port: 8761 #端口号
eureka:client:register-with-eureka: false #eureka服务自身也是个客户端 此处因为是单机版关闭fetch-registry: false #同上service-url:defaultZone: http://localhost:8761/eureka #服务端默认地址
5 eureka server 启动工程,打开浏览器访问:
http://localhost:8761 ,界面如下:
三、创建一个服务提供者 (eureka client)
当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。
此处同样是通过jpa查询数据库,具体代码参照上一章节
userControlle类:
package com.zhihua.eureka_client.controller;import com.netflix.appinfo.InstanceInfo;
import com.netflix.discovery.EurekaClient;
import com.zhihua.eureka_client.entity.User;
import com.zhihua.eureka_client.jpa.UserJpa;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.*;@RestController
public class userController {@Autowiredprivate UserJpa userJpa;@Autowiredprivate EurekaClient eurekaClient;@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/simple/{id}")public User findById(@PathVariable Long id){User user = userJpa.getOne(id);return user;}@PostMapping(value = "/user")public User postUser(@RequestBody User user){return user;}@GetMapping(value = "/getUser")public User getUser(User user){return user;}@GetMapping("/eureka-instance")public String serviceUrl() {InstanceInfo instance = this.eurekaClient.getNextServerFromEureka("EUREKA-SERVER", false);return instance.getHomePageUrl();}@GetMapping("/instance-info")public ServiceInstance showInfo() {ServiceInstance localServiceInstance = this.discoveryClient.getLocalServiceInstance();return localServiceInstance;}}
创建过程同server类似,创建完pom.xml如下:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></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><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency></dependencies>
通过注解@EnableEurekaClient 表明自己是一个eurekaclient.
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}
}
配置文件appication.yml
server:port: 9060
spring:application:name: eureka-clientdatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost/test?characterEncoding=utf8username: rootpassword: 123456jpa:properties:hibernate:show_sql: trueformat_sql: true
eureka:instance:hostname: localhostprefer-ip-address: trueclient:healthcheck:enabled: trueservice-url:defaultZone: http://${eureka.instance.hostname}:8761/eureka/
启动工程,打开http://localhost:8761 ,即eureka server 的网址
你会发现一个服务已经注册在服务中了,服务名为SERVICE-HI ,端口为9060
此时的项目:
第二篇:SpringCloud 服务的注册与发现Eureka(Dalston.SR5版本)相关推荐
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka
SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 原文首发于:https://www.fangzhipeng.com/springcloud/2018/ ...
- 第一篇:服务的注册与发现Eureka(Finchley版本)V2.0_dev
Eureka 简介: Eureka是Netflix 开源的服务发现组件, Spring Cloud 将其集成在 Spring Cloud Netflix 中,实现服务的注册和发现.Eureka 主要包 ...
- 业余草 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xmt1139057136/article/details/81411887 一.spring clo ...
- 最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
一.spring cloud简介 鉴于<史上最简单的Spring Cloud教程>很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEAS ...
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/81040925 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...
- SpringCloud教程-服务的注册与发现Eureka(SpringCloud版本Finchley)
文章目录 SpringCloud简介 创建注册中心(基于Eureka) 创建maven工程 创建maven子工程 eureka-server服务端pom文件 eureka-server服务端配置文件 ...
- SpringCloud教程第一篇 | 服务的注册与发现
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录 前言 一.Eureka是什么? 1 ...
- SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
最新文章
- cannot import name 'imresize'. The package prm under namespace prm could not be imported
- CentOS7援救模式下更改密码
- 前端如何搭建一个成熟的脚手架
- 《 Spring1之第二次站立会议(重发)》
- 工业以太网交换机的概念及其主要功能介绍
- liunx-mysql-password重置(初始化)
- Android 屏幕适配攻略(六)设置通知样图标与启动图标适配
- MATLAB的full,matlab中sparse和full函数的使用
- linux下LAMP环境的搭配
- sonar 加载mysql_sonar安装配置
- 华为是怎样研发的(1)——概述
- 调侃:《金枝欲孽》里的职场人生
- 第12课:如何理解技术管理者(上)
- 深度学习GPU选购指南:哪款显卡配得上我的炼丹炉?
- 4、基本命令-系统管理
- 十大物联网名词,专业人士才懂全!
- 2022年RoboCom机器人开发者大赛CAIR广东省赛本科组第一的心路历程(不定期更新)
- CSS 背景色 背景图片 渐变背景 - 径向渐变 background-image:radial-gradient()
- 我在 GitHub 上读清华
- 通过高通平台简单总结的权限问题