阅读本文之前你需要掌握:PHP语法,面向对象 在完成整个软件项目开发的过程中,有时需要多人合作,有时也可以自己独立完成,不管是哪一种,随着代码量上升,写着写着就"失控"了,渐渐"丑陋接口,肮脏实现",项目维护成本和难度上升,到了难以维持的程度,只有重构或者重新开发. 第一重境界 假设场景:我们需要写一个处理类,能够同时操作会话,数据库和文件系统.我们或许会这么写. 境界特征:可以运行,但是严重耦合 class DB{ public function DB($arg1…
这两天对互联网的架构演变进行了简单了解,并对微服务的出现很感兴趣,所以对相关知识进行了简单的整理与总结. 本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后介绍了微服务及最新的服务网格(Service Mesh).--------------------- 互联网架构演变 一体架构 在计算机软件发展早期,一般桌面软件都是采用这种架构,不管是界面还是业务处理还是数据处理都放到一个包中.这种其实谈不上架构,但也可以说是很好的架构,因为它足够简单. mvc架构 但随着浏览器的出现便产生了we…
作为本系列文章的第三篇(前两篇<浅谈服务治理.微服务与Service Mesh(一)Dubbo的前世今生>,<浅谈服务治理.微服务与Service Mesh(二) Spring Cloud从入门到精通到放弃>),本文主要为大家介绍一下当前非常火热的Service Mesh概念,最后也会简单介绍一下目前同样热门的Serverless概念.Service Mesh目前比较多的翻译为“服务网格”,也有翻译为“服务啮合”.很多人将之称为下一代微服务,或直接称之为微服务2.0.前两篇文章中介…
解决的问题 一项技术的产生必然是为了解决问题而生,了解了一项技术解决的问题,就能够很轻松的理解这项技术的设计根本,从而更好地理解与使用这项技术. 消息中间件和RPC从根本上来说都是为了解决分布式系统的服务间通信问题,我们的服务从最初的单体应用发展到SOA架构到现在的微服务架构,必不可少的就是服务间通信,但从最初的设想,服务间通信仅仅就是一次请求响应调用而已,为什么发展出如此多的消息中间件与RPC技术,我们是否真的需要学习这么多的消息中间件技术? 答案是肯定的,接下来我们将分析我们为什么要了解及使…
本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性:二是服务架构的基本组成.为什么第一节写服务架构而不是微服务架构呢?原因主要是微服务架构本身与服务架构有着千丝万缕的关系,服务架构是微服务架构的根基. 第二小节「五脏六腑」则将结合 Spring Cloud 这个特例来介绍一个完整的微服务框架的组成. 服务架构 为了方便理解,我先讲一个小故事:(改编自一知乎答主) Martin(微服务提出者也叫 Ma…
导读 从根本上说,几乎所有的主要软件,即使是开源软件,都是在基于镜像的容器技术出现之前设计的.这意味着把软件放到容器中相当于是一次平台移植.这也意味着一些程序可以很容易就迁移,而另一些就更困难. 我大约在三年半前开展基于镜像的容器相关工作.到目前为止,我已经容器化了大量应用.我了解到什么是现实情况,什么是迷信.今天,我想简要介绍一下 Linux 容器是如何设计的,以及谈谈镜像签名. Linux 容器是如何设计的 对于基于镜像的 Linux 容器,让大多数人感到困惑的是,它把操作系统分割成两个部分…
容器是整个Spring 框架的核心思想,用来管理Bean的整个生命周期. 一个项目中引入Spring和SpringMVC这两个框架,Spring是父容器,SpringMVC是其子容器,子容器可以看见父容器中的注册的Bean,反之就不行.请记住这个特性. spring 容器基础释义 1 我们可以使用统一的如下注解配置来对Bean进行批量注册,而不需要再给每个Bean单独使用xml的方式进行配置. <context:component-scan base-package="com.amu.mo…
原创作品转载请附:https://www.cnblogs.com/superlsj/p/11655523.html 一.一个案例引发的思考 public class ArrayListTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); for (int i = 1; i <= 50; i++) { new Thread(() -> { l…
前言 本来计划周五+周末三天自驾游,谁知人算不如天算,周六恰逢台风来袭,湖州附近的景点全部关停,不得已只能周五玩完之后,于周六踩着台风的边缘逃回上海.周末过得如此艰难,这次就聊点务虚的话题,一是浅谈微服务的架构设计,二是聊聊微服务中广泛用于服务治理的Eureka与RPC框架Dubbo异同点. 一.微服务的架构设计 之所以想聊一下这个话题,主要有感于最近接触的两个新的微服务项目--两个项目的架构设计出自两个人之手,却不约而同的使用了相同的设计理念,项目结构非常类似.又想到就职于上家公司时接触到的项…
一.背景 书接上文,浅谈前后端分离与实践(一) 我们用mock服务器搭建起来了自己的前端数据模拟服务,前后端开发过程中只需定义好接口规范,便可以相互进行各自的开发任务.联调的时候,按照之前定义的开发规范进行数据联调便可以了.前后端的职能更加清晰: 后端 前端 提供数据 接收数据,返回数据 处理业务逻辑 处理渲染逻辑 Server-side MVC架构 Client-side MV* 架构 代码跑在服务器上 代码跑在浏览器上 这里分离干净了,分工也很明确了,看似一切都那么美好,but...我们也很…