- 博客(106)
- 收藏
- 关注
原创 自我发展心理学
自我发展心理学导论、关于改变,你一直有选择01、为什么人总觉得自己没有选择1、误认为选项足够理性,才算有选择。2、逃避对自己的责任(担心自己选错,选错了怕自己成了罪人)第一章、如何启动行为的改变02、改变本质:如何创造新经验每个人都有两个自我:感性的自我(大象)和理性的自我(骑象人)对于改变而言,理智提供方向,而情感提供动力大象的特点1、力量大。一旦激发,理智很难控制2、受情感激发。如焦虑、恐惧等消极情绪,或爱、怜悯、同情、忠诚等积极情绪3、受经验支配。只认切身体会过的“经验的好处”
2020-06-14 21:59:57 6455 1
原创 经济学原理
人性和稀缺第001讲、战俘营里的经济组织 - 有人的地方就有需求,需求不一样就会交易(物质的总量哪怕不发生变化,只要人与人之间能够进行交易,幸福就能够无中生有地产生) - 有交易就会有信心不对称,就会有中间商。 - 有了市场就会有价格,有了价格就会有价格波动。 - 有了交易就会产生对货币的需要。 - 有了货币就有所谓的劣币驱逐良币。 - 有了货币就有通货膨胀和通货紧缩。什么时候...
2018-06-02 12:18:50 15220
原创 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 476
原创 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 218
原创 github常用分支模型
push的分支管理是参考git-flow流程稍作修改形成的,包含4类分支,分别是master、develop、新功能分支(feature)、release。master分支中包含的是可以部署到生产环境中的代码。develop分支中包含的是下个版本需要发布的内容。从某种意义上来说develop是一个进行代码集成的分支。当develop分支集成了足够的新功能和bug修复代码之后,通过一个发...
2019-02-13 14:21:15 1800
原创 日志配置文件 Demo
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true&q
2019-02-13 12:02:00 270
原创 常用ES命令 Demo
push-trace-20190108/_search{ "query": { "bool": { "must": [ { "term": { "event": &a
2019-02-13 11:45:18 1486
原创 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 240
原创 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 723
原创 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 1220
原创 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 1598
原创 Quic浅析
简介QUIC(Quick UDP Internet Connections)基于UDP的传输层协议,提供像TCP一样的可靠性。在提高web应用性能上,可以选择在应用层使用HTTP2.0实现多路传输,在物理层使用CDN解决网络拥塞和最后一公里问题。在传输层,目前主要使用TCP,但由于TCP本身的问题(一个充满补丁的丑陋的协议),成为了限制web应用性能的一个瓶颈。优势避免前序包阻...
2018-06-14 22:55:15 27416
原创 ReentrantLock、CountDownLatch、CyclicBarrier简介
ReentrantLock、CountDownLatch、CyclicBarrier1、ReentrantLock可重入互斥锁公平锁与非公平锁的释放锁步骤是一致的。获取锁的过程不一致,非公平锁是让当前线程优先独占,而公平锁则是让等待时间最长的线程优先,非公平的可能让其他线程没机会执行,而公平的则可以让等待时间最长的先执行,但是性能上会差点。2、CountDownLatch是一个线程(或...
2018-06-14 22:54:44 647
原创 Kafka简介
架构Producer发送消息到某个指定的Topic,Broker负责存储消息,Consumer通过订阅的方式消费指定Topic的消息。 实现细节Partition 物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。在发送一条消息时,可以指定这条消息的key,Prod...
2018-06-14 22:53:13 457 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 1442
原创 Binlog简介
简介Binlog(Binary Log)日志用于记录所有更新了数据或者以及潜在更新了数据(例如,没有匹配任何行的一个DELETE)。它记录了数据库的更改,所以我们可以利用binlog来对误操作的数据进行恢复,也可以用来进行主从数据库的同步,当然也可以用来监听和分发数据变更。Binlog的三种模式Statement,ROW,MiXEDStatementstatement(基于语句的复制):每一条会修...
2018-06-13 23:24:44 2152
原创 BlockingQueue简介
BlockingQueueArrayBlockingQueue 是一个有界的阻塞队列,其内部实现是将对象放到一个数组里。因为它是基于数组实现的,所以一旦初始化,大小就无法修改。DelayQueue 对元素进行持有直到一个特定的延迟到期。注入其中的元素必须实现 java.util.concurrent.Delayed 接口。LinkedBlockingQueue 内部以一个链式结构(链接节...
2018-06-13 23:23:07 282
原创 volatile原理
简介volatile在多处理器开发中保证了“共享变量”的“可见性”。可见性指当一个线程修改一个共享变量时,另外一个线程能马上读到这个修改的值。共享变量:共享变量都被存放在堆内存中,volatile只作用于共享变量。实现原理对volatile变量修饰的共享变量进行写操作的时候会多一行汇编代码 - 将当前处理器缓存行的数据会写回到系统内存 - 写回内存的操作会引起在其他CPU里...
2018-06-13 23:22:29 322
原创 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 2098
原创 maven简介
maven是一个项目管理和构建自动化工具,基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。安装http://jingyan.baidu.com/article/3d69c55157068af0ce02d76f.htmlintellij 自带集成了maven工具,可配置IDE使用自己下载的maven版本(注意,maven2和3的区别还是很大的,某些...
2018-06-13 23:19:56 885
原创 JVM参数调优
基本常识堆内存 = Eden + old + Metaspace(perm)总内存 = 堆 + 栈 + 堆外内存 + jvm等内部使用的内存system.gc最常见的场景是RMI/NIO下的堆外内存分配等java -verbose:class -version:查看jvm启动时被加载的类OutOfMemoryError分配内存当Eden内存不够用的时候,某些情况下会尝试到Old里进行...
2018-06-13 23:19:29 934
原创 RocketMQ简介
简介rocketMQ是一款分布式、消息队列中间件。基于发布订阅模式,有Push和Pull两种消费方式,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。核心作用:解耦、异步化、消息堆积缓冲高性能离不开异步,异步离不开队列!基本概念Producer: 消息生产者,负责产生消息并发送消息到meta服务器Consumer: 消...
2018-06-13 23:19:07 532
原创 Timeline引擎
TimeLine引擎一种基于范围(如关注账号、关系圈,附近的人等)推送,范围里面的人发布各种内容,内容按照不同的组织形式展现的流。如将用户关注的账号的动态流或内容流整合后,按照时间等条件排序,显示成流状的形式。如:微淘,微博,朋友圈、订阅号等类似场景。基本概念feed:一条内容,如一条微博、朋友圈。这里把Feed看做 Email,每个用户都有一个收件箱,每个公众号(或商家)都有一个发件箱。Inbo...
2018-06-13 23:19:03 428
原创 浅谈Zookeeper
CAP一致性(Consistency):同一个数据在集群中的所有节点,任意同一时刻是否具有同样的值。可用性(Availability):集群中部分节点故障后,集群整体是否还能处理客户端请求。分区容忍性(Partition tolerance):是否允许数据的分区,意思是指是否允许集群中的节点之间无法通信。CAP定理指出,一个系统不可能同时满足一致性(Consistency)、可用性(Availab...
2018-06-13 23:18:56 334
原创 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 742
原创 谈谈反射
简介JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;简单说就是,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。原理Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象(Class反射对象),通过该元信息对象可以获知Class的结构信息。Class反射对象:描述类语义结构,可以...
2018-06-13 23:18:33 618
原创 Netty浅析
简介Netty是一个异步网络IO框架,简单说就是帮我们专注于收发包的细节且提供高性能IO复用,在恰当的时候(如Tcp收满一个逻辑包后),回调我们的业务逻辑代码。Netty基于NIO,整个Netty API体系都是异步的(可通过callback被动通知模式、Future主动通知模式进行后续的业务逻辑操作)。组件介绍Channels代表一次具体的管道连接(文件设备或Socket),连接着两端的的读写。...
2018-06-13 23:18:22 385
原创 揭秘java日志系统
概念 日志框架:是一种日志接口,不负责具体的日志输出形式(有点类似于JDBC),可以灵活的切换日志输出形式。常见的日志框架有slf4j、jcl,只提供Logger、LoggerFactory等接口 日志系统:是应用实际使用的日志工具,主要有log4j,jul,logback等。一般在程序中应该避免直接使用,可以保证程序具有一定的灵活性。 Logger:日志输出实例,包...
2018-06-13 23:18:18 2051
原创 注解原理
作用注解很多时候的确能帮助我们减少、美化代码,或为现有代码增加额外功能等1、为编译器提供信息:注解可以被编译器(如Eclipse、IntelliJ)用来检测错误和已知警告,如Java内置的@Deprecated、@Override和@SuppressWarnnings就被经常用到。2、编译时和部署时附加操作:软件工具可以在编译时或部署时根据注解信息生成可执行代码,XML文件等等。如生成说明文档,J...
2018-06-13 23:17:55 342
原创 浅析Spring Boot
纯spring的问题需要做大量的配置:声明大量的bean,并把他们组装到一起需要解决很多依赖和冲突的问题。特别是当应用依赖到很多组件的时候(Spring MVC, Mysql, Redis等),要解决这些依赖,需要花很多的功夫手工去配置,解决jar包版本冲突。如果是web应用,则额外需要一个servlet容器将程序跑起来。Spring Boot简介Spring Boot在S...
2018-06-13 23:16:12 1018
原创 类加载的过程
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 597
原创 MyBatis原理浅析
简介MyBatis是一个轻量级的ORM框架,它简化了对关系数据库的使用,开发人员可以在XML或注解中编写SQL来完成对数据库的操作。 如果完全使用XML方式,SQL语句可以集中维护,做到与Java代码完全隔离,便于对SQL调优。原理及流程加载配置:配置来源于两个地方,一是配置文件,一是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了...
2018-06-13 23:13:23 8340
原创 synchronized原理
各种使用姿势对于同步方法,锁是当前实例对象。对于静态同步方法,锁是当前对象的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。简单原理Object内部维护一个监视器Monitor,synchronized正是通过监视器锁实现同步的,在代码的前后加上monitorente...
2018-06-13 23:12:57 304
原创 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 938
原创 大话CDN
简介CDN(Content Delivery Network)内容分发网络,提供静态图片、点播视频、视频直播、全站加速、移动加速、HTTPS加速、安全防护等多种业务分发功能的分布式平台。目的通过在Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,用户可以就近取得所需的内容,提高用户访问网站的响应速度。工作流程 当用户访问已经加入CDN...
2018-06-13 23:10:52 403
原创 ThreadPoolExecutor源码分析
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ...
2018-06-13 23:10:43 197
原创 轻量级任务调度中间件
一、遇到的问题近段时间这边遇到了一些类似的需求,而且未来可能还会有……源源不断的需求-_-案例1: 当一个内容产生时,需要在1小时后开始,每隔1小时去检测该内容的质量评分(根据阅读量、点赞率等指标算出),最多检测两天或者1000次,如果满足阈值则进行大规模推广,从而提高优质内容的曝光率。案例2: 当一个内容开始大规模推广时,可能因算法出错(阅读量高的内容不一定是好内容,如涉黄内容就是阅...
2018-06-13 23:09:50 4517
原创 ConcurrentHashMap简介
简介HashMap、Hashtable、ConcurrentHashMap都是一个数组链表结构。但是HashMap是线程不安全的。Hashtable和Collections.synchronizedMap(hashMap)是线程安全,但是是锁整个结构的,性能很差。ConcurrentHashMap是线程安全,锁的力度小,性能更好。ConcurrentHashMap如何保证线程安全和高性能...
2018-03-17 21:35:51 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人