• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

每天更新原创技术文章及教程,欢迎关注!

大型项目架构演进过程及思考的点

大型项目架构演进过程及思考的点
高大上的淘宝架构我们以淘宝架构为例,了解下大型的电商项目的服务端的架构是怎样,如图所示上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。最下面呢,是中间件服务,如 MQS 即队列服务,OCS……继续阅读 »

多啦H梦 2个月前 (09-25) 64浏览 0评论0个赞

公司真实场景下的SQL优化总结

公司真实场景下的SQL优化总结
写在前面的话 来我们这家公司一年了 刚开始网站上线时首页打开非常的卡 后来发现是 sql 的原因 仔细看了下 sql 慢语句 (这里可以使用阿里的监控工具 druid 分析是哪条 sql 导致的响应缓慢) 刚开始不懂优化 就是在 客服端上瞎改知道改的快了为止 摸石头过河吧 让我直接说方法我也很懵逼 你给我一条 sql 让我调优我觉得我能做到 ……继续阅读 »

多啦H梦 3个月前 (09-01) 191浏览 0评论0个赞

列数据库HBase特性总结与关键实现

列数据库HBase特性总结与关键实现
特性总结与传统的行数据库相比,列数据库的特点就在于其是以列为存储单位的,以此方便存储结构化和半结构化数据并做数据压缩,其对针对某一列或者某几列的查询有非常大的 I/O 优势。 HBase 是最常用的列数据库之一 。HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Google 论文“ Bigtable:一个结构化数据的分布式存储系统” 。 ……继续阅读 »

多啦H梦 3个月前 (08-25) 202浏览 0评论0个赞

MongoDB特性剖析

MongoDB特性剖析
存储引擎一开始 MongoDB 仅仅支持 MMAP 存储引擎 ,到 了目前的 MongoDB已经支持多存储引擎 。1) MMAPvl这是 MongoDB 最开始的存储引擎 ,也是 3.2 版本之前的默认存储引擎 。 这就是比较简单的内存映射文件,支持集合级别的并发控制,不支持压缩 。2 ) WiredTiger这是 MongoDB 3 .0 引人的……继续阅读 »

多啦H梦 3个月前 (08-24) 187浏览 0评论0个赞

程序员如何写好简历?程序员简历编写技巧及常用句式一览

程序员如何写好简历?程序员简历编写技巧及常用句式一览
通用:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读多个开源项目,学习改善代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高性能网站架构设计与系统核心部分代码编写、重构,能进行技术攻关,突破关键技术瓶颈。负责根据公司业务及目标引进人才、培养新人、规划团队人员、并建立完善的绩效考核制度有效留住人才,提高工作效率。熟……继续阅读 »

多啦H梦 3个月前 (08-23) 182浏览 0评论1个赞

文档数据库一MongoDB

文档数据库一MongoDB
文档数据库文档数据库总体形式上也是键值对的形式 ,但是值又可以有各种数据结构:数组、键值对、字符串等,可以认为是 JSON 格式的数据存储,因此能够对任意字段建立索引,实现关系型数据库的某些功能 。MongoDB 是一个分布式文件存储的数据库,是非关系型数据库中最像关系型数据库的 。其具有以下特点 。灵活模式: 数据以 JSON 格式存储。高可用性……继续阅读 »

多啦H梦 3个月前 (08-22) 337浏览 0评论0个赞

浅谈非关系型数据库

浅谈非关系型数据库
非关系型数据库非关系型数据库是相对关系型数据库来讲的,又被称为 NoSQL 数据库,也可以叫作 Not Only SQL 数据库 。 相比传统的 SQL 关系型数据库,其最大的特点就是适合存储非结构化或半结构化的数据,适合存储大规模数据。 以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限……继续阅读 »

多啦H梦 3个月前 (08-21) 319浏览 0评论0个赞

MySQL的使用注意事项

MySQL的使用注意事项
MySQL 本身的使用和配置有以下注意点MySQL 默认的连接数是 100 , 调整 MySQL 的最大连接数能够在一定程度上提高井发能力 。使用慢查询日志监测导致数据库响应缓慢的 SQL 语句 。MySQL 有一个常见的连接缓慢原因,那就是会根据域名做反向 DNS 查询 。 这个问题可以通过在 MySQL 中加入 skip-name-resolve ……继续阅读 »

多啦H梦 3个月前 (08-20) 193浏览 0评论0个赞

MySQL大表优化策略

MySQL大表优化策略
当 MySQL 单表记录数过大时,数据库的 CRUD 性能会下降,需要如下的一些优化措施 。1 )限定数据的范围 对于大数据茸的数据表,全表扫描肯定是不可接受的 。 务必禁止不带任何限制数据范围条件的查询语句存在。 比如, 当用户查询订单历史数据时,可以控制在最近一个月的数据中进行筛选 。2 )读/写分离 经典的数据库拆分方案主库负责写 ,从库负责读……继续阅读 »

多啦H梦 3个月前 (08-19) 211浏览 2评论0个赞

数据库的锁机制

数据库的锁机制
锁机制 MySQL 为了解决并发、数据安全的问题 ,使用了锁机制 。可以按照锁的粒度把数据库锁分为表级锁和行级锁。表级锁:是 MySQL 中锁定粒度最大的一种锁,对当前操作的整张表加锁, 实现简单,资源消耗较少, 加锁快 ,不会出现死锁。 其锁定粒度最大 , 触发锁冲突的概率最高,并发度最低 。 MyISAM 和 InnoDB 引擎都支持表级锁。行……继续阅读 »

多啦H梦 3个月前 (08-18) 174浏览 1评论0个赞

MySQL索引的使用

MySQL索引的使用
索引的使用 MySQL 索引使用的数据结构主要有 BTree 索引和哈希索引 。 对于哈希索引来说,底层数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择使用晗希索引 ,查询性能最快;其余大部分索引场景,则建议选择 BTree 索引 。MySQL 的 BTree 索引使用的是 B 树中的 B+Tree ,但对于主要的两种存储引擎其实现……继续阅读 »

多啦H梦 3个月前 (08-17) 253浏览 1评论0个赞

数据库中的事务机制

数据库中的事务机制
事务机制关系型数据库是需要遵循 ACID 规则的,分别介绍如下 。A( Atomic )原子性:即事务要么全部做完,要么全部都不做。 只要其中一个操作失败,就认为事务失败,需要回滚 。C ( Consistency )一致性: 数据库要一直处于一致的状态 。I ( Isolation )独立性: 并发的事务之间不会互相影响 。D ( Dura……继续阅读 »

多啦H梦 3个月前 (08-16) 191浏览 0评论0个赞

MySQL数据同步中的Binlog

MySQL数据同步中的Binlog
MySQL 的 Binlog 是用来做 POINT-IN-TIME 的恢复和主从复制的,由数据库上层生戚,是 SQL 执行的逻辑日志,在事务提交完成后进行一次写入 。Binlog 有如下 3 种格式 。1 ) StatementMySQL 的默认 Binlog 格式 。 每一条会修改数据的 SQL 都被记录到 bin-log 中, Slave 在复制……继续阅读 »

多啦H梦 3个月前 (08-15) 175浏览 0评论0个赞

MySQL查询缓存的使用

MySQL查询缓存的使用
查询缓存的使用 my.cnf 中加入以下配置 ,重启 MySQL 开启查询缓存 :query_cache_type = 1query_cache_size = 60000MySQL 命令行执行以下命令,也可开启查询缓存:set global query_cache_type = 1;set global query_cache_s……继续阅读 »

多啦H梦 3个月前 (08-14) 165浏览 0评论0个赞

关系型数据库——MySQL存储引擎简介

关系型数据库——MySQL存储引擎简介
MySQL关系型数据库是采用关系模型来组织数据的数据库。 所谓关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组 。目前,用得最普遍的关系型数据库有 MySQL 、 Oracle 、 PostgreSQL 等 。 这里针对 Java 开发中最常用的 MySQL 进行阐述。存储引擎MySQL 主要有两种……继续阅读 »

多啦H梦 3个月前 (08-13) 162浏览 0评论0个赞

JVM面试问题总结

JVM面试问题总结
1. 讲一下 Java 内存划分Java 虚拟机在运行程序时会把其自动管理的内存划分为以下几个区域: – 堆内存:所有线程共享,对象实例。当扩展内存大于可用内存,抛 OOM。 – 方法区:已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。当内存申请大于实际可用内存,抛 OOM。(JDK1.8 以前,1.8 已……继续阅读 »

Geekerstar 3个月前 (08-10) 160浏览 0评论0个赞

对锁的一些认知

对锁的一些认知
同一进程重入锁使用 ReentrantLock 获取锁的时候会会判断当前线程是否为获取锁的线程,如果是则将同步的状态 +1 ,释放锁的时候则将状态 -1。只有将同步状态的次数置为 0 的时候才会最终释放锁。读写锁使用 ReentrantReadWriteLock ,同时维护一对锁:读锁和写锁。当写线程访问时则其他所有锁都将阻塞,读线程访问时则不会。通……继续阅读 »

Geekerstar 4个月前 (08-07) 189浏览 0评论0个赞

Java 运行时的内存划分

Java 运行时的内存划分
Java 运行时的内存划分程序计数器记录当前线程所执行的字节码行号,用于获取下一条执行的字节码。当多线程运行时,每个线程切换后需要知道上一次所运行的状态、位置。由此也可以看出程序计数器是每个线程私有的。虚拟机栈虚拟机栈由一个一个的栈帧组成,栈帧是在每一个方法调用时产生的。每一个栈帧由局部变量区、操作数栈等组成。每创建一个栈帧压栈,当一个方法执行……继续阅读 »

Geekerstar 4个月前 (08-07) 215浏览 0评论0个赞

类加载机制

类加载机制
双亲委派模型模型如下图:双亲委派模型中除了启动类加载器之外其余都需要有自己的父类加载器当一个类收到了类加载请求时: 自己不会首先加载,而是委派给父加载器进行加载,每个层次的加载器都是这样。所以最终每个加载请求都会经过启动类加载器。只有当父类加载返回不能加载时子加载器才会进行加载。双亲委派的好处 : 由于每个类加载都会经过最顶层的启动类加载器,比如……继续阅读 »

Geekerstar 4个月前 (08-07) 156浏览 0评论0个赞

如何设计一个秒杀系统

如何设计一个秒杀系统
如何设计一个秒杀系统具体实现参考 秒杀架构实践主要做到以下两点:尽量将请求过滤在上游。尽可能的利用缓存(大多数场景下都是查多于写)。常用的系统分层结构:针对于浏览器端,可以使用 JS 进行请求过滤,比如五秒钟之类只能点一次抢购按钮,五秒钟只能允许请求一次后端服务。(APP 同理)这样其实就可以过滤掉大部分普通用户。但是防不住直接抓包循环……继续阅读 »

Geekerstar 4个月前 (08-05) 154浏览 0评论0个赞

编码实践之重构

编码实践之重构
一、第一个案例如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构这个程序。在重构前,需要先构建好可靠的测试环境,确保安全地重构。重构需要以微小的步伐修改程序,如果重构过程发生错误,很容易就能发现错误。案例分析影片出租店应用程序,需要计算每位顾客的消费金额。包括三个类:Movie、Rental 和 Customer……继续阅读 »

多啦H梦 4个月前 (08-03) 133浏览 0评论0个赞

构建工具学习笔记

构建工具学习笔记
一、什么是构建工具构建工具是用于构建项目的自动化工具,主要包含以下工作:依赖管理不再需要手动导入 Jar 依赖包,并且可以自动处理依赖关系,也就是说某个依赖如果依赖于其它依赖,构建工具可以帮助我们自动处理这种依赖管理。运行单元测试不再需要在项目代码中添加测试代码,从而污染项目代码。将源代码转化为可执行文件包含预处理、编译、汇编、链接等步骤。将……继续阅读 »

多啦H梦 4个月前 (08-02) 174浏览 0评论0个赞