串一下自己学过的东西

  • JavaSE
  • 数据库
  • 前端
  • Servlet
  • Http
  • Mybatis
  • Spring
  • SpringMVC
  • SpringBoot
  • Dubbo、Zookeeper、分布式
  • Maven、git
  • Ajax、json
  • …../

xxx

三层架构+MVC

框架:

Spring IOC AOP //简化ssm的代码
SpringBoot 新一代的JavaEE开发标准,自动装配 //简化Spring的配置
模块化开发

微服务架构的四个问题:

  1. 服务很多,客户端怎么访问?
  2. 这么多服务?服务之间如何通信?
  3. 这么多服务?怎么治理?
  4. 服务挂了怎么办?

解决方案

Spring Cloud 生态圈 基于SpringBoot
  1. Spring Cloud NetFlix — 多数使用,一站式操作,解决大部分问题,但停更:
    api网关,zuul组件;
    Feign —-HttpClinet —— Http通信方式,同步,阻塞;
    服务注册发现:Eureka;
    熔断机制:Hystrix;

  2. Apache Dubbo Zookeeper — 半自动,需要整合:
    API:没有,第三方组件实现或自己实现;
    Duboo:RPC通信框架;
    Zookeeper:服务注册;
    无熔断机制:借助Hystrix;
    Duboo方案并不完善

  3. Spring Cloud Alibaba — 新的一站式解决方案,更简单:
    新概念:服务网格 Server Mesh;
    istio;

总结:

  1. API
  2. HTTP,RPC
  3. 注册与发现
  4. 熔断机制

分布式网络并不可靠,所以需要解决方案

常见面试题:

  1. 什么是微服务?
  2. 微服务之间是如何独立通讯的?
  3. SpringCloud和 Dubbo有哪些区别?
  4. SpringBoot和SpringCloud,请你谈谈对他们的理解
  5. 什么是服务熔断?什么是服务降级
  6. 微服务的优缺点是分别是什么?说下你在项目开发中遇到的坑
  7. 你所知道的微服务技术栈有哪些?请列举一二
  8. eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?

SpringCloud

  • 知识点
  • 看看面试题
  • 微服务和微服务架构
  • 基础工程 RestTemplate
  • Eureka AP
    • 集群配置
    • 对比Zookeeper CP
  • Ribbon IRule
  • Feign 接口,社区要求,更加面向接口编程
  • Hystrix
    • 熔断
    • 降级
    • dashboard
  • Zuul
  • Spring Cloud Config C-S-GIT
  1. 导入依赖
  2. 编写配置
  3. @Enablexxx