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 Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
461 7
|
9月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
937 117
|
9月前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
617 115
|
10月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
1840 0
|
8月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
8月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
792 8
|
11月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
669 0
|
12月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
329 5
|
11月前
|
缓存 Java 数据库
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
450 2

热门文章

最新文章