Springcloud微服务架构基础知识解析

 更新时间:2020年04月20日 11:16:53   作者:知识追寻者  
这篇文章主要介绍了Springcloud微服务架构基础知识解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一 前言

学习微服务要从基础的架构学起,首先你要有个微服务的概念才能学习对吧!!如果你都不知道啥是微服务,就一头扎进去学习,你自己也觉得自己也学不会对吧。本篇文章主要让大家快速了解基础的架构分格,以便于微服务入门。

二 单体架构

单体架构是传统架构,其发展了几十年,我们今天任然还在用单体架构开发,存在即合理;单体架构也就是通常的表现层跟UI界面交互,业务层写业务逻辑,数据DAO层访问数据库。其部署方式也很简单,直接将项目打包成war包放进web服务器(如tomcat,jetty)中运行; 其优点如下:

易于开发,架构单一,很容易上手,一站式到底;

易于部署,直接放进web服务器即可运行;

其缺点如下:

维护困难,每次进行代码维护,往往修改都是从上而下改动,需将整个程序部署才能看见修改结果;

二次开发难度大,都要读懂大量代码,业务逻辑复杂;

测试难度大,随着业务越多,测试的难度会越大;

分布式架构

分布式架构简单的可以理解为由多个单体结构组成,但是它们都是通过发布的服务相互调用;

分布式服务架构中比较出门的就是面向服务的SOA(Service-Oriented Architecture)架构,服务之间通过通信协议进行相互通信;比较出名的服务治理框架也就是阿里开源的Dubbo框架,目前在Apache旗下,服务之间通过远程过程调用(RPC),主要角色如下;

注册中心:服务的注册与发现;

提供者:提供服务

消费者:消费服务

监控中心:监控服务之间的日志和健康;

四 微服务架构

到目前为止其实关于微服务架构还是没有一个精确的定义;2014 年 Martin Fowler 在 《Microservices》 一文中提出了微服务的概念,大体的我们可以总结为如下几点:

一个单体应用开发成多个微小服务;

微小服务间通常通过HTTP协议或者restful风格调用;

每个微小服务围绕业务逻辑构建,独立自动部署;

In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

微服务的优点如下:

  • 独立部署,易于开发维护
  • 服务拆分,业务逻辑清晰,
  • 服务间通过HTTP通信,耦合度低
  • 微服务缺点如下:
  • 部署难度大,目前有docker等容器化技术相对好点;
  • 分布式事物问题突出;

五参考文档

dubbo官方文档

miroservice

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深入了解Java定时器中的Timer的原理

    深入了解Java定时器中的Timer的原理

    这篇文章主要介绍了Java定时器中的Timer的原理。Timer主要用于Java线程里指定时间或周期运行任务,它是线程安全的,但不提供实时性(real-time)保证。接下来就跟随小编一起深入了解Timer吧
    2022-01-01
  • Java中对象的序列化方式克隆详解

    Java中对象的序列化方式克隆详解

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方。这篇文章主要给大家介绍了Java中对象的序列化方式克隆,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • Hadoop源码分析二安装配置过程详解

    Hadoop源码分析二安装配置过程详解

    本篇是Hadoop源码分析系列文章第二篇,主要介绍Hadoop安装配置的详细过程,后续本系列文章会持续更新,有需要的朋友可以借鉴参考下
    2021-09-09
  • Java面试题冲刺第十二天--数据库(2)

    Java面试题冲刺第十二天--数据库(2)

    这篇文章主要为大家分享了最有价值的三道数据库面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java变量的区别浅析

    java变量的区别浅析

    对于java的变量天天见到,但有时候别人问起它们的区别有时候也说不全,所以就找了些资料整理了整理...
    2013-12-12
  • Java怎么获取当前时间、计算程序运行时间源码详解(超详细!)

    Java怎么获取当前时间、计算程序运行时间源码详解(超详细!)

    有的时候,我们需要查看某一段代码的性能如何,最为简单的方式,可以通过计算该段代码执行的耗时,来进行简单的判断,这篇文章主要给大家介绍了关于Java怎么获取当前时间、计算程序运行时间的相关资料,需要的朋友可以参考下
    2024-07-07
  • Java设计模式之模板方法模式详解

    Java设计模式之模板方法模式详解

    这篇文章主要为大家详细介绍了Java设计模式之模板方法模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 详解Mybatis中的select方法

    详解Mybatis中的select方法

    这篇文章主要介绍了Mybatis的select方法,通过代码给大家详细介绍了selectByExample方法,selectById方法,需要的朋友可以参考下
    2018-07-07
  • Java Annotation注解相关原理代码总结

    Java Annotation注解相关原理代码总结

    这篇文章主要介绍了Java Annotation注解相关原理代码总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 关于jpa中无法删除onetomany中many问题的解决

    关于jpa中无法删除onetomany中many问题的解决

    这篇文章主要介绍了关于jpa中无法删除onetomany中many问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12

最新评论