1、前言

1.1、回顾

回顾之前的知识

  • JavaSE
  • 数据库
  • 前端
  • Servlet
  • Http
  • Mybatis
  • Spring
  • SpringMVC
  • SpringBoot
  • Dubbo、Zookeeper、分布式基础
  • Maven、Git
  • Ajax、Json

串一下自己会的东西

  • 数据库
  • Mybatis
  • Spring
  • SpringMVC
  • SpringBoot
  • Dubbo、Zookeeper、分布式基础
  • Maven、Git
  • Ajax、Json

这个阶段该如何学习

三层架构 + MVC

框架:

  1. Spring IOC AOP
  2. SpringBoot:新一代的javaEE开发标准,自动装配
  3. 模块化 all in one
  4. 模块化的开发=====>all in one 代码没有变化

微服务的四个核心问题?

1.服务很多,客户端怎么访问?

2.这么多服务?服务之间如何通信?

3.这么多服务?如何治理?

4.服务挂了怎么办?

解决方案:

Spring Cloud 生态! SprintBoot



1.Spring Cloud NetFlix 一站式解决方案

api网关:zuul组件

通信:Feign —— HttpClient —— Http通信方式,同步,阻塞

服务注册和发现:Eureka

熔断机制:Hystrix

……

2. Apache Dubbo Zookeeper:半自动!需要整合别人的

    API网关:没有,找第三方组件(比如整合zull组件),或者自己实现

    通信:Dubbo 是一个基于Java的高性能的RPC通信框架(性能比Feign强大)

    服务注册和发现:Zookeeper

    熔断机制:没有,需要借助Hystrix



    Dubbo这个方案并不完善



3. Spring Cloud Alibaba:目前最新的一站式解决方案!可解决上述4个核心问题,更简单

    API网关:

    通信:

服务注册和发现:

熔断机制:

新概念:服务网格~ Server Mesh

istio

万变不离其宗4个问题:

1. API网关

2. HTTP,RPC通信

3. 注册和发现

4. 熔断机制

网络不可靠!

1.2 、常见面试题

1.1、什么是微服务?
1.2、微服务之间是如何独立通讯的?
1.3、SpringCloud 和 Dubbo有那些区别?
1.4、SpringBoot 和 SpringCloud,请谈谈你对他们的理解
1.5、什么是服务熔断?什么是服务降级?
1.6、微服务的优缺点分别是什么?说下你在项目开发中遇到的坑
1.7、你所知道的微服务技术栈有哪些?列举一二
1.8、Eureka和Zookeeper都可以提供服务注册与发现的功能,请说说两者的区别