摘要: 博客园不再维护,特此公告 写在开头,目前博客园文章访问量已达35W,在此衷心的感谢各位小伙伴的支持与鼓励 写博客要考虑排版,实时预览,甚至是标题构思,毕竟好的标题确实能够吸引来更多的访问,尽管博客目前都支持markdown但仍是有诸多不便 每次都需要耗费很多精力来修改错误的排版,考虑技术分享本不该如此的。结合工作需求,故而今 阅读全文
posted @ 2021-12-15 21:47 liuyanntes 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 分享自我的私人笔记Docker,光说不练假把式 镜像 images_name 表示镜像名 con_name表示容器名 #获取镜像 docker pull images_name #查看已有的docker镜像 docker images #删除镜像 docker rmi image_name #修改镜像名 docker tag imageid na 阅读全文
posted @ 2021-12-15 21:10 liuyanntes 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 本篇仅仅是JVM的简介,关于更多的JVM细节,请参见 参见: 关于类加载子系统详述 参见: 关于程序计数器详述 参见 关于Java虚拟机栈的详述 参见: 关于本地方法接口详述 参见: 关于本地方法栈详述 参见: 关于方法区的详述 参见: 关于堆区的详述 参见: 关于执行引擎的详述 计算机系统当中的J 阅读全文
posted @ 2020-04-01 10:43 liuyanntes 阅读(5902) 评论(2) 推荐(57) 编辑
摘要: 博客园不再维护,特此公告 写在开头,目前博客园文章访问量已达35W,在此衷心的感谢各位小伙伴的支持与鼓励 写博客要考虑排版,实时预览,甚至是标题构思,毕竟好的标题确实能够吸引来更多的访问,尽管博客目前都支持markdown但仍是有诸多不便 每次都需要耗费很多精力来修改错误的排版,考虑技术分享本不该如此的。结合工作需求,故而今 阅读全文
posted @ 2021-12-15 21:47 liuyanntes 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 分享自我的私人笔记Docker,光说不练假把式 镜像 images_name 表示镜像名 con_name表示容器名 #获取镜像 docker pull images_name #查看已有的docker镜像 docker images #删除镜像 docker rmi image_name #修改镜像名 docker tag imageid na 阅读全文
posted @ 2021-12-15 21:10 liuyanntes 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Arrays类的Api stream()方法传入数组,返回对应的stream流。 Collection集合的Api: stream()不传参数,返回Stream流。 有了上述Api可以完成如下转换.... 集合与基本数组的相互转换 @Test public void test5(){ int[] a 阅读全文
posted @ 2020-10-19 18:17 liuyanntes 阅读(4450) 评论(0) 推荐(0) 编辑
摘要: 操作符 说明 实例 . 表示任何单个字符 [] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符 [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 * 前一个字符0次或无限次扩展 abc*表示 ab、abc、abcc、abccc 阅读全文
posted @ 2020-10-04 18:18 liuyanntes 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Mycat 监控工具 Mycat-web 简介 Mycat-web 是 Mycat 可视化运维的管理和监控平台,弥补了 Mycat 在监控上的空白。帮 Mycat 分担统计任务和配置管理任务。Mycat-web 引入了 ZooKeeper 作为配置中心,可以管理多个节点。Mycat-web 主要管理 阅读全文
posted @ 2020-09-03 16:12 liuyanntes 阅读(1527) 评论(0) 推荐(0) 编辑
摘要: Mycat 安全设置 权限配置 1、 user 标签权限控制 目前 Mycat 对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写权限控制。是通过server.xml 的 user 标签进行配置。 #server.xml配置文件user部分 <user name="mycat 阅读全文
posted @ 2020-09-03 15:54 liuyanntes 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 基于 HA 机制的 Mycat 高可用 在实际项目中,Mycat 服务也需要考虑高可用性,如果 Mycat 所在服务器出现宕机,或 Mycat 服务故障,需要有备机提供服务,需要考虑Mycat 集群。 高可用方案 我们可以使用HAProxy + Keepalived 配合两台 Mycat 搭起Myc 阅读全文
posted @ 2020-09-03 15:47 liuyanntes 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 水平拆分——分表 相对于垂直拆分,水平拆分不是将表做分类,而是按照某个字段的某种规则来分散到多个库之中, 每个表中 包含一部分数据。简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中的某些行切分 到一个数据库,而另外的某些行又切分到其他的数据库中,如图: 实现分表 1、 选择要拆 阅读全文
posted @ 2020-09-03 15:45 liuyanntes 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 垂直拆分——分库 一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类, 分布到不同 的数据库上面,这样也就将数据或者说压力分担到不同的库上面,如下图: 系统被切分成了,用户,订单交易,支付几个模块。 如何划分表 一个问题:在两台主机上的两个数据库中的表,能否关联查询? 阅读全文
posted @ 2020-09-03 15:23 liuyanntes 阅读(145) 评论(0) 推荐(0) 编辑
摘要: mycat是什么 Mycat 是数据库中间件。 1、数据库中间件 中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。例子:Tomcat,web中间件。 数据库中间件:连接java应用程序和数据库 2、为什么要用Mycat? ① Java与数据库紧耦合。 ② 高访问量高并发对数 阅读全文
posted @ 2020-09-03 14:58 liuyanntes 阅读(784) 评论(0) 推荐(1) 编辑
摘要: 什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”,分布式系统(distributed system)是建立在网络之上的软件系统。 老式系统(单一应用架构)就是把一个系统,统一放到一个服务器当中然后每一个服务器上放一个系统 阅读全文
posted @ 2020-08-25 10:39 liuyanntes 阅读(402) 评论(0) 推荐(1) 编辑
摘要: 常见方法引用 方法引用可以让你重复使用现有的方法定义,并像Lambda一样传递它们。 方法引用可以看做是仅仅调用特定方法的Lambda表达式的一种便捷写法。类似于Lambda表达式,方法引用不能独立存在,总是会转换为函数式接口的实例。 需要使用方法引用时,用::操作符分隔对象(或类名)和方法名,目标 阅读全文
posted @ 2020-08-24 17:07 liuyanntes 阅读(168) 评论(0) 推荐(0) 编辑
摘要: Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁 阅读全文
posted @ 2020-08-24 15:26 liuyanntes 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 四大函数式接口指的是Consumer、Function、Predicate、Supplier,位于java.util.function包下: 函数式编程 lamabda表达式 函数式接口:在java中是指:有且仅有一个抽象方法的接口。也即适用于函数式编程场景的接口。而Java中的函数式编程体现就是L 阅读全文
posted @ 2020-08-23 18:54 liuyanntes 阅读(1347) 评论(0) 推荐(0) 编辑
摘要: Java当中的线程池是通过Executor这个框架接口来实现的,该框架当中用到了Executor,Executors工具类,ExecutorService,ThreadPoolExecutor Executors创建线程的三种方法: ExecutorService threadPool = Exec 阅读全文
posted @ 2020-08-22 16:04 liuyanntes 阅读(656) 评论(0) 推荐(0) 编辑
摘要: BlockingQueue简介 BlockingQueue:不是新的东西,父接口java.util.Queue 当队列为空时,从队列中获取元素将阻塞。当队列为满时,从队列中添加元素将阻塞。因为是队列,所以我们理应想到先进先出。 BlockingQueue常用API boolean add(E e) 阅读全文
posted @ 2020-08-22 15:02 liuyanntes 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 并发读写的时候,很容易造成数据不一致的状态 上案例,代码如下: public class ReadWriteLockDemo { public static void main(String[] args) { MyCache myCache = new MyCache(); for (int i 阅读全文
posted @ 2020-08-22 11:31 liuyanntes 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 我们已经知道创建线程的方式有1.继承thread类。2.实现Runnable接口 接下来讲创建线程的新方式Callable接口,首先对比一下Runnable接口和Callable接口的区别: 首先创建两个资源类:分别是实现了Runnable接口和实现了Callable接口: //Runnable接口 阅读全文
posted @ 2020-08-22 10:49 liuyanntes 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 首先是我们的ArrayList: 这次我们讲解的是集合的不安全,首先我们都知道ArrayList吧! List<String> list=new ArrayList<>(); 首先我们拓展几个知识点,ArrayList底层是Object类型的数组,jdk7之前初始容量是10。 jdk8之后是空引用, 阅读全文
posted @ 2020-08-21 17:05 liuyanntes 阅读(330) 评论(1) 推荐(0) 编辑
摘要: 先了解一个概念:synchronized 锁的是这个方法所在的资源类,就是这个对象,也就是同一时间段不可能有两个线程同时进到这个资源类,同一时间段,只允许有一个线程访问资源类里面的其中一个synchronized 方法! T1:标准访问,请问先打印邮件还是短信? public class Lock8 阅读全文
posted @ 2020-08-21 15:52 liuyanntes 阅读(330) 评论(0) 推荐(0) 编辑