SpringCloud之Eureka

启动类

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerStart {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(EurekaServerStart.class, args);
    }
}

maven依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>

安全模块

<!-- 安全模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

配置信息

server.port=8761
#取消向eureka server(注册中心)注册
eureka.client.register-with-eureka=false
#取消向eureka server(注册中心)获取注册信息
eureka.client.fetch-registry=false
#eureka 提供服务发现的地址
eureka.client.serviceurl.defaultZone=
http://zhangfei:777@localhost:8761/eureka
#eureka.client.service-url.defaultZone=http://localhost:8761/eureka
# 安全模块
security.basic.enabled=true
security.user.name=zhangfei
security.user.password=777

单体架构简介

一个项目包(war包,归档包)包含了应用的所有功能, 在没有出现微服务概念之前,基本上都是这种架构形式存在, 我们一般把程序打包成一个文件后,扔到tomcat或者jetty, jboss等应用服务器中即可
特点
部署很简单,符合我们的思维
项目雍炯
技术债务
部署频率低
扩展性差
阻碍技术创新

微服务
把每个独立的模块单独抽出来作为一个独立运行的服务,服务之间采用轻量级Rest方式调用
微服务特点:
每个小组专注于一个微型服务,致力于该服务的稳定性,可用性,服务性能,以及业务的迭代开发
每个微服务可以独立运行(独立一个进程运行)
多个微服务或者说一系列微服务组合起来就构建了一个或者多个独立的系统
每个微服务只针对独立的业务开发基础的服务,也就是说一个微服务只关注某个特定的功能
每个微服务可以使用不同的技术实现,以及每个微服务有自己独立的数据库
每个微服务之间通过一些轻量的通讯机制进行通讯,例如REST API
更加容易部署,而且可以全自动部署

设计原则
单一职责
服务自治
轻量级通讯原则
接口明确原则
微服务粒度
服务依赖

这里写图片描述

调用流程:客户端订单微服务用户微服务
疑问:当用户微服务有多台实例提供高可用服务或者负载均衡服务的时候,
订单微服务怎么来调用用户微服务呢?同时怎么支持服务动态水平增加或者减少呢?
1.Nginx
2.服务发现
Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud
将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能

服务发现组件对比(CAP)
Zookeeper  - CP
Eureka  - AP

Eureka 他的源码在github上面:
https://github.com/Netflix/eureka/
他的文档:
https://github.com/Netflix/eureka/wiki
他的架构介绍:High level architecture:
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

eureka架构图
这里写图片描述

region、zone、eureka 关系图
这里写图片描述

重要概念

Register  服务注册
Renew 服务的续期
Fetch Registers : 获取注册列表信息
Eviction 服务剔除
Cancel: 服务下线

猜你喜欢

转载自blog.csdn.net/qyj19920704/article/details/80723547