首页 > 编程语言 >简单了解Java微服务(一)

简单了解Java微服务(一)

时间:2022-08-19 10:25:39浏览次数:66  
标签:服务 项目 单体 Java 简单 架构 示意图 分布式

一.微服务诞生前的传统Java项目架构:单体架构

  在微服务正式应用于项目架构体系时,传统的Java项目架构一般为单体架构。这种单体架构的特点是将所有的业务功能集中在一个项目中进行开发和测试,最终上线时将此项目打包进行部署。这种单体架构的有点是架构简单易上手,并且在部署时操作容易,只需将一个项目打包即可。

  但是它也有一个致命的缺陷,即每个业务功能之间的耦合度太高,如果其中一个业务的功能出现问题,那么整个项目都得停下进行维护,不然项目运行就会发生崩溃或者异常,具体的单体架构示意图如图1.1所示。

  

 

图1.1 单体架构示意图

二.微服务前身:分布式架构

  针对于单体架构中出现的各个业务功能耦合度过高的问题,一些聪明的开发人员将传统的单体架构进行了改造,将原来大量集中式的项目架构依据业务功能数量进行分解为一个个的单体架构,将每个业务模块作为独立项目开发,并称为一个服务,具体的分布式架构示意图如图1.2所示。

 

 

图1.2 分布式架构示意图

 

  将每个业务功能模块抽出来独立成一个单独的服务进行开发,这样的做法虽然在一定程度上降低了整体项目中各个功能模块之前的耦合度,但是其中仍存在着不少的问题,例如每个服务拆分到什么程度?每个服务之间的集群地址如何维护? 服务之间的功能如何实现远程调用? 服务的健康状态如何感知?......这些都是每个开发人员在使用分布式架构时需要考虑的问题。

  所以为了解决分布式架构存在的一系列问题,微服务便由此应运而生。

三.什么是微服务

  微服务是一种经过良好架构设计的分布式架构方案,它的出现即是为了解决一般的分布式架构产生的问题。

  微服务架构特征:

  (一)单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。

  (二)面向服务:微服务对外暴露业务接口。

  (三)自治:团队独立、技术独立、数据独立、部署独立。

  (四)隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。

  微服务架构示意图如图1.3所示。

 

图1.3 微服务架构示意图

 

 

 

标签:服务,项目,单体,Java,简单,架构,示意图,分布式
From: https://www.cnblogs.com/OnePunchBlog/p/16601086.html

相关文章

  • 【Java基础】三元运算符 a>b ? 1 : 2 ;
    1.三元运算符a>b?true:false;可以简化为if-else语句if(a>b){ System.out.println("true");}else{ System.out.println("false");}2.运算符的优先级只有单目运......
  • 华为服务器修改ibmc账号密码、配置raid5、安装系统
     修改ibmc账号密码转载自:https://www.cnblogs.com/mtactor/p/2288V5.html 昵称:mtactor方法一:采用网线直连管理口1、使用网线直接连接服务器的Mgmt口,另外一端连接......
  • 【Java基础】位运算<<,>>,>>>,&,|,^,~
    1.位运算符位运算符是对整数的二进制进行的运算。2.位运算符细节<<:在一定范围内,每向左移1位,相当于*2>>:在一定范围内,每向右移1位,相当于/2>>>表示无符号右移运......
  • 【Java基础】逻辑运算符&,&&,|,||,!,^
    1.逻辑运算符用于连接布尔型表达式,例如:x>3&&x<62.&和&&的区别表示and(1)&,左边无论真假,右边都进行运算。(2)&&,如果左边为真,右边参与运算;如果左边为假,那么右边不参与......
  • JAVA从头学习-2022年8月15日
    总概述1、JAVA是什么是一门高级编程语言2、JAVA是哪家公司研发的,现在属于哪家公司sun,oracle3、Java之父是谁詹姆斯.高斯林......
  • MongoDB 单服务器创建用户并授权
    MongoDB单服务器创建用户并授权前言之前使用MongoDB时对于用户的认证和授权一直模模糊糊,各种教程看的半半拉拉,最后勉强能用。现在有时间了来总结一下。基础1.常见......
  • java方法
    方法什么是方法java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类和对象中方法在程序中被创建,在其他地方被引用设......
  • java.io.tmpdir
    默认目录操作系统不同这个系统属性所表示的目录也不同Windows:java.io.tmpdir:[C:\temp\]Solaris:java.io.tmpdir:[/var/tmp/]Linux:java.io.tmpdir:[/tmp]或[/......
  • 新手学习java笔记——运算符
    运算符算术运算符+,-,*,/,%,++,--前四位为数学的加减乘除例:1+2=32-1=11*2=22/1=1在进行运算时要注意精度的损失和数值溢出的问题例如int类型和int类型相乘如果超出了i......
  • Java基础知识整理(部分)
    继承的本质是对某一类的抽象,从而实现对现实世界更好的建模1.extends的意思是扩展,子类是父类的扩展2.Java中类只有单继承,没有多继承在Java中,所有类都默认直接或间接继承Obje......