1.  什么是Spring Cloud?

Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,主节点选举, 分布式session, 集群状态)。协调分布式环境中各个系统,为各类服务提供模板性配置。使用Spring Cloud, 开发人员可以搭建实现了这些样板的应用,并且在任何分布式环境下都能工作得非常好,小到笔记本电脑, 大到数据中心和云平台。

Spring Cloud官网的定义比较抽象,我们可以从简单的东西开始。Spring Cloud是基于Spring Boot的, 最适合用于管理Spring Boot创建的各个微服务应用。要管理分布式环境下的各个Spring Boot微服务,必然存在服务的注册问题。所以我们先从服务的注册谈起。既然是注册,必然有个管理注册中心的服务器,各个在Spring Cloud管理下的Spring Boot应用就是需要注册的client

Spring Cloud使用erureka server,  然后所有需要访问配置文件的应用都作为一个erureka client注册上去。eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳,在默认情况下erureka server也是一个eureka client ,必须要指定一个 server。

2.  创建Eureka Server

1).创建一个Maven工程helloworld.eureka.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>com.chry</groupId><artifactId>springcloud.helloworld.eureka.server</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springcloud.helloworld.Eureka.server</name><description>Demo Spring Eureka Server</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.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></properties><dependencies><!--eureka server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency>--><!-- spring boot test--><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>Dalston.RC1</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><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

2). 用Spring Boot创建一个服务类EurekaServerApplication,需要一个注解@EnableEurekaServer加在springboot工程的启动类上

  package springcloud.helloworld.eureka.server;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer@SpringBootApplicationpublic class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}}

3).eureka server的配置文件appication.yml,其中registerWithEureka:false和fetchRegistry:false表明自己是一个eureka server

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

4) eureka server的工程结构如下

5)启动eureka server,然后访问http://localhost:8761, 界面如下, "No instances available" 表示无client注册

3.  创建Eureka Client

1). 创建一个Maven工程helloworld.eureka.client, 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>com.chry</groupId><artifactId>springcloud.helloworld.eureka.client</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud.helloworld.eureka.client</name><packaging>jar</packaging><description>Demo Spring Boot Client</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.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></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>Dalston.RC1</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><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

2).  创建主类EurekaClientApplication

使用@EnableEurekaClient注解表明是client

 1 package springcloud.helloworld.eureka.client;2 3 import org.springframework.beans.factory.annotation.Value;4 import org.springframework.boot.SpringApplication;5 import org.springframework.boot.autoconfigure.SpringBootApplication;6 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;7 import org.springframework.web.bind.annotation.RequestMapping;8 import org.springframework.web.bind.annotation.RequestParam;9 import org.springframework.web.bind.annotation.RestController;
10
11 @SpringBootApplication
12 @EnableEurekaClient
13 @RestController
14
15 public class EurekaClientApplication {
16
17     public static void main(String[] args) {
18         SpringApplication.run(EurekaClientApplication.class, args);
19     }
20
21     @Value("${server.port}")
22     String port;
23     @RequestMapping("/")
24     public String home() {
25         return "hello world from port " + port;26     }
27
28 }

3) eureka client的配置文件appication.yml

1 eureka:
2     client:
3         serviceUrl:
4             defaultZone: http://localhost:8761/eureka/
5 server:
6     port: 8762
7 spring:
8     application:
9         name: service-helloworld

4). Client启动后, 可以访问http://localhost:8762

5). 再次访问服务器端口, 可以看到Service Helloworld已经自动注册到之前的server中

 

  • 参考资料:

    • Spring Cloud 官网
    • 博客: http://blog.csdn.net/forezp/article/details/70148833
    • 博客:https://www.cnblogs.com/chry/p/7248947.html

SpringCloud 入门教程(一): 服务注册相关推荐

  1. SpringCloud 入门教程(四): 分布式环境下自动发现配置服务

    前一章, 我们的Hello world应用服务,通过配置服务器Config Server获取到了我们配置的hello信息"hello world". 但自己的配置文件中必须配置co ...

  2. SpringCloud 入门教程(五): Ribbon实现客户端的负载均衡

    接上节,假如我们的Hello world服务的访问量剧增,用一个服务已经无法承载, 我们可以把Hello World服务做成一个集群. 很简单,我们只需要复制Hello world服务,同时将原来的端 ...

  3. 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)

    文章目录 SpringCloud 1. 认识微服务 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 1.5 总结 2. 服务拆分和远程调用 2.1 服务拆分原则 ...

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

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

  5. 巧玩SpringCloud——使用Eureka搭建服务注册中心与服务发现

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/84549747 本文出自[我是干勾鱼的博客] Ingredient: Java:J ...

  6. SpringBoot 2 使用 SpringCloud Netflix Eureka 实现服务注册与发现

    开篇词 该指南将引导你启动和使用 Netflix Euraka 服务注册表. 你将创建的应用 我们将搭建 Netflix Eureka 服务注册表,然后构建一个客户端,该客户端将同时在注册表中注册并使 ...

  7. SpringCloud学习笔记:服务注册与发现Eureka(2)

    1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...

  8. SpringCloud创建Eureka Client服务注册

    1.说明 本文详细介绍微服务注册到Eureka的方法, 即Eureka Client注册到Eureka Server, 这里用任意一个Spring Cloud服务为例, 比如下面已经创建好的Confi ...

  9. SpringCloud(三) Eureka之服务注册发现以及实现工程间调用

    概述:本章节将介绍Eureka客户端如何与EurekaServer端链接,以及生产者工程如何将服务注册到Eureka注册中心中去,消费者工程怎么从EurekaServer端获取生产者工程的服务地址,并 ...

最新文章

  1. php admin配置my sql,安装Mysqlphpadmin
  2. python中类方法与实例方法的区别-python中类方法、类实例方法、静态方法的使用与区别...
  3. java 热替换_class卸载、热替换和Tomcat的热部署的分析
  4. BZOJ 4584 [Apio2016]赛艇
  5. 判断frame是否已创建_大白菜的ROS笔记(8)(创建TF广播和监听,内容很多,细节满满)...
  6. 初识 HTML5(一)
  7. javascript 给php传值_2020年PHP面试题附答案(实战经验)
  8. Docker Nexus3 maven 私服(搭建篇)
  9. HTML5的Histroy API
  10. 力扣429. N 叉树的层序遍历(JavaScript)
  11. [开源]KJFramework.Message 智能二进制消息框架 - 新能力
  12. 【蓝桥结果填空】:时间显示
  13. ios中怎么样调节占位文字与字体大小在同一高度
  14. 从Linux程序中执行shell(程序、脚本)并获得输出结果(转)
  15. Jsp 中 include 指令和 include 动作的区别
  16. 《EDA前端软件开发工程师面试指南》
  17. layui上传多张图片
  18. 安全bios手册(5)
  19. DNA甲基化芯片探针的P值如何计算
  20. Mathmatica的学习打卡day 16

热门文章

  1. 如何查看keepalived版本号_Keepalived介绍 , 配置说明 , 及实际应用
  2. ado.net mysql 连接池_ADO.NET数据连接池
  3. windows rt c语言,有arm架构的windows平板吗??与x86的win有什么不同?arm写c语言怎样?
  4. element label动态赋值_基于Element封装可拖动放大缩小的弹窗
  5. 支持国产处理器仿真的全数字实时仿真平台SkyEye与可信编译器L2C的核心翻译步骤
  6. 将xscj指定为当前数据库_通过网络连接数据库模式Hive的搭建过程详解
  7. python变量和数据类型_python的变量和数据类型
  8. python 根据时间间隔删除文件夹内修改时间比较早的文件
  9. 浏览器解析JavaScript的原理
  10. opencv图像处理时使用stringstream批量读取图片,处理后并保存