JAVA微服务入门总结分享 ——《我的Java打怪日记》

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 笔者前某国企担任前端开发,两年半经验,某平台签约作者,全栈方向。

Spring Boot

在了解 Spring Boot 之前,我们应该先了解一下 什么是 Spring , 因为是 Spring Boot Spring 简化配置。

springboot.jpg

什么是 Spring

Spring 是 一个开源框架,2003年 火起来的一个 轻量级 Java 开发框架。

作者:Rod Johnson.

Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发。

Spring 是 如何简化开发的

  1. 基于 POJO 的轻量级和最小侵入性编程。
  2. 通过 IOC, 依赖注入(DI) 和 面向接口实现松耦合。
  3. 基于切面 (AOP) 和 惯例进行声明式编程。
  4. 通过切面和模板减少样式代码。

什么是Spring Boot

Spring Boot 是简化 Spring 应用开发,约定大于配置。

Spring Boot是由Pivotal团队打造的,并在2014年发布的一个全新框架,其设计目标就是用来简化Spring应用的搭建、开发及部署。Spring Boot采用了特定的方式进行配置,从而达到使开发人员不在需要配置繁琐的xml文件。简单的说其实Spring Boot并不是什么新的框架,就是摒弃了xml的配置方式,使用了一种新的配置方式;然后在maven中使用starter的方式整合了很多第三方框架,同时提供了很多默认的配置参数。

Spring Boot主要特点

  • 可以快速的搭建一个 Spring 项目
  • 默认使用 嵌入式 的 Servlet 容器,应用无需打成 WAR
  • 有很多 starters 自动依赖和版本控制 的 启动器。 [ 类似于 npm 依赖包]
  • 自动化配置,简化开发,可以配置修改默认值
  • 无需配置XML ,无代码生成,开箱即用。
  • 生产环境的运行应用监控
  • 与云计算的集成

主要简化配置,构建项目快,入门门槛低

微服务

什么是微服务

微服务是一种 架构风格 , 它要求我们在开发一个应用时,将这个应用构建成一系列小服务的组合,客套通过 HTTP 的方式进行互通。

微服务架构 就是 打破之前 单体架构all in one), 把每个功能元素独立处理。把独立出来的功能元素动态组合,需要的功能元素才拿来组合,需要多一些时可以整合多个功能元素。 微服务架构是对功能元素进行复制,而没有对整个应用进行复制。

采用微服务架构开发的系统,每一个独立的业务单元被划分为一个单独的模块,而每一个模块可以被独立的部署在服务器中,提供相应的业务服务。最终所有模块提供的服务组合在一起,就可以形成一套完整的业务流程,成为一个系统。

微服务.jpg

微服务架构主要特点

它主要解决了单体架构中存在的问题。

模块之间相互独立,通过接口完成模块间的通信,有效降低了代码的耦合度。在开发新增的业务功能时,你只需要从代码库中下载你需要的模块,并不需要下载所有的代码,开发和测试将会更加简单,并且新功能不会对原有的系统产生任何影响,系统的可扩展性得到了有效地提升。

  1. 节省了调用资源
  2. 每个功能元素的服务都是一个可替换的、可独立升级的

什么是单体架构?

单体架构比较初级,典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。

所有功能都部署在同一个服务器中的系统,采用的架构就是单体架构。

单体式.jpg

单体架构的主要特点

优点

  • 部署 / 测试 容易
  • 开发简单,集中式管理
  • 功能都在本地,没有分布式的管理和调用消耗

缺点

  • 复杂性高

    复杂性高,当项目迭代时间长,模块代码会变臃肿,耦合度高,难以维护

  • 扩展能力受限

    体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。

  • 稳定性差

    一个微小的问题,都可能导致整个应用挂掉

  • 不灵活

    构建时间长,任何小修改都要重构整个项目,耗时

  • 效率低

    开发都在同一个项目改代码,相互等待,冲突不断

目录
相关文章
|
17天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
34 1
java制作游戏,如何使用libgdx,入门级别教学
|
5天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
14天前
|
存储 Java 数据库
使用 AuraDB 免费版构建 Java 微服务
使用 AuraDB 免费版构建 Java 微服务
28 11
|
8天前
|
安全 Java 测试技术
🌟Java零基础-反射:从入门到精通
【10月更文挑战第4天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 2
|
14天前
|
缓存 Java 数据库连接
使用 NCache 将 Java 微服务扩展到极致性能
使用 NCache 将 Java 微服务扩展到极致性能
23 8
|
1月前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
35 4
|
1月前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
44 5
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
1月前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
2月前
|
Cloud Native 云计算 微服务
云原生入门指南:从零开始构建微服务
【8月更文挑战第31天】在数字化浪潮中,云原生技术正引领着软件开发的未来。本文旨在为初学者揭开云原生的神秘面纱,通过一个简易微服务的搭建过程,展示云原生应用的构建和部署。我们将从概念理解到实际操作,一步步带领读者走进云原生的世界,探索其背后的哲学与实践之美。