- 浏览: 571258 次
- 性别:
- 来自: 北京
-
最新评论
-
panamera:
如果设置了连接需要密码,Dynamic Broker-Clus ...
ActiveMQ 集群配置 -
panamera:
请问你的最后一种模式Broker-C节点是不是应该也要修改持久 ...
ActiveMQ 集群配置 -
maosheng:
longshao_feng 写道楼主使用 文件共享 模式的ma ...
ActiveMQ 集群配置 -
longshao_feng:
楼主使用 文件共享 模式的master-slave,produ ...
ActiveMQ 集群配置 -
tanglanwen:
感触很深,必定谨记!
少走弯路的十条忠告
文章列表
问题分析
一般MQ中间件为了提高系统的吞吐量会把消息保存在内存中,如果不作其他处理,MQ服务器一旦宕机,消息将全部丢失。这个是业务不允许的,造成很大的影响。我知道一个方法就是把消息持久化,RabbitMQ中发消息的时 ...
先看下Ribbon的配置和Hystrix的超时配置:
ribbon:
MaxAutoRetries: 1 #最大重试次数,不包括首次调用,当Eureka中可以找到服务,但是服务连不上时将会重试
MaxAutoRetriesNextServer: 1 #切换实例的重试次数,不包括首次调用
OkToRetryOnAllOperations: true #是否对所有的操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的
ConnectTimeout: 250 #请求连接的超时时间
ReadTimeout: 1000 #请求处理的超时时间 ...
异步消息的规划:
1)消息需要包含哪些数据(业务数据、操作数据等)
2)数据的规划和特点(条数、大小等)
3)消息的类型和包含的数据格式
4)消息的传递域是点对点的还是发布订阅的
5)消息的保存模式:持久模式和 ...
大数据量 处理的基本思路:
一:分
1)用和不用分开,常用和不常用分开
2)对数据库存放的数据:分区,分库,分表
3)数据库集群读写分离
4)对文件存放的数据:拆文件
5)处理数据分批处理
原则:尽量使每次操作的数据的 ...
B/S网络架构概述:
B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,与大多数传统的C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用无状态的短连接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持这个连接。
当一个用户在浏览器里输入www.taobao.com这个URL时,将会发生很多操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到 ...
概述:
DDD将一个软件系统的核心业务功能集中在一个核心域里面,其中包含了实体、值对象、领域服务、资源库和聚合等概念。在此基础上,DDD提出了一套完整的支撑这样的核心领域的基础设施。此时,DDD已经不再是“面向对 ...
传统的服务器设计是:一连接一处理线程,也就是我们常说的 BIO 编程。BIO 在读取和发送时是阻塞的,在请求的整个生命周期内,不管有没有数据可读或待发送,都绑定和占用了这个处理线程。
BIO 多线程并发模式,一个连接一个线程的优点是:
一定程度上极大地提高了服务器的吞吐量,因为之前的请求在read阻塞以后,不会影响到后续的请求,因为他们在不同的线程中。这也是为什么通常会讲“一个线程只能对应一个socket”的原因。另外有个问题,如果一个线程中对应多个socket连接不行吗?语法上确实可以,但是实际上没有用,每一个socket都是阻塞的,所以在一个线程里只能处理一个socket,就算acce ...
Stack 介绍:
Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。
java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当 ...
Vector介绍:
Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。
Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。
Vector 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
Vector 实现了Cloneable接口,即实现c ...
常用分析工具:
jps:显示指定系统中所有的HotSpot虚拟机进程
jps命令主要用来输出JVM中运行的进程状态信息,包括进程ID,进程启动的路径等等
jstat:收集HotSpot虚拟机各方面的运行数据
jstat命令主要是对java应用程序的资源和性能进行实时的命令行监控,包括了对heap size和垃圾回收状况的监控
jinfo:显示虚拟机配置信息
jinfo命令显示JVM的参数,包括显示设置的和系统默认的。比如所用的垃圾回收器,堆的最大值等
jmap:生成虚拟机的内存转储快照,制作堆dump文件
jmap命令可以获得运行中的jvm ...
从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存。因此,接下来讨论的思路不依赖于给缓存设置过期时间这个方案。
在这里,我们讨论三种更新策略:
先更新数据库,再更新缓存
先删除缓存,再更新数据库
先更新数据库,再删除缓存
1、先更新数据库,再更新缓存
这套方案,大家是普遍反对的。为什么呢?有如下两点原因。
原因一(线程并行角度)
同时有请求A和请求B进行 ...
概述:
1、深度优先遍历(Depth-First-Search)常用的数据结构为栈,广度优先遍历(Breadth-First-Search)常用的数据结构为队列
2、深度优先遍历的思想是从上至下,对每一个分支一直往下一层遍历直到这个分支结束,然后返回上一层,对上一层的右子树这个分支继续深搜,直到一整棵树完全遍历,因此深搜的步骤符合栈后进先出的特点
广度优先遍历的思想是从左至右,对树的每一层所有结点依次遍历,当一层的结点遍历完全后,对下一层开始遍历,而下一层结点又恰好是上一层的子结点。因此广搜的步骤符合队列先进先出的思想
3、深度优先遍历:
对每一个可能的分支路径深入到不能再深入为止, ...
1、default关键字
在java里面,我们通常都是认为接口里面是只能有抽象方法,不能有任何方法的实现的,那么在jdk1.8里面打破了这个规定,引入了新的关键字default,通过使用default修饰方法,可以让我们在接口里面定义具 ...
Zookeeper 总结
- 博客分类:
- Apache
zookeeper是一个开源的分面式协调服务;换句话讲,zk是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现数据的发布/订阅、负载均衡、名称服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式 ...
主要两类:
磁盘I/O
网络I/O
基于字节操作的I/O接口:InputStream和OutputStream
基于字符操作的I/O接口:Writer和Reader
基于磁盘操作的I/O接口:File
基于网络操作的I/O接口:Socket
字符解码相关类结构:
字符编码相关类结构:
Java序列化就是将一个对象转化成一串二进制表示的字节数组,通过保存或转移这些字节数据来达到持久化的目的。
需要序列化,对象必须继承java.io.Serializable接口。
Socket通信示例:
Java NIO 相关 ...