Netflix(奈飞或网飞,这家公司的企业文化值得学习),推出的SpringCloud版本,可以说是早期比较成熟的微服务解决方案。

后来Netflix放弃了SpringCloud相关服务组件的维护更新,Alibaba版SpringCloud就顺势而为。

本篇简单记录下Netflix版SpringCloud的工程结构,权当编程思想借鉴,不作技术参考(可以说已是过时了的技术)。

1. 单机版eureka

eureka,意为找到了,发现了,作为服务注册中心,就类似zookeeper的角色,或者AlibabaCloud中的nacos。

1.1 pom

<?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.demo</groupId><artifactId>eureka-server</artifactId><version>0.0.1</version><packaging>jar</packaging>
​<name>eureka-server</name><description>Demo project for Spring Boot</description>
​<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.12.RELEASE</version><relativePath/></parent>
​<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><!--cloud与SpringBoot LTS版兼容,如:1.5.12.RELEASE--><spring-cloud.version>Edgware.SR3</spring-cloud.version></properties>
​<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-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>
​<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>

1.2 yml

server:port: 8888spring:application:name: eureka-server## 默认情况下eureka server也是一个eureka client ,必须要指定一个 server
## 通过eureka.client.registerWithEureka:false和fetchRegistry:false
## 来表明自己是一个eureka server
eureka:instance:hostname: localhostclient:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

1.3 application

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
​
/*** 启动服务注册中心* 访问 http://localhost:8888可以查看server服务注册情况 */
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
​public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}

1.4 monitor

2. 集群版eureka

作为服务注册中心,如果是单机版,就会存在单点故障。因此,实际生产环境中,eureka也是集群部署的。

eureka集群,其实也就是eureka服务部署多个节点,相互注册发现,关联起来即可。下面以两个eureka服务节点集群为例。

2.1 pom (同1.1)

2.2 yml

准备工作(本地环境域名解析,实际生产环境为真实域名DNS解析):

## 修改hosts,
## [windows] c:/windows/System32/drivers/etc/hosts

## [linux] vim /etc/hosts,加上:

## 127.0.0.1 peer1
## 127.0.0.1 peer2

application.yml

spring:application:name: eureka-server## 启动不同的服务节点时,对应激活节点配置文件即可## java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer2profiles:active: peer1  

application-peer1.yml

server:port: 8888
​
eureka:instance:hostname: peer1client:serviceUrl:defaultZone: http://peer2:8889/eureka/

application-peer2.yml

server:port: 8889
​
eureka:instance:hostname: peer2client:serviceUrl:defaultZone: http://peer1:8888/eureka/

2.3 application

# 进入pom文件所在目录位置执行cmd打包(或直接使用IDEA工具打包

mvn package

java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer1

java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer2

/*** 启动服务注册中心* http://localhost:8888/ 可以查看第一个server服务注册情况* http://localhost:8889/ 可以查看第二个server服务注册情况*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}

先后启动peer1, peer2两个节点服务,发现peer1刚启动时会报错,这是因为peer1会到peer2上去注册服务,发现peer2服务尚未启动,所以报错了,可以忽略不计,待peer2服务节点启动后,peer1就会发现peer2并相互注册服务,关联到一起成为集群的注册中心服务。

2.4 monitor

访问peer1 :

http://peer1:8888

访问peer2 :

http://peer2:8889

3. eureka client (micro-service)

这里所说的eureka client就是所谓的具有专属业务功能模块划分的微服务了

3.1 pom (同1.1)

3.2 yml

server:port: 8887
## 需要指明spring.application.name,这个很重要,
## 这在以后的服务与服务之间相互调用一般都是根据这个name
spring:application:name: eureka-clienteureka:client:serviceUrl:defaultZone: http://peer1:8888/eureka/,http://peer2:8889/eureka/

3.3 application

启动eureka-client 微服务​​‍

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
​
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {
​public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}}

3.4 monitor

任意访问peer1 或 peer2注册中心服务节点,都可以看到刚启动的eureka-client微服务已经注册上来了。

Netflix SpringCloud-Eureka相关推荐

  1. SpringCloud Eureka自我保护机制

    转载自 SpringCloud Eureka自我保护机制 自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他 ...

  2. springcloud Eureka服务注册和发现

    一,Eureka基本介绍: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...

  3. SpringCloud笔记(Hoxton)——Netflix之Eureka服务注册与发现

    基础应用 Eureka简介 Eureka是一个基于REST的服务,主要在AWS云中使用,定位服务来进行中间层服务器的负载均衡和故障转移. SpringCloud封装了Netflix公司开发的Eurek ...

  4. SpringCloud Eureka初体验

    文章目录 Eureka Server 创建Eureka Server项目 配置application.properties 增加@EnableEurekaServer注解 访问Eureka Serve ...

  5. SpringCloud eureka服务状态监听

    一.前言 近期由于公司不同平台项目之间的业务整合,需要做到相互访问! 每个平台均有自己的注册中心和服务,且注册中心相互之间并没有相互注册! 借助spring的事件监听,在eureka-server端监 ...

  6. spring-cloud eureka注册发现

    idea新建一个eureka server服务 application.yml 配置: spring:application:name: eureka-serverserver:port: 7000e ...

  7. 【Java从0到架构师】SpringCloud - Eureka、Ribbon、Feign

    SpringCloud 分布式.微服务相关概念 微服务框架构选型 SpringCloud 概述 服务注册与发现 - Eureka 案例项目 Eureka 自我保护机制 微服务调用方式 - Ribbon ...

  8. SpringCloud——Eureka服务注册和发现

    一.SpringCloud和Dubbo SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题. content Dubbo SpringCloud ...

  9. SpringCloud/Eureka/Ribbon:No instances available for springcloud-provider-dept

    服务注册方: <!--eureka server--> <dependency><groupId>org.springframework.cloud</gro ...

  10. SpringCloud Eureka Client 源码

    这里主要学习一下EurekaClient,通过上一篇学习了解到,Client的功能主要有这么几个: 服务注册 服务续约 服务发现 服务下线 维护集群节点(未写完) 而这些功能主要由netflix eu ...

最新文章

  1. java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?
  2. javaweb设置servlet
  3. python时间序列滞后命令_如何在Python Pandas回归模型中使用滞后的时间序列变量?...
  4. 复制迁移数据库表数据程序
  5. 2.IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)
  6. 如何查看某个用户指定时间段的ABAP开发记录
  7. 【C语言简单说】五:常用运算符
  8. 学java前要学css_教你一招:学习Java必须学会的CSS用法
  9. python该怎样使用_Python 应该怎么去练习和使用?
  10. wps怎么把ppt里的字体一起保存_PPT基础教程!看懂少走弯路!
  11. JAVA基础--toString, equals方法
  12. js生成二维码附带logo
  13. 经典的pid公式,好脑子不如烂笔头。
  14. 服务器修改bios中uefi,服务器bios uefi设置
  15. 0x7fffffff是多少(也就是INT_MAX,首位是 0,其余都是1,f代表1111)
  16. 怎样彻底删除 mac 上的 Adobe 相关文件?
  17. 办公软件excel表格_国产表格神器:超脱excel,画表只是基本功能,做软件才是真本事...
  18. Android showStatusIcon on inactive InputConnection异常
  19. 知名食品品牌全案咨询公司之塔望整体介绍
  20. ActiveReports报表开发案例:ERP等管理系统的开发与维护模式

热门文章

  1. 3D修复版《泰坦尼克》2012上映 纪念沉没百年
  2. 北京供销社java笔试题_梅锦县供销社办公室王秘书,接待了一位姓张的来访者,据反映,三年前他与乡供销社签订了承包一供销...
  3. 递归判断两棵树是否相同
  4. 荣誉 | 百望云入选甲子光年“2022最具商业潜力区块链Cool Vendor”
  5. mysql如何把列转行_mysql列转行的技巧(分享)
  6. ie11 no java plugin,修復Javascript在IE11中不起作用
  7. Twitter游戏出海洞察白皮书,2022游戏出海应该做什么?
  8. mysql一个表中可以有几个主键_数据库的单个数据表中有几个主键?
  9. 数据库系统概念笔记-引言
  10. 天地伟业tiandy如何连手机_如何打造特色火锅店