微服务相关教程分享-前言

礼貌性的讲讲一些废话:什么是微服务??
就是把一个非常庞大的单体应用拆分成若干个可独立部署的项目,具体可参考下面这篇文章,讲了整个微服务的演进过程:微服务详解
写这篇文章的目的就是想介绍一下自己一个很难跑的起来,而且代码写的很一般的开源项目,一个微服务博客项目;虽然很简单,但是里面用到的技术很多,也有很多是未完善的,当然后续也会将一些常用的技术,或者复杂的业务单独拎出来写几篇文章;(下面是个简单的架构图)
微服务相关教程分享-前言
文章图片

cloud发展经历
首先关于微服务,我们能在java领域想到的两款rpc框架:Dubbo和Spring Cloud,两者都是用的很多的,但是现在的趋势还是Spring Cloud;
Spring Cloud(Dubbo就不写单独的博客去写了):其又有两类组件库,一个是Netflix和Alibaba系列,之前的 F、G版本的时候,Netflix的市场还是很大的,但是往后,Alibaba系列组件慢慢就会成为主流,
其实中间也有个挺好玩的事,话说是因为Zuul1.x升级到Zuul2.x的时候Netflix就发生了内部矛盾,而Spring家族又一直在等着Zuul2.x的横空出世,谁知道这么一出,Spring等不了了,于是自己出了一个网关组件基于Spring WebFlux的gateway,而阿里也是在此时出了自己的一系列产品,大家也知道,阿里出品大多数都是不错的产品!
而接下来所有的博客都是围绕阿里系列来进行书写的,Netflix有兴趣的大家可以学学,我之前的博客中有很多学习视频推荐:(学习)
当然学完之后大家要记得最好就是能动手自己写个实践小demo,脱离老师所讲的内容,完全是自己写的demo,这样才能学得更好;
cloud的组件介绍
注册中心: 之前有Eureka、consul、zookeeper、redis等都可以做注册中心,但是他们的功能都很简单,都是服务发现和注册,而ali的nacos则是不同,其是服务的注册和发现、以及配置中心都可以通过naocs来完成,而且nacos的配置文件支持多种格式,比如常用的yaml,而且nacos自带有一套权限中心,可根据用户的角色不同来分配不同的权限,他的配置中心也省去了 config的搭建,而且支持动态刷新,所有nacos会成为注册中心的首选,当然其他的也可以学习一下,我之前的博客每种注册中心都有写过,但是不是很详细,是我写给自己看的笔记,可能有点乱(cloud学习)
服务的熔断、降级、限流: 其实这个在eureka系列里面用的是hystrix,简称豪猪哥,也是一个很好用的,也有带UI的,但是比起阿里的sentinel,流量防卫兵来说,其功能就有点次了,首先sentinel的搭建很简单,而且有很好用的UI界面,其可使用的功能非常多,QPS、限流,降级规则等,用起来相当容易,也支持相当于在hystrix里面自己书写降级规则,之后再讲!
网关: 网关在整个微服务中的作用仅此于注册中心,因为其本身也需要进行注册,网关可以对整个微服务的接口进行分发或者统一Api拦截,而且在网关可以对每个服务加上不同的限制规则,比如白名单、cookie拦截、响应头设置等,而且网关加上ribbon可以对每个服务都进行负载均衡操作。
服务调用: openFeign,可以理解其就是在帮助服务之间进行http请求,简化了其操作,可以使其像service层一样直接调用,在调用的过程中,便可以使用hystrix或者sentinel进行降级、熔断处理
链路追踪: 由于服务间的调用并不是透明的,所以我们需要一个可以观察服务之间调用情况的组件,我们可以使用istio(服务网格化 service mesh中的类似nacos的东西)家族中的 sleuth和zipkin来观察服务间的调用情况
cloud常用的中间件
只大概列出一些组件,之后可能会详细讲部分

  • redis
  • mq
  • elasticsearch
  • canal
  • seata
  • redisson
常见的业务
  • 秒杀
  • 异步编排
  • oauth2 三方登录
  • 死信队列
  • 分布式文件服务器
  • 在线预览
【微服务相关教程分享-前言】敬请期待!!

    推荐阅读