java分布式技术都包括什么?能详细列举么?

Python020

java分布式技术都包括什么?能详细列举么?,第1张

分布式是一种思想,范围很广,我得先知道它的诞生:

以前是一个数据库 一个JSP 就可以做一个应用了,后来随着业务复杂,我们开始分层,比如MVC之类的,再后来我们的数据越来越多了,比如有上亿的数据,这个时候我们一个数据库查询太慢了,就开始分库,这也算是分布式的一种。

还有比如我们的系统访问的人多了,比如双11,上千万人同时访问,我们的服务器(网站)支持不住了,这个时候就要部署到很多个服务器,每个服务器分摊请求,这也是分布式

当然随着业务扩大, 我们得分业务了,比如注册登录的,物流的,卖东西的 等等,不同的系统,但是各个系统之间进行协调,也算分布式一种

以上都算是分布式的来源,主要是解决 压力过大,大家协同工作的,那么这就涉及到一些常用的东西,或者像你说的的技术

1.你用N个数据库才放数据,至少CRUD 方面就 麻烦些了,得用cobar,tddl,mysql-proxy 等协调

2.服务器:你部署了很多服务器,肯定得用个东西来分发请求这些吧,nginx,apache 等分发请求。

3.你公司有很多系统,想很好的联系在一起,光用接口不满足了,得用一些JMS ,像activemq,ons 之类的来协调吧

4.为了解决io问题,得加缓存吧,那么缓存对应上面的,也得分布式吧,就涉及memcache,redies 等等

上面就简单的介绍了下 分布式 的东西,还有很多啦,这是常用的一些,希望你能慢慢来,不是一下子 能理解得

这个问题已经收藏了一个多月了,一直在考虑如何回答这个问题,总结了很长时间终于有了一些感悟(之前一直都是只可意会不可言传的感觉),和大家分享一下,如果有不同的建议,欢迎大家留言指正。

分布式和微服务

首先 ,我认为微服务就是分布式框架的一种。

分布式的思想就是把一个系统的不同模块,部署在不同的服务器上,以应对高并发的问题。

SOA是一种分布式架构,把业务系统分成多个子系统,提供不同的服务,再通过服务组合、编排实现业务流程;通常在SOA架构中,ESB企业服务总线扮演了重要的角色。

微服务是SOA的升华,如果非要说点儿不同的,那么微服务更加强调服务的细分和专业,去ESB总线、去中心化,部署粒度更细,服务扩展更灵活。

微服务不只是技术架构

很多同学一说微服务,就说这是一种技术架构,有的推荐使用Dubbo,有的推荐使用Spring Cloud。

我认为,微服务不单单是一种技术架构,也涉及到了管理、组织架构。

大多数的公司,需求、开发、测试、运维都是独立的团队,这实际上是有悖于微服务快速迭代的思想;在微服务的架构下,一个服务应该是由一个团队全权负责的。

不过组织架构方面的事情,真的不是我们能说了算的。

必须要用微服务?

我觉得没有必要为了微服务,而微服务;有的公司把服务拆分,但是数据库依然是同一个库,依然是一个项目直接掉另外一个项目的接口,然后对外就宣称完成了微服务的改造...

架构设计还是要根据需求背景、团队开发能力、软硬件实力综合来考虑。

好的架构是可以进化的,而不是一步到位建成的。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。