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包下载不下来,就蚂蚁课堂最后那句话

eureka 注册中心的更多相关文章

  1. springCloud系列教程01:Eureka 注册中心集群搭建

    springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...

  2. spring cloud 专题一 (spring cloud 入门搭建 之 Eureka注册中心搭建)

    一.前言 本文为spring cloud 微服务框架专题的第一篇,主要讲解如何快速搭建spring cloud微服务及Eureka 注册中心 以及常用开发方式等. 本文理论不多,主要是傻瓜式的环境搭建 ...

  3. Spring-cloud (一):Eureka注册中心搭建

    前提 系统安装jdk1.8及以上,配置好maven的ide(这里用idea进行演示,maven版本3.5,配置阿里云源) 项目搭建 新建一个maven项目,创建最简单的那种就好,项目名这里为Eurek ...

  4. Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  5. 高可用Eureka注册中心配置说明(双机部署)

    目  录 1. 高可用EureKa注册中心示意图 2. Eureka实例相互注册配置 3. 微服务注册到Eureka配置 4. 启动步骤及配置成功检查 5. 说明事项 1. 高可用EureKa注册中心 ...

  6. SpringCloud(一)Eureka注册中心

    Eureka简介 Eureka作为注册中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等 Eureka注册中心实例 Eureka Server 1.pom文件配置SpringBoot.Sp ...

  7. 微服务---Eureka注册中心(服务治理)

    在上一篇的初识SpringCloud微服务中,我们简单讲解到服务的提供者与消费者,当服务多了之后,会存在依赖与管理之间混乱的问题,以及需要对外暴露自己的地址,为了解决此等问题,我们学习Eureka注册 ...

  8. Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建

    高可用集群 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己 ...

  9. Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费

    由于 Eureka 注册中心只是在内存中保存服务注册实例,并且没有将服务注册实例进行同步,因此我们需要对服务提供和消费进行调整,需要指定服务提供和消费的注册.服务发现的具体Eureka 注册中心配置, ...

  10. Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建

    基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...

随机推荐

  1. [USACO 2017DEC] Haybale Feast

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5142 [算法] 首先用RMQ预处理S数组的最大值 然后我们枚举右端点 , 通过二分求 ...

  2. 【TJOI 2014】 上升子序列

    [题目链接] 点击打开链接 [算法] 先考虑50分的做法 : f[i]表示以i结尾的本质不同的上升子序列的个数 则f[i] = sigma(f[j]) (j < i,a[j] < a[i] ...

  3. JSOI2010 联通数

    传送门 这道题的题目描述看起来很奇怪.实际上的意思是要求在这个有向图之内能到达的点对有多少,解释一下题里的图片就是(1,1),(1,2),(1,3),(1,4),(1,5),(2,2),(2,3),( ...

  4. JQuery报表工具

    推荐18个基于 HTML5 Canvas 开发的图表库   如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.H ...

  5. .NETFramework-Drawing:Font

    ylbtech-.NETFramework-Drawing:Font 1.返回顶部 1. #region 程序集 System.Drawing, Version=4.0.0.0, Culture=ne ...

  6. bzoj3389

    3389: [Usaco2004 Dec]Cleaning Shifts安排值班 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 367  Solved: ...

  7. XDCTF2015代码审计全解

    此次CTF WEB2是一个大题,一共4个flag,分别代表:获取源码.拿下前台管理.拿下后台.getshell. 目标站:http://xdsec-cms-12023458.xdctf.win/ 根据 ...

  8. MySQL基础 -- 关系代数

    MySQL基础 -- 关系代数 关系代数是一种抽象的查询语言,它用对关系的运算来表达查询.  任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的结果.所以运算对象.运算符.运算结果是运算 ...

  9. Codeforces 938D Buy a Ticket 【spfa优化】

    用到了网络流的思想(大概).新建一个源点s,所有边权扩大两倍,然后所有的点向s连边权为点权的无向边,然后以s为起点跑spfa(S什么L优化的),这样每个点到s的距离就是答案. 原因的话,考虑答案应该是 ...

  10. 洛谷P4206 [NOI2005]聪聪与可可(期望dp+最短路)

    传送门 首先,猫的走位太飘了……只能预处理…… 先对每一个点跑一遍dijkstra跑出最短路,然后再预处理出$nxt[i][j]$表示当猫在$i$老鼠在$j$时猫下一步会走到哪里 然后考虑dp,设$d ...