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

简介: 笔者前某国企担任前端开发,两年半经验,某平台签约作者,全栈方向。
+关注继续查看

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

单体架构的主要特点

优点

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

缺点

  • 复杂性高

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

  • 扩展能力受限

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

  • 稳定性差

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

  • 不灵活

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

  • 效率低

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

目录
相关文章
|
9月前
|
Java API
Java中常用API总结(5)—— Object类中的深克隆和浅克隆
不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来;基本数据类型拷贝过来的是具体的数据,引用数据类型拷贝过来的是地址值。在Object类中默认的克隆方式就是浅克隆
118 0
Java中常用API总结(5)—— Object类中的深克隆和浅克隆
|
9月前
|
Java API
Java中常用API总结(4)—— Object类(含实例解读和源码阅读)
Object类所在包是java.lang包,Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。
93 0
Java中常用API总结(4)—— Object类(含实例解读和源码阅读)
|
9月前
|
Java API
Java中常用API总结(3)—— Runtime类(含实例解读)
Runtime类所在包为java.lang包,因此在使用的时候不需要进行导包;并且Runtime类被public修饰了,因此该类是可以被继承的
118 0
Java中常用API总结(3)—— Runtime类(含实例解读)
|
9月前
|
Java API
Java中常用API总结(2)—— System类(含实例解读)
System类所在包为java.lang包,因此在使用的时候不需要进行导包;并且System类被final修饰了,因此该类是不能被继承的
168 0
Java中常用API总结(2)—— System类(含实例解读)
|
9月前
|
Java API
Java中常用API总结(1)—— Math类(含底层源码阅读)
Java中常用API总结(1)—— Math类(含底层源码阅读)
68 0
Java中常用API总结(1)—— Math类(含底层源码阅读)
|
9月前
|
Java
Java面向对象11——匿名内部类知识点总结
Java面向对象11——匿名内部类知识点总结
89 0
Java面向对象11——匿名内部类知识点总结
|
9月前
|
Java
Java面向对象10——内部类知识点总结
Java面向对象10——内部类知识点总结
91 0
Java面向对象10——内部类知识点总结
|
9月前
|
SQL Java
java中集合排序的常用方法总结
平常的开发需求中肯定会遇到对集合排序问题,最常见的排序是在持久层中使用sql进行排序,但是由于业务限制或是其他原因,不能在持久层进行排序处理只能在逻辑层处理,那今天就来聊一下如何在逻辑层,不借助持久层进行集合的排序处理.
|
9月前
|
存储 消息中间件 缓存
四万字爆肝总结java多线程所有知识点(史上最全总结)
全文从多线程的实现方式、线程的状态、线程的方法、线程的同步、线程的通讯、等角度对多线程的基础知识进行总结
219 1
四万字爆肝总结java多线程所有知识点(史上最全总结)
相关产品
微服务引擎
服务网格
推荐文章
更多