03 2019 档案

摘要:主 题 :INTO100沙龙时间 :2015年11月21日下午地点 :梦想加联合办公空间分享人:卫向军(毕业于北京邮电大学,现任微博平台架构师,先后在微软、金山云、新浪微博从事技术研发工作,专注于系统架构设计、音视频通讯系统、分布式文件系统和数据挖掘等领域。) 架构以及我理解中架构的本质 在开始谈我 阅读全文
posted @ 2019-03-28 16:00 琴剑书酒 阅读(908) 评论(0) 推荐(0)
摘要:B B+运用在file system database这类持续存储结构,同样能保持lon(n)的插入与查询,也需要额外的平衡调节。像mysql的数据库定义是可以指定B+ 索引还是hash索引。 C++ STL中的map就是用红黑树实现的。AVL树和红黑树都是二叉搜索树的变体,他们都是用于搜索。因为在 阅读全文
posted @ 2019-03-28 11:55 琴剑书酒 阅读(540) 评论(0) 推荐(0)
摘要:MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Object 阅读全文
posted @ 2019-03-26 14:59 琴剑书酒 阅读(750) 评论(0) 推荐(0)
摘要:我们以一个订单流转流程来举例,例如订单子系统创建订单,需要将订单数据下发到其他子系统(与第三方系统对接)这个场景,我们通常会将两个系统进行解耦,不直接使用服务调用的方式进行交互。其业务实现步骤通常为: 1、A系统创建订单并入库。 2、发送消息到MQ。 3、MQ消费者消费消息,发送远程RPC服务调用, 阅读全文
posted @ 2019-03-12 17:23 琴剑书酒 阅读(727) 评论(1) 推荐(0)
摘要:分布式事务 微服务倡导将复杂的系统拆分为若干个简单、职责单一、松耦合的服务,可以降低开发难度,便于敏捷开发。而对大多数中小型公司来说,实施微服务架构面临以下困难: 单体应用拆分为分布式系统后,应用间的通讯和故障处理机制变得复杂 微服务化后,一个简单的功能需要调用多个服务并操作多个数据库实现,数据一致 阅读全文
posted @ 2019-03-12 16:31 琴剑书酒 阅读(221) 评论(0) 推荐(0)
摘要:基于 REDIS 的 SETNX()、EXPIRE() 方法做分布式锁 setnx() setnx 的含义就是 SET if Not Exists,其主要有两个参数 setnx(key, value)。该方法是原子的,如果 key 不存在,则设置当前 key 成功,返回 1;如果当前 key 已经存 阅读全文
posted @ 2019-03-12 16:15 琴剑书酒 阅读(398) 评论(0) 推荐(0)
摘要:初步认识RocketMQ的核心模块 rocketmq模块 rocketmq-broker:接受生产者发来的消息并存储(通过调用rocketmq-store),消费者从这里取得消息。 rocketmq-client:提供发送、接受消息的客户端API。 rocketmq-namesrv:NameServ 阅读全文
posted @ 2019-03-12 13:51 琴剑书酒 阅读(309) 评论(0) 推荐(0)
摘要:RocketMQ 事务消息在实现上充分利用了 RocketMQ 本身机制,在实现零依赖的基础上,同样实现了高性能、可扩展、全异步等一系列特性。 在具体实现上,RocketMQ 通过使用 Half Topic 以及 Operation Topic 两个内部队列来存储事务消息推进状态,如下图所示: 其中 阅读全文
posted @ 2019-03-12 13:29 琴剑书酒 阅读(582) 评论(0) 推荐(0)
摘要:1.Serial收集器一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。特点:CPU利用率最高,停顿时间即用户等待时间比较长。适用场景:小型应用通过JVM参数-XX:+UseSerialGC可以使用串行垃圾回收器。 2.Parallel收集器采用多线程来通过扫描并压缩 阅读全文
posted @ 2019-03-08 16:26 琴剑书酒 阅读(2044) 评论(0) 推荐(0)
摘要:对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、 阅读全文
posted @ 2019-03-08 15:58 琴剑书酒 阅读(261) 评论(0) 推荐(0)
摘要:本博客部分博文收集于网络,如有侵权,请联系作者删除! 阅读全文
posted @ 2019-03-06 14:07 琴剑书酒 阅读(114) 评论(0) 推荐(0)
摘要:1、CMS收集器 CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下: 1)初始标记 2)并发标记 3)重新标记 4)并发清除 初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到 阅读全文
posted @ 2019-03-06 14:06 琴剑书酒 阅读(769) 评论(0) 推荐(0)
摘要:1.总体介绍: CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用 阅读全文
posted @ 2019-03-06 14:00 琴剑书酒 阅读(13644) 评论(0) 推荐(2)
摘要:explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了: 如: EXPLAIN列的解释: table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何 阅读全文
posted @ 2019-03-06 11:19 琴剑书酒 阅读(6716) 评论(0) 推荐(0)
摘要:1、前言 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。R 阅读全文
posted @ 2019-03-06 11:08 琴剑书酒 阅读(199) 评论(0) 推荐(0)
摘要:使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索 阅读全文
posted @ 2019-03-06 10:51 琴剑书酒 阅读(218) 评论(0) 推荐(0)
摘要:Java中当我们的开发涉及到多线程的时候,这个时候就很容易遇到死锁问题,刚开始遇到死锁问题的时候,我们很容易觉得莫名其妙,而且定位问题也很困难。 因为涉及到java多线程的时候,有的问题会特别复杂,而且就算我们知道问题出现是因为死锁了,我们也很难弄清楚为什么发生死锁,那么当我们遇到了死锁问题,我们应 阅读全文
posted @ 2019-03-06 10:38 琴剑书酒 阅读(2129) 评论(0) 推荐(0)
摘要:转载自 https://blog.csdn.net/u014039577/article/details/52351626 Java中当我们的开发涉及到多线程的时候,这个时候就很容易遇到死锁问题,刚开始遇到死锁问题的时候,我们很容易觉得莫名其妙,而且定位问题也很困难。 因为涉及到java多线程的时候 阅读全文
posted @ 2019-03-06 10:36 琴剑书酒 阅读(795) 评论(0) 推荐(0)