07 2019 档案
摘要:spring boot: Profile 的概念其实很早在 Spring Framework 就有了,在 Spring Framework 3.1 版本引入了注解 @Profile和 Environment 环境配置的抽象,只是在 Spring Boot 框架里再进一步将 Profiles 功能进行
阅读全文
摘要:总结:mybatis 参数传递到 xml 几种方式。 方法1:顺序传参法 public User selectUser(String name, int deptId); <select id="selectUser" resultMap="UserResultMap"> select * from
阅读全文
摘要:总结:我所知道的锁概念,各种概念总结,你还怕锁吗? 👉 乐观锁 分为三个阶段:数据读取、写入校验、数据写入。 假设数据一般情况下不会造成冲突,只有在数据进行提交更新时,才会正式对数据的冲突与否进行检测,如果发现冲突了,则返回错误信息,让用户决定如何去做。fail-fast机制。 https://g
阅读全文
摘要:总结:数据写入过程 为什么要分析写入了,因为好奇呗。比如有如下问题一直困惑着我 写入概览 首先我们从分布式集群的角度分析下写入,采用系统默认的参数来说明 集群有三个节点,都存储数据,indexA 有5个分片,2个复制集。数据如下分布Node1: shard1Node2: shard2,shard3,
阅读全文
摘要:起因 今天接到财务一个需求,求一个月 商品出入库 信息,销售出库,采购入库。所以 我只能 查了 在汇总 在一起。 画了一个图: 思路两种: 1.可以吧 你先把 并集 求出来,在吧并集里面 数据合并,在吧其他 两个 集合 删除 相交的,在3个集合合并 2.先 合并两个 集合,在根据商品id 分组,计算
阅读全文
摘要:总结:大家都知道数据量分页,越网下面翻页就越慢,很多搜索引擎都控制 只能翻 100页,因为每次 都要先找到 前面的n 条记录 ,再往下面找几条,怎么优化呢? 这里提下 增量更新 思路,要么改了发消息,要么定时扫表,语句如下:
阅读全文
摘要:总结:分布式事务Tcc 详解 石杉的架构笔记 一、写在前面 之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了不少文章,还是不知道分布式事务到底怎么回事,在项目里到底如何使用。 所以咱们这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给
阅读全文
摘要:总结:线程 共享 进程 里面的资源,进程是操作系统 最小单元,一个进程 可以存在多个 线程。提下 jvm 退出 并不是main 方法结束,而是 jvm 不存在 其他 线程(排除守护线程) 其他线程 调用线程中断 ,线程运行时则不会抛出异常,处于阻塞 ,会抛出异常,,这个时候 中断会复位,当前线程中断
阅读全文
摘要:总结:我们写过很多接口,有没有想想接口的安全性呢?jwt,openid 侧重 于 认证(就是用户是谁),OAuth2 侧重于授权(就是说这个东西是否有权限访问),接口签名呢 侧重于安全 签名介绍: AccessKey&SecretKey (开放平台) 请求身份 为开发者分配AccessKey(开发者
阅读全文
摘要:总结:消息队列的一些特性。 过期时间(TTL) Time To Live,也就是生存时间,是一条消息在队列中的最大存活时间,单位是毫秒。了解Redis的朋友应该一看就明白,二者很像。 RabbitMQ可以对消息和队列设置TTL。 RabbitMQ支持设置消息的过期时间,在消息发送的时候可以进行指定,
阅读全文
摘要:总结:在HTTP中与网页缓存相关的HTTP头部信息分为以下三组: Last-Modified和If-Modified-Since ETags和If-None-Match Expires和Cache-Control 下面就分别对这三组HTTP头进行详细的说明和总结! Last-Modified和If-
阅读全文
摘要:总结:Linux这么多命令,通常会让初学者望而生畏。下面是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的同学,精选的一批必须要搞懂的命令集合。 任何一个命令其实都是可以深入的,比如tail -f和tail -F的区别。我们不去关心,只使用最常见的示例来说明。本文不会教你具体的用
阅读全文
摘要:1. 问题引入 之前在使用tomcat的时候,启动tomcat默认都会绑定到127.0.0.1这个地址,最近在使用hexo写博客的时候发现通过 hexo server命令启动服务的时候绑定的ip地址是0.0.0.0。那么这两个IP地址到底有什么不同呢? 在讲解两个地址的不同之前,我们先回顾一下IP地
阅读全文
摘要:总结:事物 我就不说了 acid 自行百度,开启事物的几种方式。 大体分两种:声明式事务,编程式事务。 声明式事务 如下方式: springboot 之 xml事务 springboot 之 注解事务 springboot 之 编程式事务 https://blog.csdn.net/f6413857
阅读全文
摘要:倒排后结果:
阅读全文
摘要:总结:话不多说,CRUD 打天下。 还有些 批量 操作,Bulk API、mget、msearch的API,通过调用它们可以很好的提高性能,但是在调用时也不要过多的发送数据,否则也会容易导致ES集群过大的压力,造成性能的下降。
阅读全文
摘要:ElasticSearch基本概念 1 . ElasticSearch是面向文档的文档会被序列化成Json,Json对象是由字段组成的,每个字段都有对应的字段类型(如:字符串、数值、日期类型等),可以自己指定此ID,也可以通过ElasticSearch自动生成; 2. 每个索引都有自己的Mapping定义,用来定义所包含的文档的字段名和字段类型 类似数据库 ddl 描述字段的云数据信息 比如 什么...
阅读全文
摘要:总结:学好一门技术其实是十分难的,因为本身坚持做一件事情并且 持之以恒 的一直 做下去,大多数人都办不到 包括我感觉也做不到。 这里我以最新 7.2 最新 为例,win10,当然linux 安装稍微复杂一点点,其实也不难 无非就是 创建用户,连接限制 打开,默认用户 1024 ,自己百度一下 也就半
阅读全文
摘要:总结:elk 用处广泛,是时候了解一下了。官网地址 https://www.elastic.co/cn/webinars/introduction-elk-stack 首先介绍一下它的用处 常见的搜素方案 常见的日志采集流程:
阅读全文
摘要:总结:一般的产品都会有各种 抽奖活动(送优惠价或者红包等),今天来讲讲抽奖活动 抽奖算法。 一般后台可以动态配置,一个抽奖活动 有几个奖项,及每个 奖项的数量,及中奖概率。 思路如下图:*10000 是为了可能 概率为 %0.0001 最低 //这里以积分抽奖为例 大体思路 用户多 令牌桶限流--》
阅读全文
摘要:https://github.com/lifesinger/blog/issues/184
阅读全文
摘要:总结:布隆过滤无用请求-》令牌桶——》redis 扣库存-> 直接返回-》异步操作数据库 https://blog.51cto.com/13527416/2085258 https://zhuanlan.zhihu.com/p/25368538
阅读全文
摘要:总结:稍微有些规模的网站,基本上都会配置mysql主从复制,一方面用mysql的主从做数据库的读写分离,另一方面mysql本身的单机备份不是很强,一般采用主从架构,在从上进行数据备份。 在MySQL主从复制过程中或多或少出现一些主从不同步的情况,本文将对数据主从不同步的情况进行简单的总结,请注意本文
阅读全文
摘要:总结:大道至简 讲究方法与策略,我觉得 大道至简 讲的是 单一职责,就是说 一个人把一件事情做到完美,配合对应的方法和策略 事情就会变的很简单。 话不多说 代码如下: 这个类 维护好对应 关系 即可:
阅读全文
摘要:总结:日志实际上只是一种按照时间顺序存储记录的数据表或文件 它记录了什么时间发生了什么事情。而对分布式数据系统,在许多方面,这是要解决的问题的真正核心 日志概念和分类 应用程序中的日志 tomcat 日志 数据库中的日志 日志记录了发生了什么,而每个表或者索引都是更改历史中的一个投影。由于日志是立即
阅读全文
摘要:总结:filter,interceptor,aop,的思想其实都是对一些公用的东西的 抽取。 从范围来讲:filter 是最外层,对容器的 url 全部有用,如静态 文件,action 等,可获取容器的一些内容,只能用于Web程序中 是Servlet规范规定。 interceptor 只对 acti
阅读全文
摘要:一、静态代理 Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。 二、负载均衡 Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。常用的负载均衡策略有
阅读全文
摘要:总结:什么是生命周期了,其实就是从初始化创建对象 》到对象销毁的一系列过程,就好像人一样,从出生到死亡,中间一系列的过程就叫做 生命周期。 百度一张 图片过程图 嘻嘻: 说明: 1、根据配置情况,调用Bean的构造方法或工厂方法实例化Bean 2、利用依赖注入完成Bean中所有属性值的配置注入 3、
阅读全文
摘要:基本日志处理架构 所有日志由Rsyslog或者Filebeat收集,然后传输给Kafka,Logstash作为Consumer消费Kafka里边的数据,分别写入Elasticsearch和Hadoop,最后使用Kibana输出到web端供相关人员查看,或者是由Spark接手进入更深层次的分析 在以上
阅读全文
摘要:总结:学习过java 的相信 对quartz 并不陌生,今天就来 聊聊quartz吧,它是提供强大的任务调度功能。 首先聊下 概念: Scheduler:调度容器 Job:Job接口类,即被调度的任务 JobDetail :Job的描述类,job执行时的依据此对象的信息反射实例化出Job的具体执行对
阅读全文
摘要:总结:今天主要讲解一下jpa 的动态sql,用过hibernate 都知道有个qbc(动态sql),hql, jpa呢 加 jql,和标准查询 动态sql ,主要重写 findAll 代码如下: 解析sql 如下 select user0_.id as id1_0_, user0_.create_t
阅读全文
摘要:总结:docker 安装起来mysql 完全傻瓜式操作,比起在linux 安装方便不只 10倍。 删除 本机的mysql 镜像 上述步骤 mysql 5.6 镜像已经删除了,接下来安装 5.7,只需要两步1.拉取 2. 启动 docker pull mysql:5.7 docker run --na
阅读全文
摘要:总结:docker 是一种容器技术,一镜像为单元,可以折磨理解吧,一个镜像就是一个独立的单元,类似一个linux系统 。基本概念就这样,可以自行百度。 话不多说这里以centos 7 (注意 7以下还有额外安装依赖,可自行百度)为例, 1.安装一些必要的系统工具: 2.添加阿里云仓库加速类似于 ma
阅读全文
摘要:总结: 序列化是讲对象转为字节流、反序列化是讲字节流转换回java。序列化对存储和传输对象非常有效。 文中对三种常见的序列化方法进行讨论 Java原生序列化将需要序列化的类实现Serializable接口后,使用ObjectInputStream和ObjectOutputStream就能实现反序列化
阅读全文
摘要:总结:顾名思义,委托就是 自己不做,给被人做,比如 一个人委托我 做事,我把事情 交给其他人做,shiro 源码好多都是委托和策略 模式。 下面我以常用的 HttpUtils 工具讲一下 委托模式的简单使用。我参考了JFinal 源码 代码如下: 在基础上增加了请求头 具体实现如下: 思想就是,我说
阅读全文
摘要:总结:我们大多数时候都是静态编译,写好java 开发工具或者构建 就给编译了,有没有动态生成类,然后执行呢,答案是有的,如动态代理的具体实现。 介绍: 反射:就是通过在运行时获得类型信息然后做相应的操作。 动态编译:动态编译是从Java 6开始支持的,主要是通过一个JavaCompiler接口来完成
阅读全文