微服务架构必懂

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40905403/article/details/96422732

写在前面

既然点进来了,就慢慢看,一定会对你认识JavaWeb项目有所帮助。而且语言描述的相当通俗易懂。

web项目类型介绍

用Spring框架开发的就叫Spring应用或Spring项目。
现在的应用程序常用的有两种类型。一种是单体项目,一种是分布式项目。
假如我们现在有一个项目,它包含了100个模块。

单体项目

单体项目: 将100个模块整合在一起。
在这里插入图片描述
单体项目存在的问题:
单体项目在架构设计上,耦合性较高.如果项目中有一个模块出现了问题,则可能影响整个项目的运行.(耦合:意思就是A用到了B,又用到了C,C又用到了B,A,互相依赖)

分布式项目

分布式项目: 将单体项目按照模块进行拆分。降低模块的耦合性。
什么叫分布式?
分布分布,直接理解就是将不同的模块分布到不同的机子上,每一个模块都是一个独立的项目,都有自己的ip地址和端口。然后这些项目之间互相配合。这种是物理分布。我们也可以一台机子启动多个项目,每个项目都有自己的ip和端口。这是逻辑分布。
分布式适用于模块多多的项目。

使用的技术

Spring + SpringMVC(Struts) + Mybatis(Hibernate)

信念: 应用程序开发应该只关注业务逻辑,其他的最好有框架帮我们处理。

如果没有框架,我们按流程开发一个项目需要::
1.写创建对象的代码,写对象与对象之间互相依赖的代码(用set或者构造器)
2.业务逻辑代码
3.操作数据库的代码(除了sql,还需要写其他的代码)
4.写servlet代码,自己处理从前端传来的数据,以及返回给前端的代码
5.许许多多重复的异常处理,日志等代码

如果没有框架,上面这些事情都是需要我们自己做的,而且这和我们的信念是违背的。所幸,JavaWeb发展到今天,市场开源了很多帮助我们开发的框架,我们现在只需要关注业务逻辑就可以了。
具体框架起到了什么作用,请看下文。

Spring

Spring是一个轻量级开源框架。主要有两大模块IOC和AOP。Spring框架维护着一个容器,用来盛放我们一个个的java对象。用Spring容器管理的对象我们叫做JavaBean。
IOC: 翻译为中文是控制反转。解决了对象的创建及对象之间的依赖关系。实现了代码的解耦。
AOP: 面向切面编程。这是一种设计思想。在很多语言中都有各自的实现。
它主要解决的问题是在不修改源代码的情况下给程序动态统一添加功能的一种技术。利用AOP我们可以进行统一异常处理,日志记录,安全控制等等功能。自行了解,不宜解释太多。

SpringMVC

Spring 框架提供了构建 web 应用程序的全功能 MVC 模块。利用SpringMVC我们后台程序就能和前端进行交互了

SpringBoot

用Spring+SpringMVC开发JavaWeb项目会产生很多配置,太复杂。SpringBoot用来简化新Spring应用的初始搭建以及开发过程以及繁杂的配置。SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。内置了Tomcat。

SpringCloud

SpringCloud架构提供了全局微服务治理的一整套解决方案。它不是一个新框架,它将市场上优秀的框架做了二次封装,将这些框架整合到了一起,形成一整套的解决方案。
SpringCloud构建分布式系统简单。Spring Cloud构建于Spring Boot之上,使开发人员可以轻松入门并快速提高工作效率。
SpringCloud为微服务提供了一整套的解决方案,它是一个微服务的生态体系.
在这里插入图片描述
在这里插入图片描述

SpringCloud Data Flow

这个我也没研究过。

Connect the Enterprise to the Internet of Anything—mobile devices, sensors, wearables, 
automobiles, and more. Spring Cloud Data Flow provides a unified service for creating 
composable data microservices that address streaming and ETL-based data processing 
patterns.

百度翻译

将企业连接到任何移动设备、传感器、可穿戴设备、汽车等的互联网。
SpringCloud数据流为创建可组合的数据微服务提供了一个统一的服务,
该服务处理流和基于ETL的数据处理模式。

微服务

微服务:首先是经过分布式的系统的拆分后的产物,并且每个服务都能独立运行.当某个系统或者服务发现改变时,替换或者修复的成本都较低,不影响其他的项目运行.市场上开发微服务的架构: Dubbo和SpringCloud。 Dubbo是阿里的,SpringCloud从名字就可以看出是Spring的。

持久层框架

Mybatis和Hibernate: 是第三方持久层框架,mybatis是现在公司主流的持久层框架。能与Spring进行及其好的配合

总结: Spring是一个超级粘合平台,能与第三方框架进行很好的集成。
Spring 是一个“引擎”;
Spring MVC 是基于Spring的一个 MVC 框架 ;
Spring Boot 是基于Spring的一套快速开发整合包。

Spring官方推荐构建项目


官方推荐的就是一种将来项目的发展趋势,我们一定要紧跟步伐。使用SpringBoot构建我们的项目,用SpringCloud来进行微服务的全局治理。

一个现代java开发者应该掌握的技术

  1. Maven: 基于pom的项目管理和构建工具
  2. java基础知识,java面向对象,java常用API(字符串,线程,流,集合。。。)
  3. Spring SpringBoot SpringCloud
  4. Mysql,sql,表设计,单表增删该查,多表查询,主从数据库,分库分表,数据库事务,缓存Redis和Memached。Mybatis,Hibernate
  5. MQ消息队列
  6. 前端的js必须要了解
  7. 前后端数据传输,有json,有form数据
  8. http网络知识
展开阅读全文

没有更多推荐了,返回首页