Eureka 注册中心

1、eureka版本更新后,pom依赖名称变化

v1.2.7
spring-cloud-starter-eureka-server

v2.0.0
spring-cloud-starter-netflix-eureka-server

2、常用注解

@EnableEurekaServer注解 表示开启EurekaServer服务,开启注册中心

@EnableEurekaClient注解 表示将当前服务注册到Eureka上

3、常见问题

1)以别名方式运行必须调用依赖ribbon负载均衡器 @LoadBalanced,否则会抛出java.net.UnknownHostException异常

2)集群时注册中心的服务名称要相同

3)Eureka集群时,每个注册中心上面都会有相关服务,但是蚂蚁课堂上面演示为只有第一个注册中心上面有服务,当第一个注册中心关闭后,程序会在30秒后默认将服务放在第二个注册中心上;

4、Eureka的自我保护机制

默认情况下 EurekaClient 会定时向 EurekaServer 端发送心跳包,如果EurekaServer在一定的时间内没有收到EurekaClient发送的心跳包,便会直接从服务注册列表中剔除该服务(默认90秒内)。

但是如果在短时间内丢失了大量的服务实例心跳,这时候EurekaServer就会开启自我保护机制,不会去剔除该服务。

为什么不会剔除呢?

为了防止EurekaClient是可以正常访问的,但是只是EurekaClient与EurekaServer网络访问不通,防止误剔除。

应该在什么环境下开启自我保护机制?

建议在本地环境禁止自我保护机制,在生产环境开启自我保护机制。

因为本地测试可能需要频繁的开启/关闭某些服务。

关于自我保护机制的一些问题:

最好的体现就是:memberApp负载均衡,先开8400端口,关闭之后再开8401端口,此时你会发现注册中心上始终都有8400端口的服务;而你关闭自我保护机制后,再重复以上步骤,这个8400端口会迅速消失;

--》idea升级为2018.2后,这个memberApp负载均衡写不了了,改变端口重启服务时idea提示该项目为单例模式,必须先关闭后重启。【已解决】

###测试时需要关闭自我保护机制,保证不可用服务及时剔除

enable-self-preservation: false

eviction-interval-timer-in-ms: 2000

5、导入atom主题后,idea项目报错,重构时遇到以下异常:

Error:Cannot run program "C:\Program Files\Java\jdk1.8.0_92\bin\java" (in directory "C:\Users\Administrator\.IntelliJIdea2017.1\system\compile-server"): CreateProcess error=2, 系统找不到指定的文件。

--》当初只顾看Event Logs了,没有检查SDK是否配置;

--》重装后,SDK没有配置,也出现该问题,配置好之后就没事了;

6、DiscoveryClient可以获取服务的一些信息

7、Feign是一个声明式的Http客户端调用工具,采用接口+注解方式实现,易读性比较强

8、由于考虑到后续的服务降级,比如fallback属性需要指定类路径,而类路径是是订单服务,而不是会员服务;
--》服务降级取决于调用者,而不是被调用者;

9、依赖聚合项目

实体类最好放在接口项目中

Modifier ‘public‘ is redundant for interface methods less... (Ctrl+F1)

Inspection info: Reports any redundant modifiers on interfaces or interface components.

接口不能加@RestController,因为接口不能被实例化

引入依赖时,版本号必须得加

依赖聚合项目想要达到的目的:避免传统的feign缺点,在order中建立一个类写着跟memberController一样的内容,这样很冗余;所以就采用maven子父工程,这样一来,在order中建立的feign类只需要继承memberService就可以了。

--》注意这个项目分了Service,ServiceImpl,但是没有Controller,这个MemberService完全和之前项目的feign类内容一样。

10、码云写中文,获取时会乱码

11、接口产生背景

在面向服务架构和微服务背景下产生,目的都是为了解耦。

rpc远程调用中产生的

接口如何进行分类

开放接口:其他机构合作伙伴进行调用(必须在外网访问),如蚂蚁开放平台、微信公众号开发

需要通过appid+appsocet生成accessToken进行通讯。

对接支付开发、微信开发会用到。

这样设计的目的:可以授权一些接口权限,OAuth2.0协议方式,第三方联合登陆。

内部接口

一般只能在局域网中进行访问,服务与服务调用之间关系都在同一个微服务中。

目的是为了保证安全问题。

面试问答,现在让你去设计一套公司项目的接口,你会如何设计?

考虑:接口权限(开放接口|内部接口),开放接口要遵循OAuth2.0协议,内部接口要经过网关才能访问;

考虑幂等性、安全性(https)--采用双向加密、防止篡改数据(验证签名)、使用网关拦截接口,实现黑名单和白名单、 接口使用http协议+json格式,采用restful风格,目的是为了跨平台。

然后需要考虑高并发,需要对接口服务实现保护,进行服务降级、熔断、隔离之类,最后使用统一API管理平台api swagger

12、后续的Swagger、SpringCloud bus消息总线、SpringCloud消息驱动、SpringCloudStream我没有实践,关于消息驱动这一块我没看完,因为对于消息队列很不熟悉,有点听不懂;

问题:

注册中心关闭后,消费者还可以访问生产者?

zookeeper的临时节点和持久节点?

不建议使用 synchronized,使用原子计数器,应为线程安全,效率非常高,使用cas无锁机制?

consul上面的order不能访问member,蚂蚁课堂没有演示该场景?

蚂蚁课堂说Controller不要,直接改成Service;

继承后,方法注解是否一并被继承

同一个父/祖父工程下的项目,是不是可以相互进行依赖

xxl-job

备注:

E:\Download Files\ChromeDownload\springcloud资料下载\cloud\文档\11-18\上课代码\springcloud-2.0-eureka-server

D:\Computer Files\File_Storage_Address\Software_Data_Center\IdeaProjects

必须要配置spring的仓库地址,否则jar包下载不下来,就蚂蚁课堂最后那句话

原文地址:https://www.cnblogs.com/syjp/p/10389765.html

时间: 2024-08-01 15:38:18

Eureka 注册中心的相关文章

【码上微服务】- 环境搭建 - Eureka注册中心

一.前言 本章将讲述基于Spring Cloud的注册中心Eureka的简单工程搭建及Docker部署. 二.环境准备 操作系统:CentOS 7.2 项目管理:MAVEN(推荐使用阿里源中央仓库:http://maven.aliyun.com/nexus/content/repositories/central/) 开发IDE:IDEA 所用语言:JAVA 所用容器:Docker 三. Eureka注册中心项目搭建 JAVA工程创建(这里使用了IDEA) 相关的pom.xml <?xml ve

eureka注册中心单机

Spring Cloud 2.x系列之 eureka注册中心单机 一.简介 Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块.而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合.通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统.它主要提供的模块包括:服务

eureka注册中心出现了一些莫名其妙的服务。

eureka注册中心出现了一些莫名其妙的服务.导致原来的路径没有找到 首先关闭服务器的自我保护.一旦断开就删掉微服务.防止有些已经停掉的服务仍然在注册中心里. 另外加上安全验证,防止一些体系之外的服务误打误撞地注册进来. 注册中心的pom文件引入 配置文件 加上一个配置类 然后所有的client都加上 运行起来 原文地址:https://www.cnblogs.com/zhanying999666/p/9967507.html

SpringCloud Eureka(注册中心集群)

多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: instance: hostname: localhost # 设置主机名 client: registerWithEureka: false # 是否向 Eureka 注册服务.该应用为服务注册中心,不需要自注册,设置为 false fetchRegistry: false # 是否检索服务.该应用为服务注

SpringCloud(一)Eureka注册中心

Eureka简介 Eureka作为注册中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等 Eureka注册中心实例 Eureka Server 1.pom文件配置SpringBoot.SpringCloud的依赖: 2.启动类配置 @EnableEurekaServer 注解,表示注册中心: /** * SpringCloud是基于SpringBoot的,这是一个启动类的注解 */ @SpringBootApplication /** * 这是注册中心Eureka的注解 */ @En

springCloud Eureka注册中心原理及配置理解

Eureka 配置流程 原理:     服务提供方启动后将注册到 注册中心,提供IP, 名字,什么服务等信息, 服务调用方作为客户端注册到注册中心后,拉取注册中心的服务列表,在通过负载均衡调用对应的服务提供方. 注册中心可以建立集群,生成多台eureka,注册中心为了监测各个服务的心跳,将在每30S 向所注册的服务发起请求判断 服务是否挂掉,如果挂掉90S后将会将服务从注册中心剔除. 一个服务可以监测多台服务实例,从而可实现均很负载. 配置步骤:  一.加依赖 以下指POM文件 <!--注册中心

Eureka注册中心(上)

Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能. Eureka组件 Eureka包含两个组件:Eureka Server和Eureka Client. Eureka Server Eureka Server提供服务注册服务,各个节点启动后,

这个注册的 IP 网络都不通了,Eureka 注册中心竟然无法踢掉它!

本文导读: 微服务技术架构选型介绍 k8s 容器化部署架构方案 Eureka 注册中心问题场景 问题解决手段及原理剖析 阅读本文建议先了解: 注册中心基本原理 K8s(Kuberneters)基本概念 我们的微服务目前都是在服务器上部署的,也是基于 Docker 来部署的. 运维部门基于 K8s 自研了一套容器云管理平台,平台名称叫做 Ares,我们也开始准备将微服务迁移到这平台上,降低虚拟机或实体机服务器运维成本,提高服务器资源利用效率. Ares:阿瑞斯(战神) 希腊神话中为战争而生的神,奥

Eureka注册中心

一.前言 服务治理是微服务架构体系中,不可或缺的重要的一部分.SpringCloud 中对 Netflix Eureka 进行了再封装,将其作为默认的推荐的服务注册中心.Spring Cloud Eureka 是一个基于 Rest 的服务,提供了基于 Java 的客户端,非常方便快捷的使用. 注册中心的存在,可以很好的隔绝生产者和消费者.当你需要调用某一个服务的时候,你不需要知道服务的具体实现细节,也不需要知道具体的是有多少的服务提供方在工作.你只需要去 Eureka 中去哪去服务列表,查看其中

SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置

SpringCloud学习心得—1.2—Eureka注册中心的密码认证.高可用的设置 这是相关代码 链接 Eureka开启密码配置 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 向properties添加密码与用户名 spr