✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏: 微服务
✨特色专栏: 知识分享
🥭本文内容:【1.1】Java微服务:初识微服务(该系列持续更新)
📚 **ps*** : 阅读这篇文章如果有问题或者疑惑,欢迎各位在评论区提出!
----------------------------------------------------- 目录 ----------------------------------------------------------
目录
[1. 单体架构](#1. 单体架构)
[2. 分布式架构](#2. 分布式架构)
[3. 微服务架构](#3. 微服务架构)
[1. Dubbo](#1. Dubbo)
[2. Spring Cloud](#2. Spring Cloud)
[3. Spring Cloud Alibaba](#3. Spring Cloud Alibaba)
[1. 技术栈总览(图)](#1. 技术栈总览(图))
[2. 具体技术拆分](#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、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标 |
[具体技术栈拆分] |
最后,
后续内容会陆续更新,希望文章对你有所帮助..!