京东的网站规划与建设市场分析百度人工电话多少号
文章目录
- Eureka
 - Eureka组件可以实现哪些功能
 - 什么是CAP原则?
 - 服务注册代码实战
 - 搭建注册中心
 - 服务A搭建
 - 服务B搭建
 - 启动服务
 - 启动注册中心
 - 启动服务A
 - 启动服务B
 
- 结束语
 
Eureka
这篇文章先讲述一下Eureka的应用场景、代码实现案例,多个服务模块注册到Euraka中,服务之间的调用实现我会再下一篇文章中进行讲解!
Eureka组件可以实现哪些功能
Eureka主要是做:
注册发现中心服务注册与发现的组件
什么是CAP原则?
说到Eureka不得不提到了CAP,那么什么是CAP原则呢,下面一起来看下!
 CAP 原则:又称 CAP 定理,指的是在一个分布式系统中。
CAP原则三大特性:
 一致性 (Consistency):在集群中,三个机器的数据是一致的。
 可用性I(Availability):当有一个节点挂掉了整个集群可以继续对外提供服务。
 分区容错性 (Partition tolerance):由于机房网络或者分区等原因会导致各个机器中的数据短暂不一致。
 (这个特性是不可避免的)CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
说到这里再提一下Eureka和Zookeeper的区别?
 Zookeeper:
 遵循CP原则
 Eureka:
 AP原则:注重AP高可用
服务注册代码实战
整体核心实现图
 
搭建注册中心
下面我来通过代码的方式详细的看下如何来快速实现Eureka的使用
 
 只需要建我标记红色框的项目,其它的不需要建,我这边是之前做的服务注册中心集群所以会有好几个注册中心
首先把目录结构给建起来,Maven项目
 注意:新增项目的时候选择Java8
 按照我图上的这个建,新建项目流程这边我不一一去说了,不明白的可以私信我!
 第一步
 先去新建注册中心01-eureka-server
 
 第二步
 修改EurekaServerApplication启动类,添加@EnableEurekaServer注解,意思是开启Eureka的注册中心的,启动类里面只需要修改一个地方添加开启Eureka注解功能。
 源码如下:
package com.powernode;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer //开启Eureka的注册中心的功能
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}} 
第三步
 修改yml文件(配置文件)
 源码如下:
 每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。
#单机
server:port: 8761 # eureka的默认端口
spring:application:name: eureka-server # 应用名称 不要使用特殊字符
eureka: #Eureka的配置分三类 server client 实例的  eureka-server既是服务端又是客户端server: #服务端每间隔多少毫秒定期删除的操作(默认是30000(30秒))eviction-interval-timer-in-ms: 10000renewal-percent-threshold: 0.85 # 续约百分比 超过85的应用没有和你续约 那么erueka不会踢除任何应用instance: # 实例的配置instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}} # 主机名称 : 应用名称 : 端口号
#      hostname: localhost # 主机名称 或者 服务的IP
#      prefer-ip-address: true #以IP的形式显示具体的服务信息
#      lease-renewal-interval-in-seconds: 5 # 服务实例的续约的时间间隔
 
第四步
 修改pom文件
 注意:是01-eureka-server的pom文件,因为这块要去指定spring Cloud以及spring Boot版本。
 按照我标红色的框去修改
 
 
服务A搭建
服务A对应的项目名称是:02-eureka-client-a,千万不要改错地方哈!
 第一步
 先去修改yml配置文件。
 源码如下:
 每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。
server:port: 8702 # 客户端端口没有要求
spring:application:name: eureka-client-a
# 注册 发送信息
eureka:client:service-url: # 指定注册地址defaultZone: http://localhost:8761/eurekaregister-with-eureka: true # 可以不往eureka-server注册fetch-registry: true # 应用是否去拉取服务列表到本地# 每个10秒中去注册中心重新进行拉取 时间越短脏毒越少 性能消耗大registry-fetch-interval-seconds: 10 # 为了缓解服务列表的脏毒问题instance:hostname: localhost # 应用的主机名称 最好谢主机ipinstance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}prefer-ip-address: true # 显示iplease-renewal-interval-in-seconds: 10 # 实例续约的时间
 
第二步
 修改pom文件,按图修改
 
 
服务B搭建
服务A对应的项目名称是:02-eureka-client-b,千万不要改错地方哈!
 和服务A类似
 第一步
 先去修改yml配置文件。
 源码如下:
 每一个配置代表什么意思我都一一添加了注释,先按照我这种方式去改。
server:port: 8703 # 客户端端口没有要求
spring:application:name: eureka-client-b
# 注册 发送信息
eureka:client:service-url: # 指定注册地址defaultZone: http://localhost:8761/eureka 
第二步
 修改pom文件,按图修改
 
 
启动服务
启动注册中心
先启动注册中心01-eureka-server,在启动服用A和服务B,
 启动方式:点击启动文件,然后点击绿色的三角选择运行模式或者调试模式都可以
 
 看到下图这个,说明就已经启动成功了,返回状态码为204。
 注意:重点来了非常重点,在浏览器地址栏中直接输入http://localhost:8761/

 如果你输入完http://localhost:8761/给你返回的是这个页面,恭喜你Eureka注册中心启动成功!,接着再去启动服务。
 
启动服务A
还是这种方式去启动,运行模式和调试模式都可以。
 
 启动成功后会显示如下图所示,状态显示204。
 
 注意:重点来了非常重点,在浏览器地址栏中直接输入http://localhost:8761/,或者是刚才已经打开这个地址了,直接F5刷新页面。
 可以清除的看到在注册中心上方有一个应用名称为:EUREKA-CLIENT-A的服务注册进来了,很好,继续启动服务B。
 
启动服务B
服务B还是按照服务A的方式去启动,我们可以清楚的看到目前有三个服务正在运行,分别是注册中心、服务A和服务B,回到浏览器,还是那个网址下,F5刷新。
 
 很好,可以看到服务B也注册进来了。

结束语
至此就完成了一个注册中心和两个服务模块的注册功能的实现,按照我的这种方式去搭建项目和代码实现,不明白的博主私信,大家可以看到我还有其他的组件
 这是常用的Spring Cloud组件,还有第二张图的各个组件的服务,nacos文件配置中心搭建、手写网关、熔断器等等,都是源码,有需要的博主可以私信我,不收取任何费用,如果你有不明白的地方我还会免费为你进行解答,希望能帮助到大家!
 本期分享就到这里咯,下期分享rabbon实现远程调用。
 
 
