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

单体架构的主要特点

优点

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

缺点

  • 复杂性高

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

  • 扩展能力受限

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

  • 稳定性差

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

  • 不灵活

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

  • 效率低

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

目录
相关文章
|
6天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
17天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
23天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
29天前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
71 5
|
27天前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
34 1
|
27天前
|
Cloud Native 持续交付 云计算
云原生入门指南:从容器到微服务
【10月更文挑战第28天】在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本篇文章将带你了解云原生的基本概念,探索它如何通过容器化、微服务架构以及持续集成和持续部署(CI/CD)的实践来提升应用的可伸缩性、灵活性和可靠性。你将学习到如何利用这些技术构建和部署在云端高效运行的应用,并理解它们对DevOps文化的贡献。
52 2
|
1月前
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
85 3
|
1月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
46 3
|
2月前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
23 1