微服务架构介绍
一、微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松散耦合的。
二、集群系统示意图
1、Nginx/Apache分布式转发服务=》Web中间件,包含Application应用=》Application应用访问DB数据库
2、Web中间件,通过Http、Webservice、Tcp=》ESB接口=》访问其他外部系统
3、Nginx 是一个高性能的 HTTP 和反向代理服务器。
三、以web系统为例:
- 应用部署在符合J2EE规范的web中间件,WAS/Weblogic/tomcat等。
- http、session是分布在应用服务器的内存中。
四、微服务架构示意图
1、外部系统的http请求,经过F5发送到Nginx代理服务器;
2、Nginx将代理的请求,发送到Gatewy(网关)生成对应的会话信息;
3、Gatewy(网关)验证通过后,将外网服务发送到Eureka(注册中心),调用注册的内网服务;
4、Redis(Sentinel)存储外网的会话信息,当外网服务多次访问网关时,避免反复校验;
5、微服务1、微服务2、Application访问Eureka(注册中心),注册服务,为外网请求提供服务;
6、微服务1、微服务2、Application访问DB数据库,获取后台的存储数据。
五、以web系统为例:一个微服务,就是一个集群。
1、Gateway(网关):会话管理、灰度版本、数据加解密、访问权限、路由策略。。。
2、微服务注册到Eureka(注册中心):数据交互的中心。
3、Redis(Sentinel):会话存储、缓存数据存储。
六、微服务架构主要特点:
1)高内聚、低耦合;2)轻量级通信;3)服务治理与数据去中心化;
4)运维监控复杂;5)数据一致性复杂;6)集成测试复杂。