logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

应用架构发展历史

1.架构的发展历史随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,急需一个治理系统确保架构有条不紊的演进。单体式架构:垂直架构:分布示架构:2.分布式架构介绍分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在

#分布式
【Java杂记】回调机制:三种回调方式及代码示例

在看回调之前,我们必须明白什么是同步调用与异步调用。这两个概念其实很好理解,同步与异步是相对时间来说的:同步调用:同一时间只能做一件事异步调用:同一时间可以做多件事,一般通过以下两种手段实现:多线程:为需要阻塞的方法单独启动一个线程执行回调:执行完成后通过回调,通知主线程执行完毕或者获取执行结果多线程大家一看都能明白,那回调到底是什么呢?1.回调机制回调是实现异步调用的一种手段,是为了异步通信服务

#java
【JUC源码】阻塞队列:SynchronousQueue 源码分析(公平模式)

前篇:【JUC源码】阻塞队列:SynchronousQueue 源码分析(非公平模式)…在上一篇文章,我们说了基于栈(FILO)的 TransferStack 的非公平线程控制逻辑,本篇我们就来看看基于队列(FIFO)的 TransferQueue 的公平的线程控制逻辑。先来回顾一个问题,当前线程是如何把自己的数据传给阻塞线程的?为了方便说明,我们假设线程 1 往队列中 take 数据 ,被阻塞住

#java
【NIO】Buffer:直接内存 --性能比较与源码分析

直接内存(Direct Memory)又叫做堆外内存,和堆内内存相对应,堆外内存就是把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机),这样做的结果就是能够在一定程度上减少垃圾回收对应用程序造成的影响。注意这并不是说直接内存就没有垃圾回收了,PS:元空间对应的内存也叫作直接内存,它们对应的都是机器的物理内存。在 java.nio 包中提供了 DirectByt

#java#nio
【MyBatis】执行原理(一):创建会话工厂(SqlSessionFactory) --配置解析源码分析

1.解析配置首先我们要清楚的是配置解析的过程全部只解析了两种文件。一个是mybatis-config.xml全局配置文件。另外就是可能有很多个的Mapper.xml文件,也包括在Mapper接口类上面定义的注解。mybatis-config.xml由许多标签构成,这里我们再具体看一下这里面的标签都是怎么解析的,解析的时候做了什么// 通过SqlSessionFactoryBuilder(建造者模式

#mybatis#java
【Zookeeper】应用场景:分布式锁 InterProcessMutex 源码分析

首先,我们需要明白一个问题,分布式锁是什么?同一个JVM进程内,多个线程同步执行 ==> synchronized,Lock等锁分布式下,不同JVM进程访问同一资源 ==> Redis,Zookeeper等中间件1.zookeeper实现分布式锁1.1 同级节点唯一性因为Zookeeper的同级节点唯一性,所以多个进程来向zookeeper创建一个相同名称节点,只会有一个成功失败的节点

#zookeeper#java#分布式
【Spring】DI:四种依赖注入方式(包括xml、注解)

DI(DependencyInjection)依赖注入:就是指对象是被动接受依赖类而不是自己主动去找,换句话说就。是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动将它依赖的类注入给它。1.set方法注入public class Student {private String name;private Teacher teacher;public String getName()

#spring#java
【必备算法】排序:图解十大排序算法及Java实现(详细)

十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。注:这里说的整体上不是通过比较实现,但局部还是要经过比较或者调用比较排序算法下面我们就按照时间复杂度的分成三部分进行讲解

#排序算法#java
什么是灰度发布?

在新版本应用发布时,为了服务器不停机升级,使用灰度发布策略,在灰度发布开始时,使用 HTTP Header 匹配指定测试人员的流量到新版本上,然后当新版本内部测试通过后,可以再按百分比,将用户流量一点一点导入到新版本中,比如先导入 10% 观察一下运行情况,然后再导入 20%,如此累加,直到将流量全部导入到新版本上,最后完成升级,如果期间发现问题,就立即取消升级,将流量切回到老版本。运用灰度发布,

文章图片
#服务器#网络#负载均衡
【Java杂记】泛型:泛型的三种使用方式

泛型概述:泛型表现为一种类型,但泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数泛型是在编译时被确定常见通配符:?:表示不确定的 java 类型,即可以存N种类型;即使初始化的时候指定了类型也可以存任意类型T (type): 表示具体的一个java类型E (element) :代表Element,与 T 意义基本无差K V (key value): 分别代表java键值中的Key

#java
    共 39 条
  • 1
  • 2
  • 3
  • 4
  • 请选择