> 文档中心 > 从spring boot到spring cloud(一)服务的发展史

从spring boot到spring cloud(一)服务的发展史


1、服务发展史

在这里插入图片描述
这里只说服务发展史,那些Dubbo、springcloud等属于框架先不说。

组件模式
说到组件模式现在项目开发过程中都还在用,列一个最简单的‘md5加密算法’,更讲究点的就封装成一个jar包,导入到其他项目使用。

public static String md5(String plainText) { //定义一个字节数组 byte[] secretBytes = null; try {     // 生成一个MD5加密计算摘要     MessageDigest md = MessageDigest.getInstance("MD5");     //对字符串进行加密     md.update(plainText.getBytes());     //获得加密后的数据     secretBytes = md.digest(); } catch (NoSuchAlgorithmException e) {     throw new RuntimeException("没有md5这个算法!"); } //将加密后的数据转换为16进制数字 String md5code = new BigInteger(1, secretBytes).toString(16); // 如果生成数字未满32位,需要前面补0 for (int i = 0; i < 32 - md5code.length(); i++) {     md5code = "0" + md5code; } return md5code;    }

更复杂的组件封装常见的就是用户模块,用户模块就包括用户、部门、角色、权限。一个项目启动先不管别的把用户模块打包加到项目中去,这就是最早的雏形。

这个时候项目再大点,一个项目一百多个人,几个到几十个小组,开放点的大家就把自己模块代码直接上传,严谨点就打成jar包提供使用。这个时候就出现了痛点,调用、更行、测试、管理都麻烦。
  
EJB
在这里插入图片描述

EJB (Enterprise Java Beans)
是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。

以上是从百度抄过来的,很容易理解,EJB就是为企业级引用开发组件而设计的。要说EJB没火起来有几个问题

1、学习成本高,虽然EJB的思想是好的,但是要掌握EJB需要投入大量的时间,对开发人员不友好。

2、性能低,由于EJB3.0以前是需要序列化的,导致在服务的传输过程中有大量延时。

3、生不逢时,EJB出来以后大量开发人员反映太重了,当时就出现了spring hibernate ibatis(mybatis 前身)等大批量的轻量级框架。

当EJB反映过来更新到3.0的时候已经无法再和别人抗衡了。

SOA
看到SOA估计有人要说了,SOA是标准啊,怎么放到这里了。其实SOA给微服务的思想提供了一个良好的过程。

SOA的概念提出来其实比EJB还早,但是真正使用就比较晚了

最早的就是WebService了,然后各种框架蜂拥而至JWS、Axis2、XFire、CXF等,最初还是同语言传对象的,再后来实现跨语言传XML。因为XML体谅太大,又出现了json。

通过这一路走下来,加上移动端的兴起反而出现了一波有趣的操作,前后端分离出现了。

SPRINGBOOT
在这里插入图片描述
说到springboot 从spirng(霸占服务层多年)–>spirngmvc(干掉struts)–>springboot(又干掉了tomcat等)–>springcloud。
springcloud的组件群发展越来越大,全部是为了springboot服务。
但是问题来了,微服务真正用起来有那么简单吗?
以前的编码方式是

在这里插入图片描述
http://127.0.0.1/user/login
http://127.0.0.1/***/1
http://127.0.0.1/user/login2

根据接口文档一个个调用就完事了,服务层、dao层、控制层都在一个项目中。

而微服务以后比较简单的是
在这里插入图片描述
那么复杂的呢?

在这里插入图片描述
就算是在一台服务器上面做不同端口,也要记得各个业务之间的关系吧?

所以微服务到底要怎么用好,对架构师和开发人员的素质要求是很高的。并且在开发过程中的开发成本也是成倍增长。

具体什么是springboot?springcloud怎么使用,我们真的需要用到微服务吗?用微服务需要什么基础,在后续会一步步分解,记得关注。

唱吧