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

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

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

单体架构的主要特点

优点

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

缺点

  • 复杂性高

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

  • 扩展能力受限

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

  • 稳定性差

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

  • 不灵活

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

  • 效率低

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

目录
相关文章
|
21天前
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
20天前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
21天前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
23天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【8月更文挑战第28天】在Java编程的世界里,异常处理是一块基石,它确保了程序的健壮性和可靠性。本文将通过深入浅出的方式,带你了解Java异常处理的基本概念、分类、以及如何有效地捕获和处理异常。我们将一起探索try-catch-finally结构的奥秘,并学习如何使用throws关键字声明方法可能会抛出的异常。此外,我们还会讨论自定义异常类的创建和使用,以及最佳实践。无论你是Java新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你编写出更加稳定和可靠的代码。
|
23天前
|
编解码 网络协议 Oracle
java网络编程入门以及项目实战
这篇文章是Java网络编程的入门教程,涵盖了网络编程的基础知识、IP地址、端口、通讯协议(TCP和UDP)的概念与区别,并提供了基于TCP和UDP的网络编程实例,包括远程聊天和文件传输程序的代码实现。
java网络编程入门以及项目实战
|
8天前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
20天前
|
Cloud Native 云计算 微服务
云原生入门指南:从零开始构建微服务
【8月更文挑战第31天】在数字化浪潮中,云原生技术正引领着软件开发的未来。本文旨在为初学者揭开云原生的神秘面纱,通过一个简易微服务的搭建过程,展示云原生应用的构建和部署。我们将从概念理解到实际操作,一步步带领读者走进云原生的世界,探索其背后的哲学与实践之美。
|
20天前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
20天前
|
Java 数据库连接 开发者
Java中的异常处理:从入门到精通
【8月更文挑战第31天】 在编程世界中,错误和异常就像是不请自来的客人,总是在不经意间打扰我们的程序运行。Java语言通过其异常处理机制,为开发者提供了一套优雅的“待客之道”。本文将带你走进Java异常处理的世界,从基础语法到高级技巧,再到最佳实践,让你的程序在面对意外时,也能从容不迫,优雅应对。
|
20天前
|
Kubernetes Cloud Native Docker
云原生入门:从容器化到微服务
【8月更文挑战第31天】在数字化浪潮中,云原生技术成为企业转型的核心驱动力。本文将带领读者从零开始,探索如何利用云原生技术构建现代、高效的应用架构。我们将一起学习容器化的基础,深入理解Docker和Kubernetes的工作原理,并实践构建一个简单的微服务应用。通过代码示例和实操演练,让理论与实践相结合,为读者揭开云原生技术的神秘面纱。