Java微服务及微服务架构组件大纲

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Java微服务及微服务架构组件大纲

大纲复习

服务治理:

nacos 注册中心(nacos 同时解决配置)=Eureka+配置

为什么要用注册中心

一旦服务提供者地址变化,就需要手工修改代码

一旦是多个服务提供者,无法实现负载均衡功能

一旦服务变得越来越多,人工维护调用关系困难


服务治理就是 服务注册 和 服务发现

服务注册中心nacos

原来的

现在


负载均衡:

springcloud 提供 ribbon

服务调用:

fegin---->容错机制 多个路径

容错组件:

Sentinel

阿里巴巴开源的一款

Sentinel +fegin

消息队列

mq(RocketMQ Kafka、ActiveMQ、RabbitMQ)

数据库:

mysql, NoSQL如redis,ES

docker:

Docker 配置文件目录

深入研究: 高并发(访问量)、服务雪崩

一个完整的项目,微服务架构一般包括下面这些服务:

注册中心

(常用的框架 Nacos、Eureka)随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus消息总线发出消息通知(Kafka、RabbitMQ等)到各个服务完成配置动态更新,否者只有重启各个微服务实例,但是nacos可以同时实现注册和配置中心,以及配置的动态更新。

统一网关(常用的框架 Gateway、Zuul)

认证中心(常用技术实现方案 Jwt、OAuth)

分布式事务(常用的框架 Txlcn、Seata)

文件服务

业务服务

高并发:在微服务架构中,由于网络原因或者自身原因,服务并不能保证服务100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量网络访问,会形成任务堆积,卡Duang,甚至导致服务挂掉


雪崩效应:由于服务服务两两依赖性,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩效应”

a挂了----》b请求a也跟着挂了----》c请求b也跟着挂了


原因 1 不合理容量设计 2 高并发响应变慢 3 资源耗尽

所以只有做好容错工作,不会影响其他服务正常运行

常见容错方案

隔离 超时 限流 熔断 降级

熔断

当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务地调用,这种牺牲局部,保护整体就就做熔断。----暂时切断–正常再恢复

熔断关闭状态

a->>b正常访问

熔断开启状态

a—>非正常访问,直接执行本地的fallback方法

半熔断状态

过一下子去试一下可以访问了嘛,行就关闭熔断,不行接着熔断。每隔一段时间去试试。


降级 fegin 备用方法 ----》系统繁忙,请稍后再试

容错组件:Sentinel 阿里巴巴开源的一款

Sentinel +fegin

Sentinel体现:流量控制、熔断降级

Sentinel与Hystrix区别:效果目的一样,Hystrix采用线程池隔离

其它:OpenSergo(专注微服务治理)+Sentinel


Sentinel还提供系统负载报错。在集群环境下,会把本应该这个机器流量转发到其他机器上(叫兄弟来帮忙),如果其他机器也在边缘了,这时Sentinel提供对应保护机制,让系统的入口流量和系统负载达到一个平衡,保证系统最大能力处理最多请求


sentinel localhost:阈值类型:QPS 线程数

单机阈值:30。。。

流控效果:快速失败 Warm Up 排队等待


Apache Jmeter测压工具


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
192 6
|
3月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
72 1
|
2月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
243 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
5月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
5月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2月前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
424 36
微服务架构解析:跨越传统架构的技术革命
|
14天前
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
|
24天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
3月前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
72 7
|
3月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
216 10