单体->集群->模块化->分布式微服务
开头语:
每篇一段开头语,在技术的道路中寻找文采的乐趣。(如果随笔中都是大白话勿喷,兄弟姐妹们)
单体项目
单体项目适用于小型开发,或自己来进行小项目的测试和使用。
单体项目的缺憾
- 多人开发项目所出现的冲突问题,pull代码所出现的覆盖问题。
- 代码的凌乱问题,新人根本无法快速熟悉代码,并且出现一种新人添加代码不敢乱动,修改点东西只能在上面狂增加判断,导致代码越来越恶心
- 代码的迭代就需要大型的重构之类,其中代码的修改交错,一眼望去,非死即残,产生打爆电脑的冲动
集群
- 集群的出现在于分担一服务器的压力。当一个服务器被击倒,立刻另一个服务器起身抗下担子,在前方英勇无比。集群的权重轮询什么的就不说了,在说有瞎bb的嫌疑了。
模块化
- 模块化的初衷就是将单体项目拆分,分为几个小模块,最后在进行拼接使用。
- 模块化每个模块可以放到不同的服务器中,就算服务器挂掉,此功能也不会产生任何的问题。当然也可以集群使用。只不过就是经常被点击访问的多放几个服务器进行集群操作,不太被访问的就扔单个服务器。
- 就好比电影一样,今天拍一点,我露个脸,明天露个点,最后电影出来,全程我主演。
分布式微服务
我个人理解,我觉得模块化就是单体项目慢慢的加集群拆分像微服务的转变。
- 模块化微服务为单个项目中拆分成小模块来使用,但是提交的时候却是一个项目提交。
- 而分布式微服务则是每个模块是一个单独的项目,比如springcloud想调用别的项目的功能,就是靠feign来进行调用另一个项目中controller中的功能。每一个提交都是单独项目的提交。
还有这个微服务和分布式的区别,我个人觉得,区别仅仅是分布式取消了自己写的熔断网关负载之类的措施,而整合起来来进行更简便的使用。
结语
如果理解有问题的话,希望有兄弟可以稍微引导下,哪怕一丢丢,感激不尽。
单体->集群->模块化->分布式微服务的更多相关文章
- 推荐一款分布式微服务框架 Surging
surging surging 是一个分布式微服务框架,提供高性能RPC远程服务调用,采用Zookeeper.Consul作为surging服务的注册中心,集成了哈希,随机,轮询,压力最小优先作为 ...
- 基于docker 如何部署surging分布式微服务引擎
1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ...
- Dapeng框架-开源高性能分布式微服务框架
我们公司性质是新零售,公司也有专门的框架组.这群大牛自己开发了一整套分布式微服务框架.我们也在使用这套框架,有很多心得体会. 该框架既Dapeng也!开源github地址:https://github ...
- Train-Alypay-Cloud:分布式微服务中间件sofa 开发培训(第二次)
ylbtech-Train-Alypay-Cloud:分布式微服务中间件sofa 开发培训(第二次) 1.返回顶部 1. 这是本次培训的内容,望各位提前配好环境.工具.2.6-2.7 我们在环球金融8 ...
- Surging 分布式微服务框架使用入门
原文:Surging 分布式微服务框架使用入门 前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与S ...
- [转载]Surging 分布式微服务框架使用入门
前言 本文非 Surging 官方教程,只是自己学习的总结.如有哪里不对,还望指正. 我对 surging 的看法 我目前所在的公司采用架构就是类似与Surging的RPC框架,在.NET 4.0框架 ...
- 整合SPRING CLOUD云服务架构 - 企业分布式微服务云架构构建
整合SPRING CLOUD云服务架构 - 企业分布式微服务云架构构建 1. 介绍 Commonservice-system是一个大型分布式.微服务.面向企业的JavaEE体系快速研发平台,基于模 ...
- 如何使用Istio 1.6管理多集群中的微服务?
假如你正在一家典型的企业里工作,需要与多个团队一起工作,并为客户提供一个独立的软件,组成一个应用程序.你的团队遵循微服务架构,并拥有由多个Kubernetes集群组成的广泛基础设施. 由于微服务分布在 ...
- Linux集群配置ntp时间同步服务
集群中时间不同步有可能会让大数据的应用程序运行混乱,造成不可预知的问题,比如Hbase,当时间差别过大时就会挂掉,所以在大数据集群中,ntp服务,应该作为一种基础的服务,以下在演示在CentOS 7. ...
随机推荐
- C++在C的基础上改进了哪些细节
C++ 是在C语言的基础上改进的,C语言的很多语法在 C++ 中依然广泛使用,例如: C++ 仍然使用 char.short.int.long.float.double 等基本数据类型: ...
- 【17】进大厂必须掌握的面试题-50个Angular面试
我们整理了一份主要的Angular面试问题清单,分为三部分: 角度面试问题–初学者水平 角度面试问题–中级 角度面试问题–高级 初学者水平–面试问题 1.区分Angular和AngularJS. 特征 ...
- 一步一步实现直播软件源码的RTMP推流流媒体服务
第一步:准备工具 OBS推流工具下载及配置可以参见:OBS推流工具 第二步:安装流媒体服务 Windows/Linux系统环境中搭建直播流媒体服务 极速安装,下载解压一键启动即可,支持Windows和 ...
- 0 quickstart
说明 使用的安装包有: Prism 6.3 Unity 4.0.1 基于Prism框架的应用程序都包含一个主项目和若干功能模块,主项目负责启动时初始化工作,包括依赖注入容器,定义Shell等等.功能模 ...
- 搭建面向NET Framework的CI/CD持续集成环境(一)
前言 网上大多数都是针对主流的Spring Cloud.NET Core的CI/CD方案.但是目前国内绝大部分的公司因为一些历史原因无法简单的把项目从NET Framework切换升级到NET Cor ...
- lvs负载简介,原理,常见使用案例及Keepalived高可用
Lvs简介 基础概念 LVS(Linux Virtual Server)即Linux虚拟服务器,是由张文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中(2.6及以上版本内核) ...
- TypeError: react__WEBPACK_IMPORTED_MODULE_2___default.a.createClass is not a function
在看阮一峰的react入门的时候,写到一段代码,但是写完就报错了,经过多方查找,终于解决掉了 错误描述: 解决方法: 将React.createClass换成React.Component, 但是不知 ...
- prop()和attr()我该翻谁的牌子?
先上代码: // 全选 function CheckAll() { if ($("#th_checkbox").prop('checked')) $('input[name=&qu ...
- 开发工具之Git(一)
目录 一.什么是Git 二.Git基本原理 三.Git用户交互 一.什么是Git 答:Git是一个分布式版本控制软件.另外提一句,它的开发者就是大名鼎鼎的Linux之父Linus. 版本控制,顾名思义 ...
- python之 《zip,lambda, map》
1.zip 对于zip我们一般都是用在矩阵上 eg: a = [1,2,3] b = ['a', 'b', 'c'] x = zip(a, b) print(x) print(list(x)) 结果是 ...