SpringCloud初体验(一)Eureka

写在前面

SpringCloud,微服务全家桶,很火,来学一下,本文只是简单使用,并没有仔细研究其原理,还请各位多指教
eureka是一个基于Rest的服务,用于做服务的注册发现,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件,功能类似于Dubbo得注册中心,Zookeeper

1.搭建环境

前面我们已经搭建了springboot项目,服务提供者, 服务消费者,和公共的数据模块,我们前面是通过RestTemplate访问的,,我们现在需要将服务进行注册与发现,,

2.服务注册中心

我们需要新建一个eureka的注册中心,用于服务的注册于发现
,我们新建一个springboot项目


SpringCloud初体验(一)Eureka_第1张图片
image.png

pom文件,引入eureka-server的maven坐标


SpringCloud初体验(一)Eureka_第2张图片
image.png

服务注册中心的yml文件
指定eureka的服务端的名称,eureka的访问路径,以及服务提供者,和服务消费者访问路径

SpringCloud初体验(一)Eureka_第3张图片
yml

在启动类加入eurekaserver的注解


启动类

3.服务提供者

1.修改pom文件

SpringCloud初体验(一)Eureka_第4张图片
pom

2,修改yml文件

image.png

3.在启动类加入注解

image.png

启动即可

然后访问 localhost:7001 即可访问到服务注册中心了

完善服务提供者信息

在服务注册中心想查看服务的时候,显示了很长的名字,而且像看这个服务的ip地址,需要自定义服务的信息

修改服务提供者的yml文件如下


SpringCloud初体验(一)Eureka_第5张图片
image.png

修改父工程的pom文件,添加如下代码


SpringCloud初体验(一)Eureka_第6张图片
代码

在服务提供者的主启动类加入注解@EnableDiscoveryClient //服务发现

在控制器中添加

@RequestMapping(value = "/discovery", method = RequestMethod.GET)
    public Object discovery()
    {
        List list = client.getServices();
        System.out.println("**********" + list);

        List srvList = client.getInstances("SPRINGCLOUD-PROVIDE-DEPT");
        for (ServiceInstance element : srvList) {
            System.out.println(element.getServiceId() + "\t" + element.getHost() + "\t" + element.getPort() + "\t"
                    + element.getUri());
        }
        return this.client;
    }

访问即可显示服务

2.eureka集群

在新建两个eureka的server项目,直接和前面的eureka-server项目一样,


image.png

hostname的是虚拟域名,直接在hosts文件修改即可
修改对应项目的yml文件


SpringCloud初体验(一)Eureka_第7张图片
7001yml
SpringCloud初体验(一)Eureka_第8张图片
7002yml

其他也一样,就不贴了

修改服务提供者的注册地址为集群


SpringCloud初体验(一)Eureka_第9张图片
image.png

启动即可

3.eureka和zookeeper的区别

CAP

c: 强一致性

a: 可用性

p:分区容错性

eureka的自我保护

zookeeper保证cp

在集群的时候,zookeeper的leader挂了,会重新选举leader,这个是需要时间的,那么这段时间zookeeper的集群是不可用的,

eureka保证ap

eureka的各个节点都是平等的,几个节点挂掉不会影响正常节点的使用,剩余节点依然可以提供服务的注册于查询服务,而eureka客户端再向eureka注册时发现连接失败,则会自动切换至其他节点,只要有一条eureka在,就能保证服务可用(高可用),只不过查到的信息可能不是最新的,

QQ群:552113611

你可能感兴趣的:(SpringCloud初体验(一)Eureka)