- 博客(17)
- 资源 (16)
- 收藏
- 关注

原创 AOP实现MySql数据库的读写分离—支持一主多从
文章目录前言主从复制原理实现主库配置从库配置读写分离原理实现数据库变量配置数据库连接池配置AOP相关配置动态决定多数据源的关键点AOP切面前言我们知道,数据库的写和读大致上是遵循二八定律的。尤其是针对互联网业务,读的操作要比写操作的概率高更多。为了消除读写锁冲突,缓解数据库压力,提高读写性能,我们提出了读写分离的数据库架构:将数据库分为了主(master)从(slave)库,一个主库用于写数据...
2019-01-30 22:06:38
863
3

原创 彻底搞懂设计模式之—单例模式
文章目录单例简介单例的N种写法及优缺点饿汉式(均可用)静态代码块实现静态常量实现懒汉式经典饿汉式(不可用)经典加锁懒汉式(可用,不推荐)双重检查懒汉式(可用,推荐)静态内部类懒汉式(可用,推荐)容器单例(根据实际情况)对单例的破坏序列化与反序列化反射枚举单例(可用,推荐)总结单例简介单例模式(Singleton Pattern),是一种创建型设计模式。它的定义为:保证一个类仅有一个实例,并提供...
2019-01-29 17:06:23
598
原创 一道关于synchronized和wait的面试题
今天看到一个面试题,刚开始竟然没搞懂。经过一番摸索之后才发现问题所在,特此记录下来。1.面试题下面的代码在绝大部分时间内都运行得很正常,请问在什么情况下会出现问题?问题的根源在哪里? import java.util.LinkedList; public class Stack { LinkedList list = new LinkedList(); public synchronized void push(Object x) { synchronized(li
2021-05-11 18:23:01
414
原创 Bean的拷贝工具对比
文章目录1.前言2.Apache BeanUtils3.Spring BeanUtils4.BeanCopier5.MapStruct6.对比6.1 代码样例6.2 结论1.前言在进行分层和微服务模式下的开发时,我们经常回遇到DTO、DO、VO等之间的转换,如果手动对各个属性进行set的话容易漏掉,同时碰到字段特别多的情况会让人写到吐,当我们对字段进行增减的时候还需要手动处理。为了避免出现这些臃肿又容易出错的代码,我们一般都会使用Bean的拷贝工具。下面来介绍常见的几种。2.Apache BeanUt
2020-11-29 12:10:41
964
原创 IDEA中启动RocketMQ的Broker源码
文章目录1.添加启动类和配置1.1 添加新的启动模块1.2 修改broker模块配置2.添加broker配置文件3.启动broker在 IDEA中启动RocketMQ的NameServer源码 这篇文章中,我们创建了RocketMQ环境变量,设置好了运行NameServer所需要的目录和文件,最后成功启动。接下来就是对Broker的源码启动流程了。1.添加启动类和配置1.1 添加新的启动模块点击NamesrvStartup,选择Edit Configurations:弹出框中选择添→Applic
2020-06-01 18:51:36
1600
原创 RocketMQ可视化界面搭建
文章目录普通安装Docker安装普通安装1.下载rocketmq-externals打开Git Bash,在合适的目录下执行以下命令:git clone git@github.com:apache/rocketmq-externals.git2.打包rocketmq-consolecd rocketmq-externals/rocketmq-consolemvn clean package -DskipTests经过较长时间的下载jar包过程,最终打包完毕。3.启动:进入到rocket
2020-06-01 15:46:11
3799
原创 IDEA中启动RocketMQ的NameServer源码
文章目录1.下载源码2.配置启动参数2.1添加NameServer启动类2.2 配置NameServer启动参数3.创建运行所需目录和文件3.1创建文件夹4.启动NameServer1.下载源码git命令下载源码:git clone git@github.com:apache/rocketmq.git配置Maven相关环境,使用IDEA打开该源码,并等待加载完成,这一步骤就不详细描述了。2.配置启动参数2.1添加NameServer启动类在打开RocketMQ项目的IDEA中,找到如下图:
2020-06-01 15:09:36
848
原创 Redis安装及生产环境启动方案
文章目录安装Redis修改配置,Deamon启动设置随系统启动生产环境当中,reis是以守护进程即系统的 daemon 进程去运行的,并且redis会随着系统启动而一起启动,下面就一起来配置一下。本记录基于Redis3.2.8,CentOS6.5。安装Redis安装依赖tclwget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.t...
2020-03-08 14:24:09
256
原创 SpringBoot多数据源+Mybatis配置实现
文章目录目录结构sql脚本pom引用jar包application.yml配置数据源数据源配置Mapper接口Mapper配置文件PO测试目录结构由于在springboot项目当中需要同时操作不止一个数据库,需要用到多个数据源。在本例当中以first和second来区分两个数据源。同时为了书写方便,在Controller当中直接调用的Mapper接口。最终结果整合和测试,通过了获取不同数据源中...
2020-03-08 10:48:29
12110
13
原创 ArrayList遍历删除方式总结
文章目录1. fori 删除(顺序会漏删,倒序可正常)顺序删除倒序删除2. foreach 删除(删除一个元素停止遍历可正常,多个元素删除有CME问题)3. iterator 删除(可正常删除)我们知道,在Java语言当中对集合的遍历方式大致分为3种:fori,foreach,iterator。假如给定一个ArrayList,对其中的某些指定元素进行循环遍历查找并且删除的话,它们之间又有什么不同...
2020-02-18 12:34:38
3314
1
原创 linux常用命令
目录 日志操作进程操作vim编辑文件文件、文件夹的操作搜索命令其他,待补充和归类作为一个非运维人员,基本的linux操作还是需要会的,下面的命令都是自己在工作中使用过的,以后用到其他的命令之后,会及时补充。日志操作more/less的使用: more 日志文件: 打开日志的时候,可以按下空格键,一屏一屏的查看日志。Ctrl+C结束。 less 日志文件: ...
2019-02-17 11:48:15
177
原创 Tomcat集群Session共享的几个方案
Tomcat集群Session共享的几个解决方案问题由来当我们的业务使用单个Tomcat不足以支持访问请求的时候,需要引入Tomcat集群。而每个Tomcat的Session是不互通的,如果用户的请求落入到不同的Tomcat中,用户需要频繁的登录,给用户造成困扰。所以,在一个应用服务器产生Session之后,应该让其他应用服务器也能够获取到,也就是Session共享。解决方法以下几种方案有...
2019-02-16 10:12:45
4474
原创 Tomcat集群的Debug方法
文章目录前言实现过程配置hosts配置和启动Nginx配置和启动Tomcat踩的坑总结前言在使用Tomcat集群的时候,有时我们想在测试环境中定位一个问题不得不通过分析代码,在多个地方添加和分析日志来一遍一遍的重复确定。这个时候,如果能对某一个节点进行debug调试的话,定位问题就相当easy了。当然,如果问题比较简单,一眼能看出来,也不需要debug。至于Nginx的安装,搜一下教程即可。...
2019-02-15 11:40:38
390
转载 Redis常用集群分片实现方案以及ShardedJedis分片源码简析
这两天项目上需要添加一个限流,基于redis+lua的实现方案,项目中使用ShardedJedis进行redis集群分片,但是ShardedJedis并不支持eval和evalsha函数,所以就对jedis包中SharedJedis部分做了一点修改,使其可以支持这两个函数。顺便看了一下ShardedJedis中分片部分的实现源码,以前也用过基于代理的方式访问redis集群的方案,这里结合着自己的理...
2019-02-10 21:54:03
839
原创 分布式redis连接池工具类的封装和踩的坑
文章目录环境与目录一、引入Jar包并添加配置文件二、添加读取配置文件的工具类三、连接池封装四、Redis操作工具类五、踩过的坑六、结语环境与目录IDE: IntelliJ IDEA 2018.2Redis:2.0.8 and 4.0.12 (给自己挖了个坑)Server:VmWare中的两个CentOS7系统(也可以一个系统安装两个Redis节点)前提:保证每个redis节点能用,并将防...
2019-01-21 11:17:31
1084
转载 前后端分离的由来和优缺点
目录一、前戏二、术业有专攻(开发人员分离)三、原始人时代(各种耦合)四、JSP的痛点五、开发模式六、请求方式七、前后分离的优势八、前后端分离注意事项九、扩展阅读十、总结一、前戏前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性...
2019-01-20 09:20:47
819
转载 Redis分布式算法原理—Hash一致性理解
Hash一致性理解前言Redis集群使用功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言一致性Hash算法在分...
2019-01-19 17:42:20
11916
2
AOP实现一主多从数据库读写分离
2019-01-30
ListView使用SimpleAdapter和自定义Adapter填充数据
2015-05-08
Android本地登录实例
2015-05-01
VS2010手动卸载方法
2013-10-26
三层登录实例(VB.NET版)
2013-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人