微服务介绍
# 微服务介绍
- 微服务技术
- 持续集成
B站Spring Cloud项目视频地址 (opens new window)
对传统的应用根据业务功能模块,将单体项目拆分成若干个独立的项目。每个项目完成一部分业务功能,方便独立开发和独立部署。
# 微服务技术
- 如此多个服务的调用关系十分复杂,因此利用注册中心进行统一注册,实现服务注册与发现。
- 而多个服务的配置也是十分繁琐,因此利用配置中心进行统一配置和管理
- 在访问或者调用微服务时,就要利用网关来进行身份校验,负载均衡,最终路由到具体的微服务上,开始处理业务请求
- 微服务处理业务时访问数据库集群,但在高并发的访问下,需要在微服务和数据库集群之间,加入缓存集群。就是将热点数据放入缓存集群里的内存中,提高查询效率。缓存未命中再访问数据库,减缓数据库压力
- 对于复杂的搜索和数据分析,则利用到分布式搜索
- 利用异步通信的消息队列,请求来了之后,上级微服务直接发消息通知下级的微服务后就结束调用了,数据好了之后下级服务再返回。缩短微服务的调用链路(请求-A-B-C 变为 请求-A)
- 如何排除这么多服务的异常或者问题呢,就通过分布式日志来进行统一的存储统计和分析,方便以后复盘
- 系统监控和链路追踪可以监控每个服务的状态,一旦出现问题就可以定位到具体的服务或者应用
# 持续集成
jenkins 进行编译,利用docker之类的容器镜像工具打包成镜像,最后通过k8s之类的容器编排来实现自动化部署
# 微服务技术栈对比
Dubbo | Spring Cloud | Spring Cloud Alibaba | |
---|---|---|---|
注册中心 | zookeeper,redis | Eureka,Consul | Nacos,Eureka |
服务远程调用方式 | Dubbo(rpc协议) | Feign(http协议) | Dubbo,Feign |
配置中心 | SpringCloudConfig | Nacos,SpringCloudConfig | |
服务网关 | SpringCloudGateway,Zuul | SpringCloudGateway,Zuul | |
服务监控和保护 | dubbo-admin,功能弱 | Hystrix | Sentinel |
# 企业微服务技术栈平替关系图
按照左上,右上,左下,右下标号为 1234
1可以升级到2,服务的调用方式不变,还是http
4可以升级到3,服务的调用方式不变,还是dubbo
编辑 (opens new window)