一直以来,我们应用了不少的AOP框架,但是对于AOP的底层实现却没有过多的深入,古话就是“知其然,不知其所以然”,随着AOP学术讨论的骤然兴起,我也开拓了自己的眼界,深入了解了AOP这个五彩斑斓的世界!先来看看大众的定义:百度百科: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点...
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制原文:http://www.cnblogs.com/wzsblogs/p/4524948.html
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等学习架构呢,要掌握的东西有很多,你是不是开始担心自己一辈子都学不完呢?其实,我们也不需要一下子铺开学习所有的架构技能,重要的是把控好学习的节奏,在适当的时间学习适当的内容,我们可以结合实际工作,一步步地成长。所以今天这一讲,我想给你提供一些架构学习的重点方向和路径建议。架构原则汇总在技术架构篇,我针对系统的高可用、高性能、可伸缩和低...
文章目录引入话题为什么需要 k8s?应用部署模式的演进管理大量的容器带来了新的挑战k8s 的集群架构pod —— k8s 调度的最小单元了解 pod
引入话题
平台实现异构
比如你用k8s要实现异构,其实只要通信协议能跨平台就0K了,因为平台带了服务发现,负载均衡,容错限流等等,不过平台也有局限性,就比如一个大型的遗留系统,一部分在K8s内 ,一部分使用传统模式部署 你就得郁闷,或者得把两块分割开,走网关。所以回到你的问题,最佳实...
设计模式的六大原则:
总原则-开闭原则
对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。
想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。
1、单一职责原则
不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。
...
原文链接
目录
前言
后端架构演化史
集中式架构
分布式系统架构
容器技术新纪元 Docker
微服务架构
Kubernetes
Service Mesh
总结
云原生 Cloud Native
什么是云 Cloud
什么是原生 Native
Cloud Native 是道,Service Mesh 是术
Service Mesh
纷争 2017
百家争鸣 2018
持续发展 2019
Istio
连接
保护
控制
观测
总结前言
自 2013 年容器(虚拟)技术(Docker)成熟后,后端的架构方式进入快速迭代的阶段,出现了很多新兴概念:微服...
原文链接
目录
1. 无服务器(Serverless)计算是什么
2. 理解Serverless技术—FaaS和BaaS
2.1 FaaS(Function as a Service,函数即服务)
2.2 BaaS(Backend as a Service,后端即服务)
3. 无服务器(Serverless)计算如何工作?
4. 无服务器(Serverless)适用于哪些场景?
4.1 场景一:应用负载有显著的波峰波谷
4.2 场景二:典型用例 - 基于事件的数据处理
5. Serverless 的问题
5.1 不适合长时间运行应用
5.2 完全依赖于第三...
单例模式-是指确保任何一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。可以保证内存里只有一个实例,减少了内存开销;可以避免对资源的多重占用。
单例模式是创建型模式,在现实生活中类似于国家主席,公司CEO等只能有一个的模式。在J2EE标准中,ServletContext、ServletContextConfig等;在Spring框架应用中ApplicationContext;数据库连接池也都是单例形式。
主要分为1.饿汉式单例、2.懒汉式单例、3.注册式单例和...
一、 什么是负载均衡负载均衡就是分发请求流量到不同的服务器。负载均衡一般分为两种:1、 服务器端负载均衡(nginx)
2、 客户端负载均衡(Ribbon)
二、 spring- - cloud- - provide) (服务提供者) :实体类 :package com.roncoo.education.bean;import java.util.Date;/*** 实体类** @author wujing*/public class User {private int id;private String name;private Date createTime;public int getId() {return id;}pub...
以Integer为例
new Integer(123) 与 Integer.valueOf(123) 的区别在于:
new Integer(123) 每次都会新建一个对象;
Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。
Integer x = new Integer(123);
Integer y = new Integer(123);
System.out.println(x == y); // false
Integer z = Integer.valueOf(123);
Integer k = Integer.valueOf(123);
System.out.println(z == k); // true
valueOf() ...
上次回归:上次我们说了ribbon的基本使用,包括里面的内部算法,算法的细粒度配置,还有我们自己如何实现我们自己的算法,主要还是一些基本使用的知识,还不会使用ribbon的小伙伴可以回去看一下上一篇博客。
什么是Feign:Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS2.0以及WebSocket。Feign 可帮助我们更加便捷、优雅地调用HTTP API,为什么我们会选择使用Feign呢?我们上次说到的ribbon也是可以...
SOA与微服务的区别?
1、SOA
SOA的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的,粗粒度,松耦合,无状态的服务。
服务发布出来供其他服务调用,一组互相依赖的服务就构成了SOA架构下的系统。
基于这些基础的服务,可以将业务过程用类似BPEL流程的方式编排起来,而BPEL反映的是业务处理的过程,这些过程对于业务人员更为直观,调整也比hardcode的代码更容易。
当然企业还需要对服务治理,比如服务注册库,监控管...
课程介绍
微服务架构的技术体系、社区目前已经越来越成熟。在最初系统架构的搭建,或者当现有架构已到达瓶颈需要进行架构演进时,很多架构师、运维工程师会考虑是否需要搭建微服务架构体系。虽然很多文章都说微服务架构是复杂的、会带来很多分布式的问题,但只要我们了解这些问题,并找到解法,就会有种拨开云雾的感觉。
微服务架构也不是完美的,世上没有完美的架构,微服务架构也是随着业务、团队成长而不断演进的。最开始可能就...
前言
微服务化产品线,每一个服务专心于自己的业务逻辑,并对外提供相应的接口,看上去似乎很明了,其实还有很多的东西需要考虑,比如:服务的自动扩充,熔断和限流等,随着业务的扩展,服务的数量也会随之增多,逻辑会更加复杂,一个服务的某个逻辑需要依赖多个其他服务才能完成。
一但一个依赖不能提供服务很可能会产生雪崩效应,最后导致整个服务不可访问。
微服务之间进行rpc或者http调用时,我们一般都会设置调用超时,失败重...
RabbitMQ安装我这里安装是使用阿里云的CentOS7.5来安装的,使用CentOS版本低于7的可能会报错。
1.安装rabbitmq所需要的依赖包
输入$ yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc- c++ kernel-devel m4 ncurses-devel tk tc xz
2.下载安装包
$ wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
$ wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7...