一、spring cloud简介

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。

二、创建服务注册中心

2.1 首先创建一个maven主工程。

2.2 然后创建2个工程

一个model工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client。

下面以创建server为例子,详细说明创建过程:
创建完后的工程的pom.xml文件如下:

<?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>cn.easted</groupId><artifactId>com</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>com</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</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>Dalston.SR3</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><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.3 启动一个服务注册中心

@EnableEurekaServer //启动一个服务注册中心
@SpringBootApplication
public class ComApplication {public static void main(String[] args) {SpringApplication.run(ComApplication.class, args);}
}

2.4 eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳(因此可以在内存中完成),在默认情况下erureka server也是一个eureka client ,必须要指定一个 server。eureka server的配置文件appication.yml:

server:port: 8761eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.

2.5 eureka server 是有界面的,启动工程,打开浏览器访问:

http://localhost:8761 ,界面如下:

三、创建一个服务提供者 (eureka client)

当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。
创建过程同server类似,创建完pom.xml如下:

<?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>cn.easted</groupId><artifactId>com</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>com</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</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>Dalston.SR3</spring-cloud.version></properties><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

通过注解@EnableEurekaClient 表明自己是一个eurekaclient.

@EnableEurekaClient
@RestController
@SpringBootApplication
public class ComApplication {public static void main(String[] args) {SpringApplication.run(ComApplication.class, args);}@Value("${server.port}")String port;@RequestMapping("/hi")public String home(@RequestParam String name) {return "hi " + name + ",I am from port:" + port;}
}

仅仅@EnableEurekaClient是不够的,还需要在配置文件中注明自己的服务注册中心的地址,application.yml配置文件如下:

eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
server:port: 8762
spring:application:name: service-hi

需要指明spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name 。
启动工程,打开http://localhost:8761 ,即eureka server 的网址:

你会发现一个服务已经注册在服务中了,服务名为SERVICE-HI ,端口为8762

这时打开 http://localhost:8762/hi?name=wh ,你会在浏览器上看到 :

hi wh,I am from port:8762

SpringCloud : 服务的注册与发现(Eureka)相关推荐

  1. 第二篇:SpringCloud 服务的注册与发现Eureka(Dalston.SR5版本)

    一.创建父工程 1 首先创建一个maven父工程. <?xml version="1.0" encoding="UTF-8"?> <proje ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. Java技术栈学习之SpringCloud服务的注册与发现(Eureka)

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

  9. SpringCloud学习教程一( 服务的注册与发现 Eureka)

    本文是根据方志明的springCloud学习教程进行个人细化,记录个人学习的教程可能会做一些小的修改让文章更便于理解, 原著参考案例全部采用Spring Boot 1.5.x ,Spring Clou ...

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

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

最新文章

  1. MXNet动手学深度学习笔记:卷积计算
  2. 多线程之Java内存模型(JMM)(一)
  3. linux下hg无法运行_在 Windows 里也可以访问 Linux 子系统文件了
  4. 嵌入式Linux系统运行流程图
  5. pyinstaller打包执行exe出现“ModuleNotFoundError: No module named ‘scipy.spatial.transform._rotation_group”
  6. Android OkHttp3简介和使用详解
  7. 使用CancellationToken——而不是Thread.Sleep
  8. x86_64平台编译链接汇编程序
  9. 英特尔® 硬件加速执行管理器安装指南 — Mac OS X*
  10. python必背100源代码-学会这个Python库,至少能减少100行代码
  11. 利用ASPJPEG组件生成中文验证码
  12. git遇到的错误集锦及解决方法
  13. python 中的拷贝、浅拷贝与深拷贝
  14. WebGL简易教程(十五):加载gltf模型
  15. 中央农村工作会议释放重要信号,AI 技术助力农业的十种路径,未来可期
  16. 台式机:喇叭+麦克风二合一转接头DIY
  17. win10 WmiPrvSE.exe WMI Provider 占用CPU过高的问题
  18. 谷歌卫星地图下载器bigemap的优势
  19. VR全景拍摄结合更多的市场刚需,为云端生活赋能
  20. 什么是平台,为何能成为平台?我们缘何进入了一个被平台控制的世界?

热门文章

  1. 只能获取fixed语句初始值_VBA使用Sleep API暂停函数实现延时获取数据
  2. 中文分词和HMM模型
  3. BTrace工具(linux版)---线上调试神器
  4. element-ui 点击增加/减少一行
  5. python编程中如何实现邮件的自动发送
  6. 小米web前端实习面经
  7. 崩坏3服务器维护2月8号,崩坏33月5日更新维护时间 崩坏33.8版本更新维护内容
  8. Python 毕业设计 - 基于 opencv 的人脸识别上课考勤系统,附源码
  9. 新版BIOS设置U盘启动
  10. 常见的几个网络安全问题,你都知道吗?