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

相关文章
|
2月前
|
Java 开发工具 数据安全/隐私保护
项目《中州养老》
项目《中州养老》是一个面向养老院的后台管理系统,涵盖员工管理端与家属小程序端,实现预约、入住、健康监测等全流程管理。系统采用SpringBoot+Vue3技术栈,集成Redis缓存、阿里云IoT平台与OSS存储,支持智能设备数据采集与实时报警,提升养老管理智能化水平。
 项目《中州养老》
|
2月前
|
人工智能 自然语言处理 API
全面认识MCP:大模型连接真实世界的“USB-C接口”
MCP(模型上下文协议)是Anthropic推出的开放标准,被誉为AI时代的“USB-C接口”,旨在统一大模型与外部工具、数据源的连接方式。它通过标准化通信,让AI智能体能高效调用天气、数据库等各类工具,打破“工具孤岛”,简化开发流程,推动AI应用从对话走向真实世界任务执行,加速构建安全、可扩展的智能生态。
|
2月前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
本文介绍通过四色原型法构建领域模型并生成ER图的过程。运用MI(时标)、PPT(参与方-地点-物品)、Role(角色)和DESC(描述)四种原型,逐步抽象风控系统的业务流程,提炼实体与关系,最终形成数据架构中的ER图,为数据库设计提供基础支撑。(238字)
|
2月前
|
存储 缓存 安全
One Trick Per Day
本文分享Java开发中的6个实用技巧:合理初始化Map容量、避免使用Executors创建线程池、Arrays.asList不可变性、高效遍历Map、SimpleDateFormat线程安全及并发记录加锁策略,提升系统性能与稳定性。(238字)
|
2月前
|
SQL 前端开发 Java
单体版本
JeecgBoot单体版基于Spring Boot与Vue3,集成MybatisPlus、Redis等技术,支持代码生成、前后端分离开发,提供从环境搭建到菜单授权的完整快速开发流程。
单体版本
|
2月前
|
Kubernetes NoSQL 应用服务中间件
物理部署图
物理部署图描述系统运行时的硬件与软件部署结构,展现节点、构件、物件及连接关系,帮助理解分布式系统的运维架构,是实现应用与基础设施协同运行的重要视图。
物理部署图
|
2月前
|
运维 Devops 开发工具
生产环境缺陷管理
针对大型团队多分支开发中bug管理难题,我们基于go-git打造了自动化工具git-poison,实现bug的分布式追溯与发布卡点。通过“投毒-解毒”机制,精准识别未修复或漏合的bug,阻塞高风险发布,降低协同成本,避免人为疏漏导致的生产事故,提升研发效能与系统稳定性。
|
2月前
|
消息中间件 存储 数据挖掘
应用架构图
本文介绍应用架构图的设计方法,涵盖单体与分布式架构。从展现层、业务层、数据层到基础层,分层解析技术实现,并说明应用间及外部系统的调用关系,明确系统边界,为技术方案落地提供清晰蓝图。(239字)
应用架构图
|
2月前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图。横轴为对象,纵轴为时间,通过生命线、控制焦点和消息展示动态协作过程,强调交互的时间顺序,适用于建模并发行为与系统流程。
系统时序图
|
2月前
|
人工智能 NoSQL Java
参考简历模板
本简历模板提供多个AI+微服务项目范例,涵盖教育、金融、物流等领域,展示Spring Cloud、Spring AI、大模型集成、RAG、分布式任务调度等技术在实际项目中的应用,供参考借鉴。
参考简历模板