- 博客(21)
- 收藏
- 关注
原创 数据库写读分离(MHA实现mysql的集群管理)(二)
mysql高可用有很多方案,如mmm,mysql cluster等,但都无法真正应用到生产环境。偶然间发现mha(master high availability),目前在mysql高可用方面是一个相对成熟的解决方案,它能够在较短时间内实现自动故障检测和故障转移,通常在10~30秒内;并且在replication环境中,mha能够很好的解决复制过程中数据行一致性问题。我们可以在不改动现有环境下部署...
2018-08-24 18:05:03
445
原创 数据库写读分离(数据库主备方式)(一)
这里我们采用mysql进行数据库主备方式先进行数据库的主备分离。一、删除服务器上以前老版本的数据库删除步骤如下:1、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql$ rpm -qa|grep -i mysql2、停止mysql服务、删除之前安装的mysql$ rpm -e –nodeps 包名如果提示依赖包错误,则使用以下命令尝试$ rpm...
2018-08-22 11:17:46
1241
转载 java内存模型(JMM)
JMM(java memory model)java内存模型主要目标是定义程序中的变量,(此处所指的变量是实例字段、静态字段等,不包含局部变量和函数参数,因为这两种是线程私有无法共享)在虚拟机中存储到内存与从内存读取出来的规则细节,Java 内存模型规定所有变量都存储在主内存中,每条线程还有自己的工作内存,工作内存保存了该线程使用到的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在...
2018-08-21 09:39:19
164
转载 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%[ylp@ylp-web-01 ~]$ toptop...
2018-08-10 18:05:34
204
原创 IOC容器的依赖注入(二)
1、populateBean方法对Bean属性的依赖注入在上一篇IOC容器的依赖注入(一)的分析中我们已经了解到Bean的依赖注入分为以下两个过程:(1).createBeanInstance:生成Bean所包含的java对象实例。(2).populateBean :对Bean属性的依赖注入进行处理。其中我们已经分析了容器初始化生成Bean所包含的Java实例对象的过程,现在我们继...
2018-08-09 11:17:30
180
原创 IOC容器的依赖注入(一)
1、依赖注入发生的时间当SpringIoC容器完成了Bean定义资源的定位、载入和解析注册以后,IoC容器中已经管理类Bean定义的相关数据,但是此时IoC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生:(1).用户第一次通过getBean方法向IoC容索要Bean时,IoC容器触发依赖注入。(2).当用户在Bean定义资源中为<Bean>元素配置了...
2018-08-08 17:54:59
973
原创 Spring IOC体系结构(三)
接着Spring IOC体系结构(一)接着进行分析Spring IOC源码1、BeanDefinitionParserDelegate解析Bean定义资源文件中的<Bean>元素Bean定义资源文件中的<Import>和<Alias>元素解析在DefaultBeanDefinitionDocumentReader中已经完成,对Bean定义资源文件中使用最...
2018-08-07 15:49:41
194
原创 Spring IOC体系结构(二)
4、AbstractBeanDefinitionReader读取Bean定义资源:BeanDefinitionReader的结构如下:在其抽象父类AbstractBeanDefinitionReader中定义了载入过程://重载方法,调用下面的loadBeanDefinitions(String, Set<Resource>);方法 public int l...
2018-08-07 10:10:26
165
原创 Spring IOC体系结构(一)
一、 BeanFactory Spring Bean的创建是典型的工厂模式,这一系列的Bean工厂,也即IOC容器为开发者管理对象间的依赖关系提供了很多便利和基础服务,在Spring中有许多的IOC容器的实现供用户选择和使用,其相互关系如下:其中BeanFactory作为最顶层的一个接口类,它定义了IOC容器的基本功能规范,BeanFactory 有三个子类:Lista...
2018-08-06 15:56:25
919
转载 Java内存模型之happens-before
转载:https://www.cnblogs.com/chenssy/p/6393321.html我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见,但是我们可以指定某些规则,这规则就是happens-before,从JDK 5 开始,JMM就使用happens-before的概念来阐述多线程之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操...
2018-08-01 11:07:12
115
原创 SpringMVC工作原理之:HandlerAdapter
根据 Handler 来找到支持它的 HandlerAdapter,通过 HandlerAdapter 执行这个 Handler 得到 ModelAndView 对象。HandlerAdapter 接口中的方法如下:supports(Object handler); // 当前 HandlerAdapter 是否支持这个 Handlerhandle(HttpServletRequest...
2018-07-31 11:08:30
2416
原创 SpringMVC工作原理之:HandlerMapping
一、HandlerMapping作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecutionChain 对象中。在 HandlerMapping 接口的内部只有一个方法,如下:HandlerExecutionChain getHandler(HttpServletRequest...
2018-07-31 10:51:00
3273
原创 spring mvc源码之-Servlet初始化(二)
在使用springmvc框架,会在web.xml文件配置一个DispatcherServlet,这正是web容器开始初始化,同时会在建立自己的上下文来持有SpringMVC的bean对象(已经在 spring mvc源码之-Servlet初始化(一))。从名字来看,它是一个Servlet。它的定义如下: public class DispatcherServlet extends F...
2018-07-30 17:38:21
280
原创 spring mvc源码之-Servlet初始化(一)
一个spring mvc的项目一般需要配置web.xml配置如下:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="
2018-07-30 11:20:03
1344
转载 数据库锁基础总结
在mysql中的锁看起来是很复杂的,因为有一大堆的东西和名词:排它锁,共享锁,表锁,页锁,间隙锁,意向排它锁,意向共享锁,行锁,读锁,写锁,乐观锁,悲观锁,死锁。这些名词有的博客又直接写锁的英文的简写--->X锁,S锁,IS锁,IX锁,MMVC...锁的相关知识又跟存储引擎,索引,事务的隔离级别都是关联的....这就给初学数据库锁的人带来不少的麻烦~~~于是我下面就简单整理一下数...
2018-07-27 10:30:50
292
转载 数据库索引基础总结
声明:如果没有说明具体的数据库和存储引擎,默认指的是mysql中的InnerDB存储引擎在之前,我对索引有以下的认知:索引可以加快数据库的检索速度 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持H...
2018-07-26 11:50:50
516
原创 spring boot RabbitMQ总结一
1. 定义消息队列:在消息的传输过程中保存消息的的容器。这是一个较为经典的消费-生产者模型,说起来比较抽象,打个比方:A线程需要给B线程发送消息(A、B线程不一定是在同一台机器上的),A线程先把消息发送到消息队列服务器上,然后B线程去读取或是订阅消息服务器上消息队列中的消息,线程A和B之间并没有进行直接通信。MQ服务器在中间起到中继的作用。2. 角色概念Broker:即消息队列...
2018-07-25 14:02:50
1565
转载 类加载机制
public class SSClass{ static{ System.out.println("SSClass"); }} public class SuperClass extends SSClass{ static{ System.out.println("SuperClass init!"); } pub...
2018-07-24 09:29:44
625
原创 Java类中代码的执行顺序 静态代码块、构造代码块、构造方法
一:静态代码块 注意是代码块,不是静态函数。函数要调用才执行,代码块加载就执行,一般是静态变量的声明与初始化、被static修饰的代码块(赋值、输出操作等)。类中静态语句块仅在类加载时被执行一次 二:构造代码块 构造代码块是指不在类的任何一个方法中的代码。一般为全局变量的声明与初始化、顺序执行的输出语句等等。如果没有static修饰的话,这...
2018-07-22 11:56:51
296
原创 spring-data-jpa自定义repository来实现原生sql
Spring Data JPA中的Repository是接口,是JPA根据方法名帮我们自动生成的。但很多时候,我们需要为Repository提供一些自定义的实现。今天我们看看如何为Repository添加自定义的方法。自定义Repository接口首先我们来添加一个自定义的接口:添加BaseRepository接口 BaseRepository继承了JpaRepository,这样可...
2018-07-20 17:50:27
7655
原创 OSGI实现服务注册于发现
发布和使用服务由于 OSGi 框架能够方便的隐藏实现类,所以对外提供接口是很自然的事情,OSGi 框架提供了服务的注册和查询功能。好的,那么我们实际操作一下,就在 Hello world 工程的基础上进行。我们需要进行下列的步骤:定义一个服务接口,并且 export 出去供其它 bundle 使用; 定义一个缺省的服务实现,并且隐藏它的实现; Bundle 启动后,需要将服务注册到...
2018-07-17 17:43:18
2452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人