- 在微服务架构的项目中,至少要包含两类服务:Provider(提供者)和 Consumer(消费者)。
- 常见的微服务架构有:Dubbo/Dubbox,Spring Cloud
- 微服务架构项目之间一般有两种调用方式:即 RPC 和 RESTful。
- 微服务架构设计原则:围绕业务切分,单一职责,谁创建,谁负责
- 大型票务类电商网站架构
- 采用 Docker 环境进行项目环境搭建和配置
- 采用 MySQL 作为系统数据库并采用集群方式进行配置和部署
- 采用 Mycat 数据库中间件管理数据库集群
- 采用 Elasticsearch 集群实现商品信息的存储和搜索
- 采用 Redis 作为缓存来缓存用户数据
- 采用 Spring Cloud 微服务架构实现微服务管理,将系统应用拆分为提供者、消费者、网关及注册中心。
- 采用 Spring Cloud 整套解决方案,包括使用 Fegin 进行接口管理、使用 Hystrix 进行容错、使用 Ribbon 实现负载均衡。
- 采用前后端分离技术,将数据的业务逻辑处理和展示分开,将数据展示独立为前端项目。前后端之间采用 Nginx 方向代理实现接口访问。
- 采用 Jenkins 实现程序的自动发版和 CI(持续集成)
- 敏捷开发(Agile Development)是一种以人为核心,遵循迭代、循序渐进的开发方法。在 Scrum 中,整个开发周期包括若干个小的迭代周期。每个小的迭代周期称为一个 Sprint,每个迭代周期结束时,Scrum 团队需交付产品增量。
- Spring Cloud 其实是一个总称,它包含了众多搭建分布式系统的公共组件的实现方案,如配置管理、服务发现、断路器、智能路由、服务追踪、负载均衡等。
- Eureka 是一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
- Feign 是一种声明式、模板化的 HTTP 客户端,能够简化服务之间的接口请求。
- Hystrix 是一种容错管理工具,能够通过熔断机制控制服务节点,从而对延迟和故障提供更强大的容错能力。
- Ribbon 提供云端负载均衡,有多重负载均衡策略可供选择,可配合服务发现和断路器使用。
- Zuul 是可以提供动态路由、监控、弹性、安全等边缘服务的框架,相当于是设备和 Netflix 流应用的所有 Web 网站后端请求的第一站。
- Config 是配置管理工具包,可以把配置放到远程服务器上,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion。
- Sleuth 能够跟踪一个请求在微服务间的传播过程,详细记录服务的调用链路,并能统计调用的耗时等数据,帮助分析和优化系统性能。