什么是框架?
个人简单的理解,框架是一个半成品,在java开发中就是一种规范+一群jar包
使用框架开发的目的
用来提高开发效率,这一点个人最大的体会就是从学会使用struts到Spring Boot这两个框架之间的跨度。SpringBoot以他依赖优于配置的特点,获得不少java开发大佬的恩宠,一点点将Struts打入冷宫,至于为什么,相信用过这两种框架的大佬们都深有体会!
为什么要使用Spring cloud框架进行开发?
spring cloud是一个基于Spring Boot开发的微服务框架,SpringBoot可以开发单个的微服务。所谓微服务,就是按业务逻辑划分为独立的模块进行开发。
- 让专业的人做专业的事情,每个服务与服务之间互不影响。比如一个微服务专门做登录注册,这个微服务就只专注于登录和注册以及安全的问题,不涉及其他业务。不过微服务粒度的划分,个人感觉对技术和业务能力要求还是比较高。粒度如果划分不好仍然无法避免大量代码重复的诟病。
- 采用resultful风格设计接口(个人理解resultful风格提供API就是Http+JSON)
- 效率更高,更适合互联网公司敏捷开发,快速迭代产品。
Spring cloud之Eureka(注册中心)
说eureka前先理解这几个概念
- 注册中心概念:存放服务ip地址,端口号和服务名称等相关信息
- 服务注册:将自己的信息(ip,端口号,服务名称等)发送到注册中心
- 服务发现:从注册中心获取服务通讯地址,然后在本地远程调用
- 服务消费者:调用别人的接口
- 服务提供者: 提供服务接口
注:一个服务既可以作为服务提供者,也可以作为消费者。
Eureka 两大组件
1.Eureka server: 主要提供注册服务,也就是注册中心
2.Eureka client: 每个微服务模块,负责向Eureka Server发送心跳(也就是注册,默认是30S发一次)
Eureka 三大角色
Eureka server: 提供服务与注册
Eureka provider: 服务提供方,提供服务接口给别人用(指服务消费者)
Eureka consumer: 服务消费者,从Eureka Server获取注册列表和提供者信息从而在本地进行调用
Eureka Server 集群搭建
-
为什么需要搭建Eureka Server集群?
Eureka server可以算是整个微服务核心,其他Eureka Client会定时连接Eureka server,获取注册信息并保存在本地缓存
如果Eureka server被down调,其它Eureka Client就不能再从Eureka Server获取注册信息,缓存数据不能更新,慢慢会引起其它服务调用发生错误,影响整个系统性能
注 : 如 果 没 有 搭 建 集 群 的 情 况 下 , 即 使 发 生 E u r e k a S e r v e r 被 D o w n 调 也 不 会 立 即 出 错 , 以 为 其 它 E u r e k a c l i e n t 默 认 调 用 的 本 地 缓 存 , 要 30 S 才 从 E u r e k a C l i e n t 拉 取 一 次 注 册 信 息 \color{#FF3030}{注:如果没有搭建集群的情况下,即使发生Eureka Server被Down调也不会立即出错,以为其它Eureka client默认调用的本地缓存,要30S才从Eureka Client拉取一次注册信息} 注:如果没有搭建集群的情况下,即使发生EurekaServer被Down调也不会立即出错,以为其它Eurekaclient默认调用的本地缓存,要30S才从EurekaClient拉取一次注册信息 -
搭建Eureka Server集群的目的
为了防止Eureka Server被Down掉对整个系统的影响,所以需要做集群 -
搭建Eureka集群的原理:
通过运行2个或多个Eureka Server让他们相互注册的方式实现高可用部署
小结:单节点的Eureka Server只适用于开发环境。生产环境和线上环境需要搭建集群实现高可用,高性能。