- 博客(38)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Rocketmq重复消费问题
一.RocketMQ消息重复消费:应用:通过Rocketmq异步发送极光数据推送至app端,在推送的同时将数据存入mysql数据库中问题:在app端收到多条相同的推送消息二.异常出现的原因Rocketmq在消费消息时产生了异常,MessageListenerConcurrently接口返回了RECONSUME_LATER标志...
2019-02-25 11:32:03
28605
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 canal+zookeeper+mysql高可用配置
一、部署环境1.基础环境:软件版本作用LinuxCentos7.1,8gJdk1.8.0_151canal1.1.1canal server端,与mysql和zookeeper交互Zookeeper3.4.5作为canal server端和client的一个代理者,canal中依赖的zookeeper的版本为3.4.52.机器环境:...
2018-12-27 17:17:56
10301
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Elk集群安装+配置(Elasticsearch+Logstash+Filebeat+Kafka+zookeeper+Kibana)
一、部署环境 1.基础环境: linux系统: Centos7.1,16g内存 jdk:1.8.0_151 elk版本:5.5.02.机器环境:4台 es1:X.X.X.109 #数据/主节点(安装es、logstash、kafka、zookeeper) es2:X.X.X.108 #数据/主节点(安装es、logstash、kafka、zookeeper) e...
2018-10-17 18:07:29
11218
原创 Java锁
一.Java锁1.分类:1) 公平锁/非公平锁2) 可重入锁3) 独享锁/共享锁4) 互斥锁/读写锁5)乐观锁/悲观锁6)分段锁7)偏向锁/轻量级锁/重量级锁8)自旋锁2.常见的锁:Synchronized:非公平,悲观、独享、互斥、可重入、重量级锁ReentrantLock:默认非公平但可实现公平,悲观、独享、互斥、可重入、重量级锁ReentrantReadWri...
2020-04-23 14:53:19
248
原创 Java线程池
一、线程池什么是线程池:线程池做的工作主要是控制运行的线程的数量 ,处理过程中将任务加入队列 ,然后在线程创建后启动这些任务,如果先生超过了最大数量,超出的数量的线程排队等候 ,等其他线程执行完毕,再从队列中取出任务来执行.作用:1)线程复用2)控制最大并发数3)管理线程优点:1)降低资源消耗重复利用已创建的线程,降低线程创建和销毁造成的消耗2)提高响应速...
2019-09-01 16:10:30
276
转载 mac80端口问题无法使用
一.背景:需求:本地启动项目用于debug,必须要用本机的80端口,但mac禁止了普通用户访问1024以下的端口,包括80端口,因为mac会用这些端口来提供文件共享等等很多服务解决方法:设置端口转发,将80端口的请求转发到8080或9090端口二.hosts文件修改:hosts文件是将域名和IP地址建立映射关系的系统文件,用户可以自定义常用域名跟IP,当在浏览器上输入网址时,系统...
2019-07-30 11:36:20
4858
原创 CAS浅析
一、CAS定义:比较和交换(Compare And Swap),它是一条CPU并发原语,是用于多线程同步的原子指令作用:判断内存中某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子性的思想:乐观锁的思想(CAS本身不加锁),当多个线程使用CAS操作一个变量,同一时间只有一个能更新成功,其它的失败,但失败的线程不会被挂起,允许再次尝试(自旋)实现:...
2019-05-26 09:58:53
305
原创 SpringMVC原理
一.流程图二.流程详解 1. 用户通过URL向访问的服务器发送请求,首先会被web.xml中的DispatcherServlet捕获 2. DispatcherServlet解析URL,得到资源标示符uri,判断uri中是否是携带了springmvc.xml中定义的@RequestMapping映射的value值没有匹配到:再判断springmvc.xml中是否配置了<...
2019-05-14 21:42:39
268
原创 流程模版设计
一.背景:需求:产品迭代,需要对接大量外部ERP系统,每个外部系统的业务流程之间,有些许的差异,这些差异会让代码里有很多的if…else判断并增加自己独有的业务处理,造成代码耦合度高难以维护。因此希望将业务代码进行拆解,拆分为一个个原子服务,再将这一个个原子服务,根据渠道编码和业务编码,组装成一个个模版,每一个模版就对应一个外部系统的对接需求,模版之间互不影响。架构:后台采用了Spring ...
2019-04-25 18:09:41
715
转载 mysql分组排序问题
1.建表:CREATE TABLE `mygoods` ( `goods_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cat_id` int(11) NOT NULL DEFAULT '0', `price` tinyint(3) NOT NULL DEFAULT '0', `status` tinyint(3) ...
2019-04-18 15:34:12
906
原创 SpringCloud笔记
1.什么是SpringCloud?2.SpringCloud的优势?和Dubbo对比3.Spring cloud 和Dubbo的区别?4.Spring cloud和Spring boot的区别?5.Spring cloud如何实现负载均衡?6.Spring cloud如何实现容错?7.Spring cloud如何实现服务注册、服务发现、Eureka工作原理?8.ribbon和feig...
2019-04-08 14:53:45
190
原创 Elasticsearch笔记
1.基本术语:集群:集群中有多个节点,节点中有一个master节点,配置 cluster.name (同一个集群的标识)节点:每一个运行的elasticserch实例称为节点主节点:负责集群范围内所有的变更,如增、删节点或索引,配置node.master: true(允许的一个节点可以称为master节点)数据节点:存储数据及其倒排索引,默认每一个节点都是数据节点,配置node.dat...
2019-04-08 14:50:03
580
原创 Rocketmq笔记
1.Rocketmq网络结构- 节点特点:Name server:几乎无状态节点,集群部署,节点之间无任何通讯Broker:broker分为master和slave,一个master对应多个salve,一个salve只能有一个master,master与broker的关系通过指定相同的brokerName,不同的brokerId,BrokerId为0表示master,BrokerId&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;
2019-03-30 12:23:09
456
1
原创 单例模式--双重检查判断--编译优化后异常--浅析
一.示例代码:public class Singleton { private static volatile Singleton singleton; private Singleton() {} public static Singleton getInstance() { if (singleton == null) { sync...
2019-03-30 12:15:49
1992
1
原创 代理模式
一.关键点通过代理对象访问被代理对象的目标方法,代理对象是被代理对象的扩展,会调用被代理对象的目标方法二.静态代理步骤:1)公共的接口2)被代理类实现公共接口,并在接口的实现方法中写具体业务代码3)代理类实现公共接口,增加成员变量公共接口对象,增加构造方法,入参为公共接口对象,将入参的公共接口对象赋值给成员变量的公共接口对象,在代理的实现方法中调用公共接口对象的方法4)代理类实现代理...
2019-03-09 15:21:45
154
原创 Mysql 锁
一.锁的分类 数据操作类型分类读锁(共享锁): 针对同一份数据,多个读操作之间互不影响写锁(排它锁): 当前写操作未完成前,阻塞其它写操作和读操作 数据操作粒度分类表锁: 针对整张表,开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低行锁: 针对某一行数据,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高二.MyISAM存储引...
2019-03-09 15:18:12
198
转载 单例模式
1.作用:保证全局对象唯一,以此保证对象的状态一致,相关配置参数一致2.特点:1)构造器私有化2)只能自己给自己创建唯一实例3)必须给其它对象提供获取该对象的公共方法3.分类:1)饿汉式2)懒汉式4.区别: 加载方式1)饿汉式,立即加载,在类加载初始化时就创建好静态对象供外部使用2)懒汉式,延迟加载,在需要时创建对象 线程安全对象是static修饰,属于共享资源,1...
2019-03-07 08:28:36
158
原创 RocketMQ异常:No route info of this topic
1.RocketMQ客户端运行时异常:exception: com.alibaba.rocketmq.client.exception.MQClientException: No route info of this topic, yunlian-truck-websocket-testSee https://github.com/alibaba/RocketMQ/issues/44 for...
2019-02-20 09:44:36
9289
原创 Mysql-索引失效、关联查询优化、子查询优化、order by优化、group by优化、分页优化
建立索引实验数据:建表:#创建部门表DROP TABLE IF EXISTS `dept`;CREATE TABLE `dept` ( `id` int(20) NOT NULL AUTO_INCREMENT, `deptname` varchar(30) DEFAULT NULL COMMENT '部门名称', `address` varchar(40) DEFAULT NU...
2019-02-18 10:32:46
1458
原创 Mysql-查询日志分析
一.Mysql慢查询概念:记录Mysql相应时间超过阀值的语句,具体指超过long_query_time值的sql说明:Mysql默认不开启慢查询日志,如果不调优不建议开启,对数据库性能有影响二.参数 查看是否开启,默认:OFFSHOW VARIABLES LIKE '%slow_query_log%'; 开启慢查询日志set global slow_query_lo...
2019-02-14 16:01:07
319
原创 Mysql索引
一.索引概念Mysql索引是什么:1)定义:索引(Index)是帮助MySQL高效获取数据的数据结构2)本质:索引是数据结构(排好序的快速查找数据结构)3)位置:索引本身很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上优点:1)提高检索效率,降低I/O成本2)通过索引对数据进行排序,降低数据排序成本,降低CPU消耗缺点:1)虽然提高了查...
2019-02-14 14:16:49
566
1
原创 Mysql性能分析-Explain
一.性能分析 Explain是什么:使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈 Explain作用:1)表的读取顺序2)哪些索引可以使用3)数据读取操作的操作类型4)哪些索引被实际使用5)表之间的引用关系6)每张表有多少行被物理查询 sql查询语句分析:EX...
2019-02-14 14:06:40
257
原创 Mysql高手是怎样炼成的
1.Mysql高手是怎样炼成的 数据库内部结构和原理 数据库索引建立 SQL语句优化 Mysql服务器安装配置 数据库性能监控分析与系统优化 主从复制 分布式架构搭建、垂直切割、水平切割 数据迁移 容灾备份和恢复 shell或python等脚本语言开发 开源数据库二次开发 数据库建模优化 SQL编程(自定义函数、存储过程、触发器、定时任务) 各种参数常量设置...
2019-02-05 11:15:21
991
原创 分布式锁
1.分布式锁:概念:当多个进程不在同一个系统中,用分布式锁控制多个进程对资源的访问场景:微服务中,线程A和B很可能不在同一JVM中,线程锁就无法起到作用,就要用到分布式锁来解决2.分布式锁需要解决的问题:死锁:获得锁的客户端宕机或者异常后(无法释放锁)原子性:同一时间只有一个客户端可以获取到锁互斥性:加锁和解锁的客户端必须是同一个,不能把其他客户端加的锁给解了容错性:避免同一...
2019-01-25 10:57:29
620
原创 线程8锁
思路: 线程 操作 共享资源1)创建资源类,在资源类中定义线程操作方法,根据需要添加同步锁或同步代码块2)创建线程对象,使用线程对象调用响应的同步方法对象锁和类锁的定义:对象锁:1)对象锁也叫方法锁,是针对一个对象实例的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,而并不会对其他对象实例的锁产生任何影响,不同对象访问同一个被syn...
2019-01-23 15:54:10
715
原创 volatile关键字浅析
volatile关键字定义:轻量级、硬件级别锁,保证了多线程的可见性和有序性,但无法保证原子性作用范围: 类的成员变量、类的静态成员变量 可见性(所有线程可见)1)volatile 变量,JVM 保证了每次读变量都从主内存中读变量本身,跳过复制到工作内存这一步2)非volatile 变量,每次读变量都从工作内存中读变量的副本 有序性(禁止指令重排序优化)观察加入vola...
2019-01-23 09:33:07
201
原创 synchronized关键字浅析
六.线程8锁思路: 线程 操作 共享资源1)创建资源类,在资源类中定义线程操作方法,根据需要添加同步锁或同步代码块2)创建线程对象,使用线程对象调用响应的同步方法对象锁和类锁定义:对象锁:1)对象锁也叫方法锁,是针对一个对象实例的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,而并不会对其他对象实例的锁产生任何影响,不同对象访问同...
2019-01-23 09:28:53
256
原创 线程+线程生命周期+线程通信
一.程序、进程、线程程序(program):具有某些功能的指令程序的集合。进程(process):资源分配的最小单位,程序运行一次就有一个线程。线程(thread):程序执行的最小单位,进程的执行路径,多个线程共享一个进程资源...
2019-01-21 11:17:21
244
1
原创 Collection浅析
一.集合---|Collection: 单列集合 ---|List: 有序, 可重复,有下标索引 ---|ArrayList: 底层动态数组,单线程,线程不安全,初始容量10,1.5倍扩容,查询效率高,增/删/改效率低 ---|LinkedList: 双向链表实现,增删快,查询慢, ...
2019-01-18 09:52:08
286
原创 Java类的加载机制
一.类的生命周期JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化。加载:作用:查找并加载类的二进制数据步骤:1)以类的全限定名来获取此类的二进制字节流2)将字节流所代表的静态数据存储结构转化为方法区的运行时数据结构3)在堆中生代表此类的java.lang.class对象,作为方法区中类数据的访问入口验证:作用:确保加载的类信息复合jvm规范,没有安...
2019-01-14 10:50:05
481
原创 Elasticsearch数据可视化,Dejavu+Doucker安装
1.安装条件检查Linux内核版本,大于3.10即可uname -r[root@supply-40b-712 centos]# uname -r3.10.0-514.el7.x86_642.配置yum仓库tee /etc/yum.repos.d/docker.repo &amp;lt;&amp;lt;-'EOF'[dockerrepo]name=Docker Repositorybaseur...
2019-01-12 15:54:11
4178
1
原创 ELK+Sentinl日志监控邮件报警
一、部署环境1.基础环境:软件版本LinuxCentos7.1,16gJdk1.8.0_151Elasticsearch5.5.0Kibana5.5.0Sentinl5.5.0二、安装Sentinl软件下载链接:sentinl-v5.5.0.zip解压文件到指定目录/usr/local/etc/sentinl修改配置文件...
2019-01-11 09:46:43
4037
4
原创 Java内存模型
1.什么是内存模型Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存(可以与前面将的处理器的高速缓存类比),线程的工作内存中保存了该线程使用到的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间无法直接访问对方工作内存中的变量,线程间变量值的传递均需要在主内存来完成主内存:主要存储的是...
2019-01-07 18:10:19
201
原创 GC垃圾回收
1.定义GC :Garbage Collections ,即JVM垃圾收集器,垃圾回收其实就是对那些“死亡的”对象进行其所侵占的内存的释放,让后续对象再能分配到内存,从而完成程序运行的需要。回收的场所为堆、方法区,在堆中进行垃圾回收分为新生代(Young Generation)和老年代(Old Generation)。新生区又分为:Eden区(Eden Region)、From Surviv...
2019-01-07 16:14:43
971
原创 JVM内存结构
JVM内存结构堆、栈、方法区、直接内存、堆和栈区别一.JVM的组成分为线程独享区域(程序计数器、本地方法栈、虚拟机栈)、全局共享区域(堆、方法区、运行时常量池)1.程序计数器(Program Counter Register)占用较小的内存区域,作用:当前线程执行字节码的位置指示器,分支、循环、跳转、异常处理等功能依赖它2.虚拟机栈(VM Strack)定义:主管Java...
2019-01-07 11:20:04
231
原创 canal-mysql-binlog初始化
一、mysql初始化查看mysql是否开启binlog同步功能,默认falsemysql&amp;amp;amp;gt; show variables like 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin | ON |+-----------...
2018-12-27 10:50:08
1853
原创 elasticsearch属性_source、_all、store、index
原始数据写入es中,默认在es中存储2份内容,一份是原始文档,即_source字段里的内容,另一份是倒排索引,倒排索引中的数据结构是倒排记录表,记录词与文档的关系。_source原始文档,_all:它连接所有字段的值构成一个用空格(space)分隔的大string,该string被analyzed和index,但是不被store。当你不知道不清楚document结构的时候。字段里包含文档的所...
2018-11-18 13:27:39
907
原创 elasticsearch设置之setting、mapping相关
1.基本数据类型类型说明字符串类型string,text,keyword整数类型integer,long,short,byte浮点类型double,float,half_float,scaled_float逻辑类型boolean日期类型date范围类型range二进制类型binary2.字符串类型(1)strings...
2018-11-18 13:26:38
3391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人