SpringBoot集成Zookeeper Posted on 2019-09-02 | In springboot [TOC] 分布式事物 分布式事务是指事务的参与者,支持事务的服务器,资源服务器分别位于分布式系统的不同节点之上,通常一个分布式事物中会涉及到对多个数据源或业务系统的操作。 典型的分布式事务场景:跨银行转操作就涉及调用两个异地银行服务 CAP理论 CAP理论:一个分布式系统不可能同时满足一致性,可 ... Read more »
【从零开始学Go】使用goquery爬取全网VIP影视资源在线观看地址 Posted on 2019-06-20 | In 从零开始学Go goquery官方文档地址会用jquery的,goquery基本可以1分钟上手 goquery常用方法12345678910111213141516171819202122Eq(index int) *Selection //根据索引获取某个节点集First() *Selection / ... Read more »
高性能MySQL第三本笔记总结(上) Posted on 2019-05-27 | In 数据库 无论何时,只要有多个查询需要在同一个时刻修改数据时,就会有并发问题。MySql主要在服务器层与存储引擎层进行并发控制。 假设数据库中国一张邮箱表,每个邮件都是一条记录。如果某个客户正在读取邮箱,同时其他客户试图在删除邮箱表中的某一条数据。这个时候,读取的结构就是不确定的了。在MySql中会通 ... Read more »
SpringBoot集成Sharding-JDBC实现分库分表 Posted on 2019-04-25 | In springboot 概述 ShardingSphere,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。定位为轻量级Java框架。其实就是一个增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。内部改写了SQL的添加和查询规则。适用于 ... Read more »
Spring Boot 自定义一个starter Posted on 2019-04-25 | In springboot SprngBoot之所以现在这吗火热,是因为spring starter模式使我们日常模块化开发独立化, 模块之间依赖关系更加松散,更加的方便集成 如何实现首先建立一个普通maven工程,修改pom配置文件 1234567891011121314151617181920212223<dep ... Read more »
Docker快速入门 Posted on 2019-04-20 | In Docker 概述 Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。 CentOS7 Docker 安装Docker ... Read more »
一条SQL查询语句是如何执行的 Posted on 2019-04-16 | In 数据库 MySQL可以分为Server层和存储引擎层两部分 Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存 ... Read more »
volatile的内存语义 Posted on 2019-04-05 | In 并发编程 volatile的特性 volatile修饰的变量可以禁止指令重排序和保证了内存可见性和单一操作的原子性,类似i++这样的复合操作的原子性保证不了 有volatile关键字修饰的共享变量进行写操作数,会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。在多处理器下,会将当前处理器工 ... Read more »
SpringBoot集成prometheus+Grafana监控 Posted on 2019-04-02 | In springboot 概述 Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包 。 添加依赖1234567891011<dependency> <groupId>org.springframework.boot</groupId> ... Read more »
并发编程-深入理解线程池ThreadPoolExecutor Posted on 2019-03-31 | In 并发编程 概述 使用线程池技术可以降低资源的消耗,提高响应速度和线程的可重复利用性 当提交一个新任务到线程池后,线程池首先会判断核心线程池(corePoolSize)里的线程是否都在执行任务,如果不是则创建一个新的工作线程来执行任务。如果核心线程池corePoolSize的线程都被占用在执行任务,线程判断工作 ... Read more »