整个业务前后端分离。用户可通过手机端或电脑端访问,访问通过nginx集群到达API网关(使用SpringCloud Gateway),网关可以做认证授权(有权限的用户才能通过)、动态路由(负载均衡、访问合适的服务器)、令牌限流(熔断降级)。业务集群是由各个微服务组成的,使用的是SpringBoot框架,各微服务之间采用的是Feign进行通信。数据存储部分,缓存采用的是Redis集群(分片+哨兵模式),基本数据采用的MySql存储,消息队列使用的是RabbitMQ,涉及到全文检索(如搜索商品详情)等则使用的是ElaticSearch,一些图片视频等使用的第三方云服务。分布式系统中,由于每个服务部署在不同的服务器上,服务与服务之间需要相互调用,为了确定各服务在哪些,引入了注册中心(Nacos),服务上下线只用通知注册中心,服务调用也在注册中心寻找被调用服务的位置。各个服务的配置众多,要改一处配置会非常麻烦,可将所有的服务配置放在一起,即配置中心(Nacos),服务从配置中心动态获取配置。服务追踪,追踪服务调用链哪里出了问题,使用springcloud提供的Sleuth、Zipkin、Metrics,把每个服务的信息交给开源的Prometheus进行聚合分析,再由Grafana进行可视化展示,提供Prometheus提供的AlterManager实时得到服务的告警信息,以短信/邮件的方式告知服务开发人员。日志信息可使用ELK对日志进行处理,使用LogStash收集业务里的各种日志,把日志存储到ES中,用Kibana可视化页面从ES中检索出相关信息,帮助我们快速定位问题所在。还提供了持续集成和持续部署。项目发布起来后,因为微服务众多,每一个都打包部署到服务器太麻烦,有了持续集成后开发人员可以将修改后的代码提交到github,运维人员可以通过自动化工具Jenkins Pipeline将github中获取的代码打包成docker镜像,最终是由k8s集成docker服务,将服务以docker容器的方式运行。
微服务架构图
整个业务前后端分离。用户可通过手机端或电脑端访问,访问通过nginx集群到达API网关(使用SpringCloud Gateway),网关可以做认证授权(有权限的用户才能通过)、动态路由(负载均衡、访问合适的服务器)、令牌限流(熔断降级)。业务集群是由各个微服务组成的,使用的是SpringBoot框架,各微服务之间采用的是Feign进行通信。数据存储部分,缓存采用的是Redis集群(分片+哨兵模式),基本数据采用的MySql存储,消息队列使用的是RabbitMQ,涉及到全文检索(如搜索商品详情)等则使用的是ElaticSearch,一些图片视频等使用的第三方云服务。分布式系统中,由于每个服务部署在不同的服务器上,服务与服务之间需要相互调用,为了确定各服务在哪些,引入了注册中心(Nacos),服务上下线只用通知注册中心,服务调用也在注册中心寻找被调用服务的位置。各个服务的配置众多,要改一处配置会非常麻烦,可将所有的服务配置放在一起,即配置中心(Nacos),服务从配置中心动态获取配置。服务追踪,追踪服务调用链哪里出了问题,使用springcloud提供的Sleuth、Zipkin、Metrics,把每个服务的信息交给开源的Prometheus进行聚合分析,再由Grafana进行可视化展示,提供Prometheus提供的AlterManager实时得到服务的告警信息,以短信/邮件的方式告知服务开发人员。日志信息可使用ELK对日志进行处理,使用LogStash收集业务里的各种日志,把日志存储到ES中,用Kibana可视化页面从ES中检索出相关信息,帮助我们快速定位问题所在。还提供了持续集成和持续部署。项目发布起来后,因为微服务众多,每一个都打包部署到服务器太麻烦,有了持续集成后开发人员可以将修改后的代码提交到github,运维人员可以通过自动化工具Jenkins Pipeline将github中获取的代码打包成docker镜像,最终是由k8s集成docker服务,将服务以docker容器的方式运行。
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 分布式、微服务、云架构 JAVA语言开发、跨平台、高性能、高可用、安全、服务化、模块化、组件化、驱动式开发模式 从...
- 分布式、微服务、云架构 JAVA语言开发、跨平台、高性能、高可用、安全、服务化、模块化、组件化、驱动式开发模式 从...
- 一 概述 关于微服务的介绍目前已经有很多文章做了介绍,本文不再对微服务的概念再做进一步阐述,重点将介绍微服务架构具...