使用HTTP进行传输数据
Nginx进行负载均衡
springCloudgetway进行动态路由,还可以进行认证授权合法后才进行下一步 还可以进行限流
api网关使用springCloudgateway进行动态路由到指定服务(商品管理)ribbon进行负载均衡 ,springcloud阿里巴巴旗下sentinel进行熔断降级 限流,安全问题使用springsecurity进行安全控制
springboot编写的微服务系统,用springcloud feign进行相互之间的调用
有些系统需要登录 使用OAuth2.0认证中心进行控制
缓存使用redis,可以是sentinel(哨兵集群)加上shard(分片集群)
持久化用Mysql可以进行读写分离也可以最终分库分表
服务与服务之间使用消息队列RabbitMQ进行异步解耦,最终完成分布式事务的一致性
有些服务要进行检索,比如全文检索使用ES
有些服务要进行图片存储,使用阿里云的对象存储服务OSS
为了快速定位项目中可能出现的问题,使用ELK对日志进行相关的处理.logStash收集各种日志存储到ES中,然后用kibana可视化页面从ES中快速检索出相关日志,快速定位问题所在
将服务注册到服务中心,服务之间可以互相调用,使用Springcloud Nacos(服务注册中心)
服务众多,需要进行集中管理,实现改一处配置,这些服务的配置都进行更改,使用配置中心springcloud Nacos
服务调用期间链路可能出现问题,使用springCloud服务链路跟踪: Sleuth+Zipkin,把每一个服务的信息交给开源框架prometheus进行聚合分析
再由grafana进行可视化展示,通过prometheus提供的Alertmanager实时得到一些服务的告警信息,以邮件或者手机告知开发或者运维人员
由于微服务太多,每一个发布起来太麻烦,提供持续集成和持续部署
开发人员将代码发布到github,运维人员可通过自动化工具jenkins从github上获取代码将其打包成Docker镜像,最终使用K8S来集成整个docker服务,我们将整个服务以docker容器的方式来运行
配置服务名,可以使注册中心识别此服务
在nacos中加入服务,可以在浏览器nacos地址中看到此服务