Day01

简介: Day01:微服务并非绝对优于单体,需结合业务场景。简单应用单体更优,复杂系统适合微服务。常用中间件如Nacos、OpenFeign、Gateway等。Nacos支持心跳机制与主动检测,临时实例异常剔除,非临时则保留。对比Eureka,Nacos在服务发现、健康检测、集群模式上更具优势。负载均衡常用轮询算法。

Day01

每日必会
微服务的好处?一定比单体好吗?

面试官这个不一定,技术还是为业务服务的,简单的业务单体肯定更好,他没有分布式事务、服务雪崩等一系列服务治理的问题,并且部署、维护成本低。微服务更适合一些表模型复杂、业务链路长的场景,这样虽然会带来一些服务治理问题,但是也降低了服务之间的耦合,有利于后续的服务拓展。

微服务你用到了哪些中间件

我的项目用到了Nacos,当做注册和配置中心;远程服务调用OpenFeign;网关GateWay

SPRINGCLOUDGATEWAYZUUL

SPRINGCLOUDALIBABA

SPRINGCLOUDCONFIG,NACOS

EUREKACONSU

SPRINGCLOUD

服务监控和保护

DUBBO-ADNIN,功

SPRINGCLOUDGIATEWAY

SPRINGCLOUACONFIG

ZK,REDIS,NACOS

配置中心

SENTINEL

DUBBO

服务网关

IGNHTTP协I

HSTRIX

服务远程调用

功能弱

DUBBO,FEIGRN

DUBBO协议

注册中心

EUEKA

NACOS

ZUL


Nacos注册中心的心跳机制

Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式临时实例心跳不正常会被剔除,非临时实例则不会被剔除

NACOS注册中心细节分

服务消费者

册服务信息

ACOS主动询问

L0CALAOST:8O81

服务列表缓存

USER-SEVICE:

采用心跳监测

注册中心

服务PU11

服务提供者

定时拉取

ACOS

远程调用

非临时实例

临时实例

00


这里也有可能问到Eureka和Nacos的区别,我贴个图有点印象(比较少,了解即可)

EUREKA-CLIENT

心跳续约,每30秒1次

UREKA的作用

USERSERVICE

1OCA1HOST:8082

UREKA-SEVER

服务消费者

USERSERVICE

1OCA1HOST:8080

USER-SERVICE的信息

服务提供者

2)拉取服务

LOCA1HOST:8081

1OCA1HOST:8081

1OCA1HOST:8082

)远程调用

1OCALHOST:8083

注册中心

1)注册服务信息

OCA1HOST:8081

1OCA1HOST:8083

SER一SERVICE

ORDER-SERVICE:

....,3)负载均衡

USER-SERVICE:

USER-SERVICE

ERVICE

8083

8082

ORDER-

8081

8080


Nacos与eureka的共同点
都支持服务注册和服务拉取
都支持服务提供者心跳方式做健康检测
Nacos与Eureka的区别
Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
临时实例心跳不正常会被剔除,非临时实例则不会被剔除
Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

常见的负载均衡算法

有轮询、加权轮询、权重、响应时间、随机、区域可用等吧,我们项目中一般都是轮询,它的意思就是当有多台机器的时候,就一个一个轮着来。

理论专项
Java基础
JMM模型
HashMap
线程池核心参数
synchronized

相关文章
|
3月前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
本文介绍通过四色原型法构建领域模型并生成ER图的过程。运用MI(时标)、PPT(参与方-地点-物品)、Role(角色)和DESC(描述)四种原型,逐步抽象风控系统的业务流程,提炼实体与关系,最终形成数据架构中的ER图,为数据库设计提供基础支撑。(238字)
|
3月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用开发中的关键技术。前者为跨模型工具调用提供标准化协议,实现解耦与兼容;后者是模型调用外部功能的内置机制。二者互补,共同构建“意图解析-协议传输-工具执行”的分层架构,推动AI应用生态发展。
|
3月前
|
人工智能 自然语言处理 API
全面认识MCP:大模型连接真实世界的“USB-C接口”
MCP(模型上下文协议)是Anthropic推出的开放标准,被誉为AI时代的“USB-C接口”,旨在统一大模型与外部工具、数据源的连接方式。它通过标准化通信,让AI智能体能高效调用天气、数据库等各类工具,打破“工具孤岛”,简化开发流程,推动AI应用从对话走向真实世界任务执行,加速构建安全、可扩展的智能生态。
|
3月前
|
Java 开发工具 数据安全/隐私保护
项目《中州养老》
项目《中州养老》是一个面向养老院的后台管理系统,涵盖员工管理端与家属小程序端,实现预约、入住、健康监测等全流程管理。系统采用SpringBoot+Vue3技术栈,集成Redis缓存、阿里云IoT平台与OSS存储,支持智能设备数据采集与实时报警,提升养老管理智能化水平。
 项目《中州养老》
|
3月前
|
监控 NoSQL JavaScript
1-JeecgBoot介绍
JeecgBoot是一款基于代码生成器的低代码开发平台,采用SpringBoot2.x、Vue、Ant Design等主流技术,实现前后端分离。支持分布式、微服务架构,集成Shiro、JWT、Redis、Nacos等组件,提供高效开发能力。
|
3月前
|
消息中间件 人工智能 NoSQL
RocketMQ:A2A协议实现多智能体优化
Apache RocketMQ推出LiteTopic轻量级通信模型,结合A2A协议与AgentScope框架,为多智能体系统提供高可靠、低延迟的异步通信方案,支持会话持久化、断点续传与动态协同,助力AI应用构建稳定高效的协作基座。
 RocketMQ:A2A协议实现多智能体优化
|
3月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
本文详解RAG系统中五种核心分块策略——固定大小、语义、递归、基于文档结构及基于LLM的分块,涵盖其技术原理、优劣对比与适用场景。分块策略直接影响检索精度与生成质量,是构建高效RAG系统的关键。文章结合实例与决策树,指导读者根据文档类型与业务需求选择最优方案,并探讨当前挑战与前沿优化方向。
|
3月前
|
消息中间件 监控 Java
RocketMQ:底层Netty频繁OS OOM
本文分析了一起RocketMQ应用因Netty频繁申请堆外内存导致OS OOM的问题。根本原因是多个ClassLoader加载了多个PooledByteBufAllocator实例,各自独立占用堆外内存,突破JVM的MaxDirectMemorySize限制。结合Arthas、NMT等工具深入排查,最终定位到rocketmq-client实例占用近1G堆外内存。建议短期调小Java堆以腾出空间,长期优化Netty内存使用与类加载机制。
 RocketMQ:底层Netty频繁OS OOM
|
3月前
|
Java Linux Apache
Docker
本文介绍Docker基础知识与实战操作,涵盖镜像打包、容器运行、日志查看及Dockerfile编写等内容,帮助开发者快速掌握Docker核心技能并实现Java项目容器化部署。
Docker
|
3月前
|
Java Linux 开发工具
Linux
本文介绍如何在Linux系统上部署SpringBoot应用。内容涵盖项目打包、JAR文件上传、JDK安装与配置、应用启动及健康检查接口验证,助力快速完成Java应用的Linux环境部署。
 Linux

热门文章

最新文章