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

简介: 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版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
10月前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
202 2
|
10月前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
246 1
|
10月前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
201 1
|
12月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
520 7
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
Java 数据库连接 数据库
Java 组件详细使用方法与封装实战指南
本指南详解Java核心组件使用与封装技巧,涵盖跨平台开发、面向对象编程、多线程、数据库操作等关键内容,并提供工具类、连接池、异常及响应结果的封装方法。结合Spring框架、MyBatis、Spring Boot等主流技术,助你掌握高质量Java组件设计与开发实践。
337 2
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
474 5
|
10月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
528 0