自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 自我发展心理学

自我发展心理学导论、关于改变,你一直有选择01、为什么人总觉得自己没有选择1、误认为选项足够理性,才算有选择。2、逃避对自己的责任(担心自己选错,选错了怕自己成了罪人)第一章、如何启动行为的改变02、改变本质:如何创造新经验每个人都有两个自我:感性的自我(大象)和理性的自我(骑象人)对于改变而言,理智提供方向,而情感提供动力大象的特点1、力量大。一旦激发,理智很难控制2、受情感激发。如焦虑、恐惧等消极情绪,或爱、怜悯、同情、忠诚等积极情绪3、受经验支配。只认切身体会过的“经验的好处”

2020-06-14 21:59:57 6078 1

原创 经济学原理

人性和稀缺第001讲、战俘营里的经济组织 - 有人的地方就有需求,需求不一样就会交易(物质的总量哪怕不发生变化,只要人与人之间能够进行交易,幸福就能够无中生有地产生) - 有交易就会有信心不对称,就会有中间商。 - 有了市场就会有价格,有了价格就会有价格波动。 - 有了交易就会产生对货币的需要。 - 有了货币就有所谓的劣币驱逐良币。 - 有了货币就有通货膨胀和通货紧缩。什么时候...

2018-06-02 12:18:50 14876

原创 Reactor手册

reactor详细手册

2022-12-12 22:23:24 1507 2

原创 mysql安装

mysql安装脚本#!/bin/bashwget http://downloads.mysql.com/archives/get/file/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gzcp mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz /usr/local/cd /usr/localtar -xvf mysql...

2019-05-27 10:16:20 458

原创 Zookeeper集群搭建

前置条件准备Zookeeper Linux压缩包,版本3.4.8jdk 1.7 或以上mkdir -p /data/zk_data/datamkdir -p /data/zk_data/logsecho “1” > /data/zk_data/data/myid部署步骤解压安装包修改zookeeper-3.4.8/conf 目录下zoo.cfg配置文件,设置端口号,目录...

2019-05-15 11:13:51 209

原创 github常用分支模型

push的分支管理是参考git-flow流程稍作修改形成的,包含4类分支,分别是master、develop、新功能分支(feature)、release。master分支中包含的是可以部署到生产环境中的代码。develop分支中包含的是下个版本需要发布的内容。从某种意义上来说develop是一个进行代码集成的分支。当develop分支集成了足够的新功能和bug修复代码之后,通过一个发...

2019-02-13 14:21:15 1757

原创 日志配置文件 Demo

<?xml version="1.0" encoding="UTF-8"?><configuration scan="true&q

2019-02-13 12:02:00 253

原创 常用ES命令 Demo

push-trace-20190108/_search{ "query": { "bool": { "must": [ { "term": { "event": &a

2019-02-13 11:45:18 1455

原创 kafka集群安装

0、运维添加机器到堡垒机、push用户、挂盘(/data*)、创建目录(push用户权限 /web/push/)1、上传kafka安装包kafka_2.11-0.11.0.0.tgzcd /web/push/ && sudo -u push rz -bey2、解压(/web/push/kafka并且cd进入目录)sudo -u push tar -zxvf kafka...

2019-02-13 11:43:15 225

原创 mongo常用命令及编码例子

groupadd g_mongo useradd -d /var/mongodb -g g_mongo mongo passwd mongo xxxxxx/var/mongodb/bin/mongo push_open –host 10.12.29.81 –port 40000 -u push -p –authenticationDatabase push_o...

2019-02-13 11:39:02 659

原创 arthas使用简介

https://alibaba.github.io/arthas/install-detail.htmlcurl -L https://alibaba.github.io/arthas/install.sh | sh添加source /etc/profilesudo -u push ./as.sh 22617trace com.oppo.push.inbox.service.InboxSe...

2019-01-17 11:09:39 1205

原创 Shell常用命令

基本语法while [ 1 ]; do sleep 1; ll; done # 无限循环while [ $i -lt 10 ]; do echo $i;let "i=$i+1"; done # 有限循环cat raw.txt | while read line; do echo $line; done # readlineuntil [ 1 = 0 ]; do sleep ...

2018-10-30 17:43:35 1556

原创 Quic浅析

简介QUIC(Quick UDP Internet Connections)基于UDP的传输层协议,提供像TCP一样的可靠性。在提高web应用性能上,可以选择在应用层使用HTTP2.0实现多路传输,在物理层使用CDN解决网络拥塞和最后一公里问题。在传输层,目前主要使用TCP,但由于TCP本身的问题(一个充满补丁的丑陋的协议),成为了限制web应用性能的一个瓶颈。优势避免前序包阻...

2018-06-14 22:55:15 27288

原创 ReentrantLock、CountDownLatch、CyclicBarrier简介

ReentrantLock、CountDownLatch、CyclicBarrier1、ReentrantLock可重入互斥锁公平锁与非公平锁的释放锁步骤是一致的。获取锁的过程不一致,非公平锁是让当前线程优先独占,而公平锁则是让等待时间最长的线程优先,非公平的可能让其他线程没机会执行,而公平的则可以让等待时间最长的先执行,但是性能上会差点。2、CountDownLatch是一个线程(或...

2018-06-14 22:54:44 621

原创 Kafka简介

架构Producer发送消息到某个指定的Topic,Broker负责存储消息,Consumer通过订阅的方式消费指定Topic的消息。 实现细节Partition 物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。在发送一条消息时,可以指定这条消息的key,Prod...

2018-06-14 22:53:13 428 1

原创 浅谈GC日志

GC日志young gcyoung gc是需要stop the world的 例子:当eden满时,young gc使用的是ParNew收集器ParNew: 2230361K->129028K(2403008K), 0.2363650 secs2230361K->129028K,指回收前后eden+s1(或s2)大小2403008K,指可用的young...

2018-06-14 22:52:59 1407

原创 Binlog简介

简介Binlog(Binary Log)日志用于记录所有更新了数据或者以及潜在更新了数据(例如,没有匹配任何行的一个DELETE)。它记录了数据库的更改,所以我们可以利用binlog来对误操作的数据进行恢复,也可以用来进行主从数据库的同步,当然也可以用来监听和分发数据变更。Binlog的三种模式Statement,ROW,MiXEDStatementstatement(基于语句的复制):每一条会修...

2018-06-13 23:24:44 2111

原创 BlockingQueue简介

BlockingQueueArrayBlockingQueue 是一个有界的阻塞队列,其内部实现是将对象放到一个数组里。因为它是基于数组实现的,所以一旦初始化,大小就无法修改。DelayQueue 对元素进行持有直到一个特定的延迟到期。注入其中的元素必须实现 java.util.concurrent.Delayed 接口。LinkedBlockingQueue 内部以一个链式结构(链接节...

2018-06-13 23:23:07 271

原创 volatile原理

简介volatile在多处理器开发中保证了“共享变量”的“可见性”。可见性指当一个线程修改一个共享变量时,另外一个线程能马上读到这个修改的值。共享变量:共享变量都被存放在堆内存中,volatile只作用于共享变量。实现原理对volatile变量修饰的共享变量进行写操作的时候会多一行汇编代码 - 将当前处理器缓存行的数据会写回到系统内存 - 写回内存的操作会引起在其他CPU里...

2018-06-13 23:22:29 309

原创 Java泛型简介

问题public class ArrayList { public Object get(int i) { ... } public void add(Object o) { ... } ... private Object[] elementData;}​当没有泛型时,我们会使用obejct替代。但这样会存在以下问题第一有关get方法:每次调用get方法都会返回...

2018-06-13 23:20:07 2065

原创 maven简介

maven是一个项目管理和构建自动化工具,基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。安装http://jingyan.baidu.com/article/3d69c55157068af0ce02d76f.htmlintellij 自带集成了maven工具,可配置IDE使用自己下载的maven版本(注意,maven2和3的区别还是很大的,某些...

2018-06-13 23:19:56 876

原创 JVM参数调优

基本常识堆内存 = Eden + old + Metaspace(perm)总内存 = 堆 + 栈 + 堆外内存 + jvm等内部使用的内存system.gc最常见的场景是RMI/NIO下的堆外内存分配等java -verbose:class -version:查看jvm启动时被加载的类OutOfMemoryError分配内存当Eden内存不够用的时候,某些情况下会尝试到Old里进行...

2018-06-13 23:19:29 863

原创 RocketMQ简介

简介rocketMQ是一款分布式、消息队列中间件。基于发布订阅模式,有Push和Pull两种消费方式,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。核心作用:解耦、异步化、消息堆积缓冲高性能离不开异步,异步离不开队列!基本概念Producer: 消息生产者,负责产生消息并发送消息到meta服务器Consumer: 消...

2018-06-13 23:19:07 510

原创 Timeline引擎

TimeLine引擎一种基于范围(如关注账号、关系圈,附近的人等)推送,范围里面的人发布各种内容,内容按照不同的组织形式展现的流。如将用户关注的账号的动态流或内容流整合后,按照时间等条件排序,显示成流状的形式。如:微淘,微博,朋友圈、订阅号等类似场景。基本概念feed:一条内容,如一条微博、朋友圈。这里把Feed看做 Email,每个用户都有一个收件箱,每个公众号(或商家)都有一个发件箱。Inbo...

2018-06-13 23:19:03 402

原创 浅谈Zookeeper

CAP一致性(Consistency):同一个数据在集群中的所有节点,任意同一时刻是否具有同样的值。可用性(Availability):集群中部分节点故障后,集群整体是否还能处理客户端请求。分区容忍性(Partition tolerance):是否允许数据的分区,意思是指是否允许集群中的节点之间无法通信。CAP定理指出,一个系统不可能同时满足一致性(Consistency)、可用性(Availab...

2018-06-13 23:18:56 321

原创 Spring详解

 Bean的生命周期 0,调用BeanFactoryPostProcessor的postProcessBeanFactory方法1,调用Bean的构造函数(或者工厂方法)实例化Bean.2,对Bean的成员变量赋值.3,如果Bean实现了BeanNameAware,调用Bean的setBeanName方法.4,如果Bean实现了BeanFactoryAware,调用Bean的s...

2018-06-13 23:18:37 687

原创 谈谈反射

简介JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;简单说就是,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。原理Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象(Class反射对象),通过该元信息对象可以获知Class的结构信息。Class反射对象:描述类语义结构,可以...

2018-06-13 23:18:33 598

原创 Netty浅析

简介Netty是一个异步网络IO框架,简单说就是帮我们专注于收发包的细节且提供高性能IO复用,在恰当的时候(如Tcp收满一个逻辑包后),回调我们的业务逻辑代码。Netty基于NIO,整个Netty API体系都是异步的(可通过callback被动通知模式、Future主动通知模式进行后续的业务逻辑操作)。组件介绍Channels代表一次具体的管道连接(文件设备或Socket),连接着两端的的读写。...

2018-06-13 23:18:22 372

原创 揭秘java日志系统

概念 日志框架:是一种日志接口,不负责具体的日志输出形式(有点类似于JDBC),可以灵活的切换日志输出形式。常见的日志框架有slf4j、jcl,只提供Logger、LoggerFactory等接口 日志系统:是应用实际使用的日志工具,主要有log4j,jul,logback等。一般在程序中应该避免直接使用,可以保证程序具有一定的灵活性。  Logger:日志输出实例,包...

2018-06-13 23:18:18 2035

原创 注解原理

作用注解很多时候的确能帮助我们减少、美化代码,或为现有代码增加额外功能等1、为编译器提供信息:注解可以被编译器(如Eclipse、IntelliJ)用来检测错误和已知警告,如Java内置的@Deprecated、@Override和@SuppressWarnnings就被经常用到。2、编译时和部署时附加操作:软件工具可以在编译时或部署时根据注解信息生成可执行代码,XML文件等等。如生成说明文档,J...

2018-06-13 23:17:55 327

原创 浅析Spring Boot

纯spring的问题需要做大量的配置:声明大量的bean,并把他们组装到一起需要解决很多依赖和冲突的问题。特别是当应用依赖到很多组件的时候(Spring MVC, Mysql, Redis等),要解决这些依赖,需要花很多的功夫手工去配置,解决jar包版本冲突。如果是web应用,则额外需要一个servlet容器将程序跑起来。Spring Boot简介Spring Boot在S...

2018-06-13 23:16:12 994

原创 类加载的过程

class A { public void m() { A.class.getClassLoader().loadClass(“B”); } public void doSomething() { B b = new B(); b.doSomethingElse(); }}B b = new B();//等...

2018-06-13 23:14:10 566

原创 MyBatis原理浅析

简介MyBatis是一个轻量级的ORM框架,它简化了对关系数据库的使用,开发人员可以在XML或注解中编写SQL来完成对数据库的操作。 如果完全使用XML方式,SQL语句可以集中维护,做到与Java代码完全隔离,便于对SQL调优。原理及流程加载配置:配置来源于两个地方,一是配置文件,一是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了...

2018-06-13 23:13:23 8305

原创 synchronized原理

各种使用姿势对于同步方法,锁是当前实例对象。对于静态同步方法,锁是当前对象的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。简单原理Object内部维护一个监视器Monitor,synchronized正是通过监视器锁实现同步的,在代码的前后加上monitorente...

2018-06-13 23:12:57 295

原创 Java问题排查利器

jps输出JVM中运行的进程状态信息 -q 不输出类名、Jar名和传入main方法的参数 -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数jps -m -l1217 com.xxxx.sunfire.agent.Main3093 org.apache.catalina.startup.Bootstrap start8415...

2018-06-13 23:12:23 901

原创 大话CDN

简介CDN(Content Delivery Network)内容分发网络,提供静态图片、点播视频、视频直播、全站加速、移动加速、HTTPS加速、安全防护等多种业务分发功能的分布式平台。目的通过在Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,用户可以就近取得所需的内容,提高用户访问网站的响应速度。工作流程 当用户访问已经加入CDN...

2018-06-13 23:10:52 362

原创 ThreadPoolExecutor源码分析

public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ...

2018-06-13 23:10:43 193

原创 轻量级任务调度中间件

一、遇到的问题近段时间这边遇到了一些类似的需求,而且未来可能还会有……源源不断的需求-_-案例1: 当一个内容产生时,需要在1小时后开始,每隔1小时去检测该内容的质量评分(根据阅读量、点赞率等指标算出),最多检测两天或者1000次,如果满足阈值则进行大规模推广,从而提高优质内容的曝光率。案例2: 当一个内容开始大规模推广时,可能因算法出错(阅读量高的内容不一定是好内容,如涉黄内容就是阅...

2018-06-13 23:09:50 4428

原创 wait/notify浅析

wait/notify

2018-03-24 17:23:18 255

原创 ConcurrentHashMap简介

简介HashMap、Hashtable、ConcurrentHashMap都是一个数组链表结构。但是HashMap是线程不安全的。Hashtable和Collections.synchronizedMap(hashMap)是线程安全,但是是锁整个结构的,性能很差。ConcurrentHashMap是线程安全,锁的力度小,性能更好。ConcurrentHashMap如何保证线程安全和高性能...

2018-03-17 21:35:51 280

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除