✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏: 微服务
✨特色专栏: 知识分享
🥭本文内容:【1.1】Java微服务:初识微服务(该系列持续更新)
📚 **ps*** : 阅读这篇文章如果有问题或者疑惑,欢迎各位在评论区提出!
----------------------------------------------------- 目录 ----------------------------------------------------------
目录
一、传统单体架构/分布式架构/微服务架构概念/对比
1. 单体架构
2. 分布式架构
3. 微服务架构
二、一些常见微服务架构的实现方式
1. Dubbo
2. Spring Cloud
3. Spring Cloud Alibaba
三、微服务技术栈
1. 技术栈总览(图)
2. 具体技术拆分
--------------------------------------------------------------------------------------------------------------------------------
一、传统单体架构/分布式架构/微服务架构概念/对比
1. 单体架构
概念:(传统架构)将业务的所有功能集中在一个项目中开发,打成一个包部署
优点:
- 架构简单
- 部署成本低
缺点:
- 耦合度高
2. 分布式架构
概念:根据业务功能对系统进行拆分,每个业务模块独立项目开发。称为一个服务
优点:
- 降低服务耦合
- 有利于服务升级拓展
缺点:
- 难度大,适合大型互联网
3. 微服务架构
概念:一种良好的分布式架构方案
优点:
- 拆分粒度更小
- 服务更独立
- 耦合度更低
缺点:
- 架构非常复杂
- 运维、监控、部署难度提高
二、一些常见微服务架构的实现方式
1. Dubbo
注册中心:Zookeeper、Redis、Multicast等
远程服务调用:基于RPC(Remote Procedure Call)实现远程服务调用
配置中心:支持通过配置中心(如Zookeeper)来管理服务的配置信息
服务监控:通过Dubbo Admin或第三方组件(如Prometheus、Grafana)进行可视化监控。
服务保护:Dubbo支持服务级别的容错和熔断机制,例如超时控制、重试、限流等,以增强服务的稳定性和可靠性。
2. Spring Cloud
注册中心:使用Eureka作为默认的注册中心,也支持Consul、Zookeeper等
远程服务调用:通过RestTemplate、Feign等实现了远程服务调用,支持多种HTTP协议和负载均衡策略(如Ribbon)。
配置中心:提供了集中式的配置管理,支持将应用的配置信息存储在Git、SVN等仓库中,并可动态刷新配置信息。
服务网关:Spring Cloud Gateway或Zuul可以作为服务网关
服务监控:Spring Boot Admin可以用于监控和管理Spring Boot应用,包括对应用的健康状况、性能指标的监控和管理。
服务保护:Hystrix、Resilience4j等组件
3. Spring Cloud Alibaba
注册中心:以Nacos作为默认的注册中心
远程服务调用:Spring Cloud Alibaba支持通过RestTemplate、Feign等方式进行远程服务调用,支持多种负载均衡策略(如Ribbon)。
配置中心:Spring Cloud Alibaba使用Nacos作为配置中心,支持集中管理和动态刷新应用的配置信息。
服务网关:Spring Cloud Alibaba提供了Gateway(类似于Spring Cloud Gateway)和Dubbo Gateway两种服务网关,用于流量控制、路由等功能。
服务监控:Spring Cloud Alibaba提供了Sentinel用于服务的实时监控、熔断降级、流量控制等,支持对服务的可视化监控和配置。
服务保护:基于Sentinel提供了服务保护的能力
三、微服务技术栈
1. 技术栈总览(图)
(由于重新仿制一张太麻烦,直接截取了黑马视频技术栈图)
2. 具体技术拆分
技术栈 | 包含内容 |
---|---|
微服务治理 | 注册发现、远程调用、负载均衡、配置管理、网关路由、系统 |
异步通信技术 | MQ消息模型、SpringAMQP、消息堆积问题、消息可靠性、仲裁问题、延迟队列、镜像集群、数据持久化 |
缓存技术 | 缓存穿透/雪崩、SpringDataRedis、Redis主从复制、OpenResty、缓存数据同步、Nginx本地缓存、Redis持久化、多几缓存分层、Redis分片集群、Lua脚本、Redis数据结构 |
DevOps | Dockerfile、DockerCompose、GrayLog、Jenkins、SkyWalking、Docker使用、Kubernetes |
搜索技术 | DSL语句、ES集群、RestAPI、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标 |
最后,
后续内容会陆续更新,希望文章对你有所帮助..!