一、微服务是一种架构风格
千万不要以为微服务就是某些组件,某些框架,它其实是一种架构风格,比如我们熟悉的Restful。既然是架构风格,说明它没有强制性,没有绝对标准的答案,细节上可能会有很多不同的理解,我们可以看看作者马丁大叔对于微服务的理解。
二、微服务的特点
1、一系列微小的服务共同组成
微服务,也就是微小的服务,一系列,对应的就是传统的单体服务。
2、跑在各自的进程里
任何一个微服务,都有自己独立的进程,互不干扰。
3、每个服务作为独立的业务开发
微服务要围绕业务,围绕领域模型去构建。
4、独立的进行部署
5、分布式的管理
相对于以前的集中式管理。
三、单体架构应用的特点
1、所有的功能打包在一个war包里,基本没有外部依赖。
2、部署在一个web容器里,包含了dao,service等。
3、共用一个DB。
四、单体架构的优缺点
4.1、优点
1、容易测试
2、 容易部署
4.2、缺点
1、开发效率低
2、代码维护难:所有代码放到一起,如果来新同事会很难理解。
3、部署不灵活:构建时间太长。
4、稳定性不高
5、扩展性不够
5、简单的微服务架构
![](https://img.haomeiwen.com/i13855159/1434a656a0ffdec0.png)
6、微服务架构的基础组件
6.1 服务注册与发现
在微服务内部,服务注册之后,才能被其他服务发现及调用。
6.2 服务网关(Service Gateway)
连接内外的大门。外界访问服务。如手机、浏览器。
1、服务网关会对外屏蔽后台服务的细节。
2、可以将外部请求反向路由到服务器。
3、限流与容错:因为所有的请求都会经过网关,可以在这控制流量。
4、监控和日志。
5、用户认证,授权,反爬虫。
6.3、后端通用服务(中间层服务Middle Tier Service)
后端服务启动的时候会将地址信息注册到注册表里
6.4、前端服务(边缘服务Edge Service)
前端服务可以通过查询注册表调用后端服务。可以将后端服务通过聚合或者裁剪后暴露给外部不同的设备。
聚合:对多个api调用逻辑进行聚合,从而减少客户端的请求数,合二为一。
裁剪:对返回内容针对不同的需求进行裁剪。
7、Spring Cloud是什么?
Spring Cloud是一个开发工具集,简化了分布式开发,其包含多个子项目
1、利用Spring boot的开发便利
2、基于对Netflix开源组件的进一步封装
网友评论