不是所有场景都适合微服务!!

    微服务是软件架构的银弹吗?或许不是。这个世界上很少有东西是百分百正确的,微服务也不例外。
    在这篇文章里,我们将讨论在设计或重构应用程序时,哪些场景可以使用微服务,哪些场景要避免使用微服务。

more >>

Spring Security架构简介

一.技术概述

    1.1 Spring vs Spring Boot vs Spring Security
        1.1.1 Spring Framework
            Spring Framework为开发Java应用程序提供了全面的基础架构支持。它包含一些不错的功能,如“依赖注入”,以及一些现成的模块:

  • Spring JDBC
  • Spring MVC
  • Spring Security
  • Spring AOP
  • Spring ORM

more >>

数据库的分库分表

数据切分

    关系型数据库本身比较容易成为系统瓶颈,单机储存容量、连接数、处理能力都有限。
    当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加主从库、优化索引,做很多操作时性能仍下降严重。
    此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。
    数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。
    数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。

more >>

Dubbo RPC

一.为什么要有RPC

    随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

more >>

谈谈对ES搜索引擎的理解

面试官心里分析

    问这个,其实面试官就是要看看你了不了解ES的一些基本原理,因为用ES无非就是写入数据、搜索数据。你要是不明白你发起一个写入和搜索请求的时候,ES在干什么,那你是对ES基本就是个黑盒,你还能干什么?你唯一能干的就是用ES的api读写数据。要是出点什么问题,你啥都不知道,那还能指望你什么呢?

more >>

递归算法-如何学习递归

递归的三大要素

第一要素:明确你这个函数想干什么

    对于递归,很重要的一件事就是,这个函数的功能是什么,它要完成什么样的一件事,而这个,是完全由你自己来定义的。也就是说,我们先不管函数里面的代码什么,而是要先明白你这个函数要用来干什么。

more >>