一.创建父工程

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版本)相关推荐

  1. SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka

    SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) 原文首发于:https://www.fangzhipeng.com/springcloud/2018/ ...

  2. 第一篇:服务的注册与发现Eureka(Finchley版本)V2.0_dev

    Eureka 简介: Eureka是Netflix 开源的服务发现组件, Spring Cloud 将其集成在 Spring Cloud Netflix 中,实现服务的注册和发现.Eureka 主要包 ...

  3. 业余草 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xmt1139057136/article/details/81411887 一.spring clo ...

  4. 最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    一.spring cloud简介 鉴于<史上最简单的Spring Cloud教程>很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEAS ...

  5. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/81040925 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhi ...

  6. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...

  7. SpringCloud教程-服务的注册与发现Eureka(SpringCloud版本Finchley)

    文章目录 SpringCloud简介 创建注册中心(基于Eureka) 创建maven工程 创建maven子工程 eureka-server服务端pom文件 eureka-server服务端配置文件 ...

  8. SpringCloud教程第一篇 | 服务的注册与发现

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录 前言 一.Eureka是什么? 1 ...

  9. SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

最新文章

  1. cannot import name 'imresize'. The package prm under namespace prm could not be imported
  2. CentOS7援救模式下更改密码
  3. 前端如何搭建一个成熟的脚手架
  4. 《 Spring1之第二次站立会议(重发)》
  5. 工业以太网交换机的概念及其主要功能介绍
  6. liunx-mysql-password重置(初始化)
  7. Android 屏幕适配攻略(六)设置通知样图标与启动图标适配
  8. MATLAB的full,matlab中sparse和full函数的使用
  9. linux下LAMP环境的搭配
  10. sonar 加载mysql_sonar安装配置
  11. 华为是怎样研发的(1)——概述
  12. 调侃:《金枝欲孽》里的职场人生
  13. 第12课:如何理解技术管理者(上)
  14. 深度学习GPU选购指南:哪款显卡配得上我的炼丹炉?
  15. 4、基本命令-系统管理
  16. 十大物联网名词,专业人士才懂全!
  17. 2022年RoboCom机器人开发者大赛CAIR广东省赛本科组第一的心路历程(不定期更新)
  18. CSS 背景色 背景图片 渐变背景 - 径向渐变 background-image:radial-gradient()
  19. 我在 GitHub 上读清华
  20. 通过高通平台简单总结的权限问题

热门文章

  1. html5实现定位签到,H5+百度地图实现移动端考勤定位打卡
  2. 手把手教学51单片机第三课 | 复位电路、数码管静态显示
  3. 阿拉德之怒获取服务器配置文件失败,阿拉德之怒为什么安装失败?阿拉德之怒安装失败解决方案...
  4. 记第一次codeforces比赛经历
  5. 医美行业舆情工作重点分析
  6. 最简单的太阳能光伏发电系统
  7. js基础笔记(持续更新)
  8. kuangbin 专题一 简单搜索
  9. Debian学习笔记
  10. 2018杭州应届生php起薪,2018应届毕业生起薪排名出炉,这个专业起薪最高!