Spring Cloud中使用Eureka来做服务注册和发现,来统一管理微服务实例。

  1.使用IDEA创建一个空的Maven项目做父模块

  (也可以不用父项目,所有模块都用平行结构)

  

  删除父模块src文件夹

  

  可使用Spring Initializr来创建模块或者创建Maven项目手动添加依赖

  2.使用Spring Initializr创建Eureka Server

  选择SDK 1.8

  

  Artifact填写对应模块的名称

  

  依次选择Cloud Discovery->Eureka Server,Spring Boot默认选择的是2.0.4

  

  可以参考Spring Cloud官方对应的Spring Cloud版本对应组件的版本,可以看到Finchley.SR1对应的是Spring Boot 2.0.4.RELEASE版

  https://projects.spring.io/spring-cloud/

  

  创建好后会还原Maven项目的依赖,需要一段时间。

  2.1配置Eureka Server注解
  还原成功后会生成一个模块名称+Application的启动类,在类名上加上@EnableEurekaServer注解用来申明这是个Eureka服务器

  

  2.2配置Eureka Server配置文件

  配置文件可参考号官方文档,找到对应的Spring Cloud版本,点击Reference。

  

  http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#spring-cloud-eureka-server

  搜索找到Standalone Mode单机模式

  

  

  将项目中的application.properties后缀名改为yml,把application.yml的配置文件内容复制到项目中。

  port为服务的端口,可以自定义,我这里把端口改为了8881
  idea使用Debug启动成功后,在浏览器输入:http://localhost:8881/ 有一下内容则说明该服务启动成功。

  

  

  3.使用Maven项目创建Eureka Server

  创建一个空的Maven项目,在父模块创建的会自动选中父模块

  

  将项目中的pom文件parent节点全部删除,到Spring Cloud官网复制Maven项目的依赖相关内容到pom文件的project节点下

  

  官网的依赖文件是Eureka客户的依赖,把dependencies节点下的依赖都删除

  添加Eureka Server的依赖:  

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

  再添加Spring Cloud版本属性

<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.SR1</spring-cloud.version>
</properties>

  在resources文件夹中添加application.yml文件,并设置为资源根目录,配置文件内容和第一一样,改下端口为:8882

  

  新建启动类(项目名+Application.java),写一个main方法启动Spring Boot程序,并加上Eureka Server的注解

  

  配置Spring Boot启动配置项

  

  选择对应的启动类

  

  启动该模块,成功后再浏览器输入:http://localhost:8882/,使用Maven创建的Eureka Server项目也成功启动了

  

  4.创建Eureka Server集群

  集群的作用是一个服务复制多份实例,当某一个实例挂掉后不至于影响整个系统,Eureka Server集群中的每个实例都是相互复制来保障所注册的服务一致。

实际生产环境中只要有一个Eureka Server通过不同的实例对应配置不同的端口来实现,为方便演示,我这里创建集群就采用刚刚创建的两个不同的Eureka Server来做。

  在官方文档中搜索:Peer Awareness
  http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#spring-cloud-eureka-server-peer-awareness
  找到对应的集群配置

  

  修改Host文件,添加 127.0.0.1 peer1 peer2,并将服务名设置一样

  服务1配置:

  

server:
port: 8881 eureka:
instance:
hostname: peer1
client:
registerWithEureka: true #把自身当做客户端注册到其他Eureka服务器
fetchRegistry: true #在本地缓存所有实例注册信息
serviceUrl:
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
##指向另一个注册中心
defaultZone: http://peer2:8882/eureka/ spring:
#profiles: peer1 #没做环境配置,注释掉
application:
name: tmsapi-discovery-server

  服务2配置:

server:
port: 8882 eureka:
instance:
hostname: peer2
client:
registerWithEureka: true #把自身当做客户端注册到其他Eureka服务器
fetchRegistry: true #在本地缓存所有实例注册信息
serviceUrl:
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。
##指向另一个注册中心
defaultZone: http://peer1:8881/eureka/ spring:
#profiles: peer2 #没做环境配置,注释掉
application:
name: tmsapi-discovery-server

  启动两个服务,成功浏览器输入:http://peer1:8881/ 和http://peer2:8882/,同一个Application中就有两个实例了
  peer1:

  

  peer2:

  

  至此Eureka Server集群就搭建成功了。

  Eureka相关资料:

  https://blog.csdn.net/neosmith/article/details/53131023

升级微服务架构1:搭建Eureka Server服务中心的更多相关文章

  1. 升级微服务架构5:API网关

    API网关是一个服务器,是系统的唯一入口.从面向对象设计的角度看,它与外观模式类似.API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具有其它职责,如身份验证.监控.负载均衡.缓 ...

  2. Spring Cloud之服务注册中心搭建Eureka Server服务注册中⼼

    Spring Cloud并不与Spring MVC类似是一个开源框架,而是一组解决问题的规范(个人理解).解决哪些问题呢?如下: 1)服务管理:⾃动注册与发现.状态监管 2)服务负载均衡 3)熔断 4 ...

  3. Spring Cloud微服务实践之路- Eureka Server 中的第一个异常

    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER ...

  4. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  5. 微服务架构集大成者—Spring Cloud (转载)

    软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...

  6. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  7. 从 Spring Cloud 开始,聊聊微服务架构实践之路

    [编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. ...

  8. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  9. Spring Cloud与Docker微服务架构实战 PDF

    电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...

随机推荐

  1. Python | 浅谈并发锁与死锁问题

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第24篇文章,我们一起来聊聊多线程场景当中不可或缺的另外一个部分--锁. 如果你学过操作系统,那么对于锁应该不陌生. ...

  2. 救救孩子吧,到现在还搞不懂TCP的三次握手四次挥手

    本文在个人技术博客同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩...   前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻 ...

  3. Java并发--三大性质

    一.多线程的三大性质 原子性:可见性.有序性 二.原子性 原子性介绍 原子性是指:一个操作时不可能中断的,要么全部执行成功要么全部执行失败,有着同生共死的感觉.即使在多线程一起执行的时候,一个操作一旦 ...

  4. 【服务器部署】Django+宝塔+Nginx_uwsgi部署

    :CentOS安装脚本: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install ...

  5. 洛谷 P6218 [USACO06NOV] Round Numbers S

    洛谷 P6218 [USACO06NOV] Round Numbers S 题目描述 如果一个正整数的二进制表示中,\(0\) 的数目不小于 \(1\) 的数目,那么它就被称为「圆数」. 例如,\(9 ...

  6. Spark QuantileDiscretizer 分位数离散器

    1.概念 接收具有连续特征的列,并输出具有合并分类特征的列.按分位数,对给出的数据列进行离散化分箱处理. 和Bucketizer(分箱处理)一样也是:将连续数值特征转换为离散类别特征.实际上Class ...

  7. eclipse及idea使用问题记录

    使用eclipse或idea的时候会遇到各式各样的小问题,解决方案其实网上也大都搜得到,但是下次遇到的时候总是想不起来如何解决,还要花费时间再次查资料.所以以后把遇到的问题都记录一下. Eclipse ...

  8. Java 添加条码、二维码到PDF文档

    本文介绍如何通过Java程序在PDF文档中添加条码和二维码.创建条码时,可创建多种不同类型的条码,包括Codebar.Code11.Code128A.Code128B.Code32.Code39.Co ...

  9. Linux 资源监控与性能测试

    综合管理 glances 系统情况监控 vmstat 能看到上下文切换,runnable进程个数,uninterrupted进程个数 磁盘IO iostat是磁盘级别监控,iotop进程级别监控,注意 ...

  10. Java数据结构——2-3树

    定义2-3树是平衡的3路查找树,其中2(2-node)是指拥有两个分支的节点,3(3-node)是指拥有三个分支的节点.B-树是一种平衡的多路查找树,2-3树属于b-树,其也同样具有B-树的性质,如m ...