Spring Colud是什么?
* Spring Colud是一个开发工具集,含了多个子项目(主要不要自己造轮子)。
--利用SpringBoot的开发便利。
--主要是基于对Netfilx开源组件的进一步封装。
* Spring Colud简化了分布式开发。
注:掌握如何使用,更要理解分布式的架构特点,Eureka觉得可用性比数据一致性更加重要,权衡取舍依据业务实际出发。
Spring Colud Eureka_注册中心(在微服务里面,通常把一个应用叫一个服务)
基于Netflix Eureka做了二次封装。
两个组件件:
Eureka Server: 注册中心(供服务注册的服务器)
Eureka Client : 服务注册(用来简化于服务器_轮询和负载均衡器)
注 **
Eureka客户端连接Eureka服务端并维持心跳连接,这样系统就能监控各个服务是否能正常运行。(客户端采用轮询的方式来维持心跳)
会时刻关注eureka是否存活。
注册中心,整个服务注册过去(Eureka服务端,记录所有的应用,应用是不是正常运行)
在启动类加上@EnableEurekaServer表示才会配置注册中心,SpringColud启动类的注册中心,也要在配置文件中配置注册中心,表示启动注册中心类。
以下是相当配配置
Eureka Client的使用
Eureka Client客户端启动类需要加@EnableDiscoveryClient注解,表示客户端注册服务。
使用总结:
1,引入依赖关于netfilx的依赖
2,配置要配置注册中心的地址
3,在启动的主类加@EnableDiscoveryClient
4,应用的名称最好写好spring_application_client(给每一个cilent写上向注册中心注册的地址)
5,eureka serven的自我保护,开发环境可以关闭,方便之后做微服务的调用
Eureka的高可用(考虑到单台Eureka崩掉了,如何处理)
建立两台或多台Eureka Servern,将两台或多台关联起来,就是互相注册起来在idea,直接copy过来,修改端口号,通过互联注册,会将信息同步(如果此时某一台Eureka Serven挂掉了,不会影响到另外一台Eureka),通过端口区分两台Eureka。
方法:
一,通过Eureka二把Eureka一的注册信息同步过来( 一注册Eureka二)
二,通过Eureka Cilent在开始注册的时候,在配置文件中配置多个Eureka Serven
项目大的时候(通过两两注册的方式,Eureka Client同时注册那个Serven)
Eureka 总结
* @EnableEurekaServer和EnableDiscoveryClient
* 心跳检测,健康检查,负载均衡(如果某个对应的服务的流量增加,只需要增加对应服务的实例即可)等功能
* Eureka的高可用,生产上建议至少两台以上。(配置原理,将注册中心,分别指向其他的注册中心)
* 分布式系统中,服务注册中心是最重要的基础部分,分布式的基础设施要是高可用的,也是采用最基本的集群方法,随时都应该提供服务的状态(个人认为:因为注册中心相当于一个服务管理器,可以集中式的管理,不会造成服务的混乱,在服务启动的时候,如果要注册到注册中心就可以注册到注册中心容器当中,供其他服务调用,极大简化了操作,取信息直接去服务中心去取)
客户端发现(简单直接,不需要代理的接入,缺点是要加更多的业务逻辑)和服务端发现(代理的接入B和注册中心对A是不可见A只需要找代理去发现B)的发现