- 博客(64)
- 收藏
- 关注
原创 DDD分层(Domain Driven Design,领域驱动设计)
DDD分层(Domain Driven Design,领域驱动设计)api 用户接口controllerdtoapp 应用层,服务调度,流程处理serviceserviceimplassembler dto组装domain 专注于核心业务entityservice 涉及多个repository数据库操作repository 数据库操作voinfra 基础设施,提供数据持久化,第三方库,消息等mapper 数据库操作访问接口,对应mapper.xml方法repositoryco
2020-07-30 17:20:19
544
原创 idea maven报红
真的超级好用step1:首先installstep2:右击项目名reloadstep3:关闭idea,重启,干干净净,一点红色都不剩
2020-07-28 19:10:02
228
原创 AMQP核心概念
Server: Broker,接收客户端的链接,实现AMQP实体服务Connection: 连接,应用程序与Broker的网络链接Channel: 网络通道,进行消息读写的通道。客户端可以建立多个Channel,每个Channel表示一个会话任务。Message:消息,服务器与应用程序之间传送的数据,由Properties和Body组成。Properties:消息优先级、延迟的特性设置;Body则是消息体的内容。Virtual host: 虚拟地址,用于逻辑隔离,最上层消息路由。一个Virtual
2020-07-27 14:02:52
155
原创 RabbitMQ简介
一、简介RabbitMQ是开源的消息代理和队列服务器,通过协议在完全不同的应用之间进行通信,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议二、优点可靠消息投递模式,返回模式与SpringAMQP完美整合、API丰富集群模式丰富,表达式配置,HA模式(高可用),镜像队列模型保证数据不丢失前提下,做到高可靠,可用性三、高性能原因1 Erlang语言,交换机领域的架构模式,使其在Broker之间进行数据交互的性能非常优秀2 Erlang有着和Socket一
2020-07-27 13:56:30
128
原创 redis持久化ADB与AOF
redis持久化分为两种机制,分别是RDB与AOF一、RDBfork一个子进程,在指定时间内将数据写入磁盘,每次写入会覆盖上一次的文件。可以在redis.conf 文件中找到下面内容。可以看到系统给出的三种默认配置,分别是15分钟1次5分钟10次一分钟10000次二、AOF以日志形式记录所有的写指令,可以找到redis配置文件下图位置,进行开启,并指定记录文件名,系统默认是appendonly.aof,也可以自行修改。...
2020-07-26 21:50:51
1187
1
原创 zookeeper简介(文件系统+监听通知机制)
zookeeper简介(文件系统+监听通知机制)定义:分布式协调框架,主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。1、文件系统:1)每一个节点都能存储数据,分页子节点跟子节点都能存2、监听通知机制:1)客户端注册监听他关注的目录节点,当目录节点发生改变(数据改变、被删除、子节点发生变化),zookeeper会通知...
2020-07-25 15:30:01
304
原创 电商秒杀方案小结
1、两次md1)用户端:PASS=MD5(明文+固定salt)2)服务端:PASS=MD5(用户输入+随机salt)3)http网络铭文传输,用户输入铭文,假如数据包被截取,2、分布式sessioncookie,token,redis缓存...
2020-07-25 15:29:33
191
原创 多线程访问同步方法的7中情况
//对象锁,串行1.两个线程同时访问一个对象的同步方法2.两个线程同时访问两个对象的同步方法//类锁,串行3.两个线程访问的是synchronized的静态方法//互不不影响,并行4.同时访问同步与非同步方法//synchronized使用同一把锁(this),串行5.访问同一个对象的不同普通同步方法//并行,一个是类锁,一个是当前对象锁6.同时访问静态synchronized...
2020-07-25 15:28:35
128
原创 锁的性质
1.可重入1)同一线程的外城函数获得锁之后,内层函数可以直接再次获取该锁,不用释放后再去二次获取。(递归锁:synchronized类)2)好处:避免死锁,提升封装性3)粒度(锁的范围):线程而非调用a.同一个方法可重入b.可重入不要求是同一个方法c.可重入不要求是同一个类中的2.不可中断1)一旦这个锁被别的线程获得,只能等待或阻塞,指导别的线程释放这个锁。如果别人用不释放这个给锁...
2020-07-25 15:28:11
373
原创 加锁与释放锁的原理
1、加锁与释放锁的原理:现象、时机、JVM字节码1)现象2)获取和释放锁的时机:内置锁a.进入到同步代码块时获取,退出时释放;3)jvm字节码a.概况:b.如何反编译c.Monditorenter和Monditorexit指令进入:monditor计数器加一,标志线程,别的线程进不来,重入时累加释放:monditor计数器减一2、可重入原理:加锁次数1)JVM负责跟踪对象被加...
2020-07-25 15:27:45
832
原创 Dubbo
1)官网dubbo.io2)国产的优秀开源框架(目前时Alibaba)3)京东、当当等在使用优点:1)最大程度解耦,降低系统耦合性2)生产者/消费者 模式3)zk注册中心,admin监控中心(服务多的,多分配资源),协议支持...
2020-07-25 15:27:03
84
原创 zookeeper核心知识
zookeepr基本数据模型1.树形结构,类似于linux系统目录结构2.每一个节点znode,可以有子节点,也可以有数据3.每个节点分为永久节点跟临时节点,临时节点再客户端断开后消失4.每个zk节点都有各自版本号,通过命令行来显示节点信息5.每当节点数据发生变化,那么该节点的版本号会累加(乐观锁)6.删除/修改过时的节点,版本号不匹配则会报错7.每个zk节点存储数据不宜过大,几k即...
2020-07-25 15:25:04
264
原创 如何选择Lock与synchronized
1、使用注意:锁对象不能为空,作用域不宜过大,避免死锁2、选择Lock与synchronized关键字:1)建议都不使用,可以使用java.util.concurrent包中的Automic类、countDown等类2)优先使用现成工具,如果没有就优先使用synchronized关键字,好处是写劲量少的代码就能实现功能。如果需要灵活的加解锁机制,则使用Lock接口...
2020-07-25 15:24:17
150
原创 synchronized的缺陷
synchronized的缺陷:1、效率低:锁的释放情况少、试图获得锁时不能设定超时、不能中断一个正在试图获得锁的线程。2、不够灵活(读写锁更灵活):加锁和释放的时机单一,每个锁仅有单一的条件(某个对象),可能是不够的。3、无法知道是否成功获取到锁。...
2020-07-25 15:22:53
910
原创 synchronized两个用法
对象锁方法锁(synchronized修饰普通方法,默认对象为this当前实例对象)同步代码块锁(自己制定锁对象)类锁synchronized修饰的静态的方法或指定锁为Class对象对象锁:应用:同一对象多个线程访问类锁:java类可能有很多个对象,但是只有一个Class对象,也就是Class对象的锁类锁只能在同一时刻被一个对象拥有形式1:synchronized加在stati...
2020-07-25 15:22:08
243
1
原创 synchronized之不使用并发
i++执行三个步骤1)读取i2)i加13)写u内存当i=5,第一个线程+1后,因该为i=6,但是还未写入内存,线程2就读取了内存中的数据i=5,然后执行i++,结果还是i=6,再写入内存,导致了两次+1还是i=6;...
2020-07-25 15:21:34
141
原创 zookeeper的session机制
zookeeper的session机制用户客户端与服务端的连接,设置超时时间,session过期时,session创建的所有临时节点都会被抛弃,锁机制运用zookeeper的watcher机制针对每一个节点都可以有一个监控作者,当节点发生变化,就会触发watcher事件,zookeeper中的watcher事件是一次性的,触发后立即销毁zookeeper的三种角色:leader:读写f...
2020-07-25 15:20:55
213
原创 sql执行顺序
sql执行顺序:(1) FROM(2) ON(3) JOIN(4) WHERE:(5) GROUP By(6) CUBE|ROllUP(7) HAVING(8) SELECT(9) DISTINCT(10) ORDER BY(11) LIMIT
2020-07-20 21:02:02
97
原创 操作系统内存管理——分配与回收
内存分配确保计算机有足够的内存处理数据确保程序可以用内存中获取一部分内存使用确保程序可以归还使用后的内存内存分配过程单一连续分配只能在单用户、单进程操作系统中使用固定分区分配支持多道程序内存空间被划分为若干个固定大小的区域每个分区之提供给一个程序使用,互不干扰动态分区分配根据实际需要动态分配内存空间动态分区空闲表的数据结构(类似于一个数组,里面存储0、1来标识是否被...
2019-11-11 13:44:03
1624
1
原创 操作系统——作业管理死锁
死锁:两个或两个进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。死锁产生竞争资源:共享资源数量不足进程调度顺序不当死锁的必要条件,预防死锁的方法互斥条件:资源排他性使用请求保持条件:自己保持一个资源,不释放;新资源被占用,请求被阻塞(系统规定进程运行之前,一次性申请所有需要资源)不可剥夺条件:资源在未完成使用前不可被剥夺,获得资源只能由进程自身释放...
2019-11-11 13:06:49
222
原创 操作系统——进程调度
进程调度:计算机通过决策决定哪个就绪进程可以获得CPU使用权多道程序设计步骤就绪队列排队机制选择进程的委派机制新老进程的上下文切换机制:保存旧进程信息,请出旧进程选择新进程,准备运行环境并分配CPU抢占式调度:处理器分配给某一个进程,独占使用,不能被强占非抢占式调度:允许调度进程以一定的策略暂停单签运行的进程保留好旧进程的上下文信息,分配处理器给新进程进程调度算法:先...
2019-11-11 12:47:37
169
原创 操作系统——linux进程管理
/进程类型/前台进程:具有终端,可以和用户进行交互的进程,如终端shell后台进程:没有占用终端的进程基本不和用户交互,优先级比前台进程低将需要执行的shell命令以“&”符号结束守护进程:进程名以“d”结尾的一般都是守护进程,如mysqld,httpd,ssld进程的标记:进程ID:进程的唯一标记一个非负的证书,最大值操作系统限定(top 命令查看进程)操作系...
2019-11-11 12:31:03
205
原创 操作系统——进程
背景:没有OS之前,资源属于当前程序,只能单程序运行OS后,开始有多道程序设计操作系统能够更好的管理资源进程:资源分配调度基本单位保证程序正常运行提升操作系统资源利用率进程的实体:标识符:区别进程状态:进程状态程序计数器:指向下条指令地址内存指针:程序代码、进程数据相关指针上下文数据:处理器存储的数据io状态信息:io操作所占用的文件列表记账信息:cup时间、时钟数总...
2019-11-11 12:30:09
140
原创 操作系统——基本特性
并行:多个事件一时刻发生多处理器并发:多个事件同一个时间间隔发生多处理器共享性:资源提供给并发程序共同使用互斥共享,需要等待同时访问,并发的给多个程序访问虚拟性:物理实体转成若干虚拟实体时分复用:时间上复用,交替使用空分复用:虚拟磁盘、虚拟内存,资源编程效率异步性:多道程序环境并发执行,互斥资源访问...
2019-11-11 12:28:55
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅