当前位置: 首页 > news >正文

微服务架构 SpringCloud(二)Eureka(服务注册和服务发现基础篇)

一:Eureka简介

Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一。用于云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

服务注册与发现对于微服务系统来说非常重要。有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务。他的功能类似于dubbo的注册中心(register)。

服务发现:服务发现是微服务基础架构的关键原则之一。试图着手配置每个客户端或某种格式的约定可以说是非常困难的和非常脆弱的。Eureka是Netflix服务发现的一种服务和客户端。这种服务是可以被高可用性配置的和部署,并且在注册的服务当中,每个服务的状态可以互相复制给彼此。

服务注册:当一个客户端注册到Eureka,它提供关于自己的元数据(诸如主机和端口,健康指标URL,首页等)Eureka通过一个服务从各个实例接收心跳信息。如果心跳接收失败超过配置的时间,实例将会正常从注册里面移除

下图是基本的服务注册和发现

二:Eureka服务发现和注册(创建注册中心)

1:创建一个基础的Spring Boot工程,并在pom.xml中引入需要的依赖内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?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.springcloud</groupId>
<artifactId>eureka_register_service</artifactId>
<version> 1.0 . 0 </version>
<packaging>jar</packaging>
<name>eureka_register_service</name>
<description>Spring Cloud project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version> 1.4 . 3 .RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF- 8 </project.build.sourceEncoding>
<java.version> 1.8 </java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</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:创建一个启动类Application

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.demo.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application. class , args);
}
}

  

通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话。

3:创建一个配置文件 application.properties,注意不要出现空格,否启动报错

1
2
3
4
server.port= 8000
eureka.client.register-with-eureka= false
eureka.client.fetch-registry= false
eureka.client.serviceUrl.defaultZone=http: //localhost:${server.port}/eureka/

  

4:执行bluid.sh进行构建,然后执行main方法。本人由于在eclipse下没有进行手动编译,启动的时候一直读取不到application.properties。

5:查看注册中心

http://127.0.0.1:8000/ 可以看到如下图

是不是很简单啊,那么人要问了,为什么连登陆账号和密码都没有,在外网不是直接能进入注册中心, 这样很不安全啊。好,那我们加入登陆账号和密码

架构代码如下:

资料和源码来源地址

Spring Cloud大型企业分布式微服务云架构源码请加企鹅求求:一七九一七四三三八零

转载于:https://juejin.im/post/5c8a0292f265da2dc849aa89

相关文章:

  • Android图片缓存之Glide进阶
  • css(二):高度与文档流,line-box与box,宽度,position与
  • SQL Server2005作业执行失败的解决办法
  • 进度条14
  • 阿里云RDS PostgreSQL GPU加速规格(支持GIS时空加速)发布
  • 怎么隐藏MathType标尺
  • 用Python监听邻居家小姐姐的上网行为
  • Git同步原始仓库到Fork仓库中
  • 如何将PDF图片旋转90度,盘点这个小方法
  • php 0613框架基础
  • debian手册摘要
  • jQuery EasyUI使用教程之添加节点到树形菜单
  • 万物有源_Appium框架原理浅析
  • PHPDoc/PHPDocumentor生成API文档
  • 面试必问Elasticsearch倒排索引原理
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • gcc介绍及安装
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript 奇技淫巧
  • Laravel 中的一个后期静态绑定
  • PV统计优化设计
  • Vue实战(四)登录/注册页的实现
  • Wamp集成环境 添加PHP的新版本
  • 百度小程序遇到的问题
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 记录:CentOS7.2配置LNMP环境记录
  • 开源SQL-on-Hadoop系统一览
  • 面试总结JavaScript篇
  • 你不可错过的前端面试题(一)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端面试题总结
  • 与 ConTeXt MkIV 官方文档的接驳
  • 原生JS动态加载JS、CSS文件及代码脚本
  • nb
  • #1014 : Trie树
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++17) std算法之执行策略 execution
  • (LeetCode 49)Anagrams
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (七)Knockout 创建自定义绑定
  • (图)IntelliTrace Tools 跟踪云端程序
  • (学习日记)2024.01.09
  • (转)Sql Server 保留几位小数的两种做法
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .gitignore文件_Git:.gitignore
  • .net 7 上传文件踩坑
  • .NET Core中Emit的使用
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • /var/log/cvslog 太大
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @Query中countQuery的介绍