计算机产生之后,人们想要把不同电脑进行网络连接,网络连接之后,就是所谓的分布式。

重要数据需要保存多份,就产生了分布式的设计思想。单一的主机所能处理的数据是很有限的,为了提高性能,必须要采用多台电脑,多台电脑之间如何进行资源分配。

1、分布式的开发如何让代码安全
2、分布式开发如何进行有效通讯
3、分布式开发如何进行程序功能划分
4、WEB集群考虑到多用户并发访问的处理速度
5、业务中心客户端调用这些业务中的操作可以基本完成的功能
6、数据库的集群:解决数据存储问题和数据库的分片管理
分布式发展经历以下一些阶段:
1、CORBA:公共对象请求代理加工股,他是一种开发标准,他是大多数语言支持的标准
2、RMI:(远程调用方法),这是SUN提出来,准备替代CORBA
RMI实现方案:提出远程接口的调用(现在double和RMI比较类似)

javaEE分布式开发教程 java的分布式开发_负载均衡


3、SUN的设计师发现,RMI很好用,但是不如CORBA广泛,思考再CORBA的基础上设计一个新的协议,就产生了RMI-IIOP协议。(用在EJB技术上)

(IBM公司)WebSphere(Rational Application Server)、WebLogic(被Orancl公司收购了)、JBoss 

javaEE分布式开发教程 java的分布式开发_spring_02

 

EJB的理论很优秀,推动整个java行业发展。
后来微软的.net开始崛起,后来又因为Csharp#出现,.net和java就发展不到一起了,因为出现俩套标准,企业无法选择。
后来出现一款优秀的语言XML语言。XML作为数据交换的基础,著名软件架构出了WebService出现了(web服务)

WebService开发缺点:
1、速度太慢
2、采用远程接口调用,要利用代码生成工具,比较繁琐

javaEE分布式开发教程 java的分布式开发_javaEE分布式开发教程_03

 

2005年,针对WebService,又产生一个架构SOA(面向服务架构)提出一个企业服务总线(ESB)概念。

javaEE分布式开发教程 java的分布式开发_javaEE分布式开发教程_04

 

SOA提出的服务总线称为新一代分布式的讨论需求,如果将所有的服务统一管理起来,成了服务总线,所有开发者直接调动就完成一些功能,后来不断出现选多RCP开发技术,最具代表的是阿里巴巴的Double。
不过成长最快的还是Rest,因为JSON的广泛使用,XML造就了WebService,JSON造就了REST服务。随着REST服务的不断发展,Spring终于得到一个新的机会,利用REST进行RPC实现,操作速度很快,占用的贷款很少,在SPringCLOUD里面讲整个REST作为RPC实现技术,并将这一技术,这一技术有行业统一之势。

SPRINGCLOUD依照springboot的开发技术,可以实现打包发布和单独部署,都符合当前云时代的开发要求。云时代造就了计算机发展,也造就了微架构的发展。

javaEE分布式开发教程 java的分布式开发_REST_05

SpringCLOUD配置就俩个端:一个服务提供者(Provider),服务的消费者(Consumer)。

javaEE分布式开发教程 java的分布式开发_spring_06


 

数据库就是数据持久层。

SpringCloud可以使用zookper和Consul作为注册中心,但是性能很差,官方支持Euaker。
对于整个WEB端的架构(SpringBoot实现)可以轻松方便的进行WEB端编程,用Nginx和Apache实现负载均衡,但是web端负载均衡针对同一个业务端,所以我们业务端也需要用
负载均衡。
多业务端实现负载均衡: Ribbon

javaEE分布式开发教程 java的分布式开发_spring_07

 客户端使用REST架构调用的额时候都需要一个调用地址,所有的调用都使用地址调用太麻烦,REST服务以接口方式调用比较方便,Feign可以伪造接口,实现服务接口调用。

javaEE分布式开发教程 java的分布式开发_spring_08

熔断技术处理,熔断就像我么生活中的保险丝,生活中电器出现故障,保险丝熔断,防止出现损坏和火灾。微服务没处理好熔断啊会出现一个雪奔。Hystrix熔断。

javaEE分布式开发教程 java的分布式开发_负载均衡_09

 

 通过ZUUl的代理,用户只需要知道指定路径就可以访问指定的微服务的信息,这样更好的体现了java中的key-value的思想,通过zuul的代理,使得服务隐藏更加安全。

javaEE分布式开发教程 java的分布式开发_javaEE分布式开发教程_10

springcloud创建的过程中有很多配置文件,或者ip地址发生改变如何解决,springcloud里面提供了一个springCloudConfig对微服务配置进行管理,可以和GIt或者SVN一起使用。

javaEE分布式开发教程 java的分布式开发_REST_11

 

在整体设计上SpringCloud更好的实现了RPC的架构设计,而且使用REST作为通讯基础,比较成功,使用了大量netflix公司的产品技术,所以这些技术有可靠地保障。慢慢的发展的过程中,Springcloud统一RPC架构。