- 博客(69)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 springboot接入Apollo,springcloud版本问题
1. 若仅为使用Apollo,最好改为引用spring-cloud-starter-config依赖(因为spring-cloud-starter-bootstrap最低版本3.0.0支持最低spring-boot-starter-parent版本为2.4.0,对于低版本的springboot没有bootstrap starter可以用。以springboot 2.1.9.RELEASE为例,对应Spring Cloud Release Train为Greenwich。
2023-07-20 15:21:36 817
原创 idea git回滚某次commit【超简单】
1. idea左下角,如图【Version Control】tag页;能看到自己的commit列表;2. 在要回滚的commit上右键,选【Revert】;可能会弹出编辑页面/冲突解决页面,确定后【Commit】即可;3. 本地即回滚成功,重新将这个revert commit push到远程即可;...
2022-04-08 16:28:51 16813 1
原创 腾讯企业邮箱批量清理邮件
1.设置>文件夹和标签>清空,右键选"Inspect" (检查)2. 点击清空,捕捉到点击确认按钮的请求:路径是foldermgr的3. 邮件URL,Copy -> Copy as cURL4.新建一个脚本文件rmmail.sh如下:#!/usr/bin/env bashEND="$1"for i in $(seq 1 $END)do #这里粘贴cURL命令 curl 'https://exmail.qq.com/cgi-bin/foldermgr?s..
2021-08-10 16:39:35 3437
原创 迭代器实现中的线程安全问题
如果考虑到多线程访问,当一个线程正在迭代某个集合,而另一个线程修改了集合的内容时,设计方向:1. 直接抛异常,ConcurrentModificationException;2. 可正常迭代: a. 不能保证数据一致性;如ConcurrentHashMap,(虽然迭代算法没看懂)迭代过程中有可能包括新更新的数据,有可能存在旧数据;b. 能保证数据一致性: b.1 snapshot;如CopyOnWriteArray,反映的是...
2021-07-09 17:06:19 999
原创 ScheduledThreadPool如何实现定时执行及其它问题概述
一、如何实现定时执行关键组件:DelayedWorkQueue、ScheduledFutureTask;DelayedWorkQueueSpecialized delay queue(延迟队列:是一个无界的BlockingQueue,其中的对象只能在其到期时才能从队列中取走,且队头对象的延迟到期时间最长(heap-based data structure))。在ScheduledThreadPoolExecutor类中定义,队列中元素类型为ScheduledFutureTask;Sche
2021-07-05 16:20:55 636
原创 队列解决线程不安全
记录下工作中久违的出现的一点成就感,用到一点智商/经验优势的东西:更新计算余额存在线程不安全问题,最后选择最简单的思路是队列,串行处理,考虑到不能使用内存队列因为重启会丢消息、队列的排序、非单一节点消费需要分布式锁,最后用mysql实现队列,入队列的动作是状态置为系统处理中,按更新时间排序依次出队列,集成现有工具job管理实现单线程消费...
2021-01-23 12:56:35 287
原创 jdk中的锁
jdk中的锁分为两种:synchronized关键字和lock接口。 synchronized原理涉及三种锁概念:偏向锁、轻量级锁、重量级锁,本质是个锁升级(膨胀)的过程,由此保证了synchronized关键字当前的高性能。 偏向锁:若对象只有1个线程请求,将锁直接分配给该线程; 轻量级锁:若对象有2个线程请求,线程竞争时的等待使用cas(自旋锁、乐观锁的概念);...
2020-04-15 15:12:15 1284
原创 springboot starter原理总结
1. 关键特性引入依赖 自动配置2. 引入依赖将常用依赖进行组合分类,打包提供给具有相应特性的工程;"它使用了maven和gradle的依赖传递方案,starter在自己的pom.xml文件中声明了多个依赖。……一个starter可能会传递性地引入几十个依赖。"starter之间引用依赖传递关系如图:3. 自动配置如果“自动配置类”① “探测”② 到类路径下存在对应...
2020-01-21 17:50:28 416
原创 传送带:AOP原理
静态代理:AspectJ原理:编译时织入切面代码,生成新增强后的代理类;(写死型)动态代理:Spring aop原理:运行时生成新代理类(用后即抛);(动态型)实现工具:JDK动态代理工具;cglib;传送带:两篇博客说得很清楚了https://juejin.im/post/591d8c8ba22b9d00585007dd#heading-9https://blog....
2020-01-17 00:14:37 180
原创 适用场景:All kinds of GCs
一、 各版本jdk默认垃圾收集器jdk7~8:Parallel Scavenge、Parallel Old;jdk9~12:Garbage First;二、适用场景抛开原理不讲,一张图很清楚了:(引用:https://shipilev.net/talks/jugbb-Sep2019-shenandoah.pdf)适用场景:All kinds of GCs...
2020-01-14 16:44:33 167
原创 ConcurrentHashMap小总结
一、诞生之初ConcurrentHashMap的目标是实现高并发,高吞吐量的hashmap。(引用自:https://www.jianshu.com/p/bf5926b6dcde)二、解决的问题要实现高并发、高吞吐量,要解决两个问题:性能和保证线程安全。为了线程安全,链表/红黑树,是必须得加锁的;(否则导致指针的关系错乱) 为了性能,对共享资源的操作,“一句话”/“一行代码”能完...
2020-01-12 17:36:23 135
原创 关于fullGC的总结
1. 描述相对的是youngGC 源于Java堆的内存结构:分代,新生代和老年代 fullGC即在新生代和老年代都进行垃圾回收2. fullGC的影响GC过程中导致服务不可用,降低吞吐率3. 如何降低fullGC带来的影响fullGC长起来可达到5~6s从降低fullGC频率和减少fullGC时长的角度,考虑降低其带来的影响减少fullGC时长 降低fullGC频率...
2020-01-09 11:22:38 920
原创 关于hashmap多线程死锁的总结
1. 前提链表,是基本数据结构; resize方法,操作了线程的共同资源;2. 根本 hashmap死锁主要是一个线程执行transfer过程中,被另一个线程改变了链表元素(共同资源)的指针指向;3. “方法论”多线程不安全的根本原因在于对共同资源的操作。若内存可见,那么会导致对共同资源的执行操作乱序,关系错乱;若内存不可见,那么当最后一个线程将newTable赋...
2020-01-03 19:04:15 846
原创 tips: mysql同步es
前提:MySQL字段名与ES字段名对应;错误记录:1. ES字段名有大写字母;2. MySQL字段名不区分大小写;结果:失败分析:再说吧,反正没成功,切回日志数据源了...
2019-11-29 19:01:36 151
转载 [转] Spring框架下向异步线程传递HttpServletRequest参数的坑
原文链接:https://blog.csdn.net/kid551/article/details/88703414原因:主线程退出时,有清空request对象的动作,跟GC没关系(仍被子线程引用,子线程使用前不可能被回收),故导致子线程使用request时已经拿不到值了。...
2019-11-26 23:02:53 1028
原创 postman tests脚本
背景某功能模块的服务端主要功能是对接算法和前端,关键是保持二者数据结构一致,避免字段拼写错误、字段类型错误等约定问题发生;(消费者驱动的测试)服务端与算法不在一个团队,不方便使用契约测试的pact框架;故为了保证算法输出的质量,使用测试算法接口工具postman的tests功能;接口类型为REST;目标:验证数据结构、字段类型;脚本示例// Define the JS...
2019-07-01 18:08:50 1131
原创 Tomcat manager
一、介绍 Tomcat manager是Tomcat自带的、使用HTML界面的、管理Tomcat自身以及部署在Tomcat上的应用的web应用。 参考官网:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html 它支持的功能包括: 通过war包部署新应用; 在服务器上指定的...
2019-06-06 15:40:23 5067
原创 wireshark与fiddler对比 on mac
0. 前言 通用的抓包工具选择不多,几年前就已经形成稳定局面,如今也不再有新产品/新特性出现。故本文从可用性上对比wireshark和fiddler,前者是目前全世界最广泛的网络封包分析软件之一,免费且开源,后者是是一个http协议调试代理工具,典型功能:移动端抓包和断点调试。1. 安装 fiddler在Mac上的安装需要不止一步,通过命令行启动;依赖mono,...
2019-06-04 14:48:32 986
原创 java线程池应用相关技术点总结
1. JSONArray、JSONObject是非线程安全的,这是因为它们的底层分别默认是Arraylist和HashMap,非线程安全;多线程中使用它们的put/add操作等需要同步;2.JSONArray底层默认是Arraylist,Arraylist没有类似ConcurrentHashMap可替换HashMap的线程安全数据结构,一般直接用synchronized关键字同步,锁对象是J...
2019-05-29 20:59:31 1096
原创 hexo博客搭建(beantech主题),操作指南(Mac)
推荐参考https://zhuanlan.zhihu.com/p/35668237http://lijiankun24.com/Mac%E4%B8%8BHexo%E5%92%8CGitHub-Pages%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A21/https://blog.csdn.net/dajian790626/arti...
2019-05-23 17:54:42 915
原创 GC日志可视化分析 & JVM状态可视化 工具整理
目录一、GC日志可视化分析工具 1. 概述 2. GCeasy 3. GCPlot 4. JClarity 5. GcViewer二、JVM状态可视化(JVisualVM) 1. 概述 2. 运行 3. 安装插件 4. 远程监控 4.1 jstatd连接 4...
2019-05-10 15:05:30 7581
原创 使用mockito辅助springboot service层单元测试
目的: 测试一个springboot service层的一段插入MySQL代码性能;要求: 1. 单元测试,不走web调用; 2. 数据来自第三方服务,数据量较大,返回时间10s+,希望mock掉此过程;方案: junit+mockito代码:
2019-05-07 18:15:05 4765
原创 Intellij idea + TOMCAT access log实际位置
当我们使用Intellij idea在Tomcat上部署项目时,Intellij idea会给每个项目创建一个Tomcat“实例”,Tomcat“实例”有自己的工作目录(包括conf、logs、work目录),彼此共享Tomcat的代码(Tomcat安装路径)。 故,当想查看某项目的Tomcat的access log(或其他日志),应去它的Tomcat“实例”的logs目录下查找...
2019-04-03 16:07:32 1044
原创 IDEA 设置自动提示补全快捷键
1.Preferences2. 导航栏,选KeyMap3. Main menu下的Code,Code下的Completion4. 右键Basic,选reset shortcuts或者先remove ^Space 再addshortcuts
2019-03-27 13:15:55 900
原创 Linux:tomcat部署war包,项目使用根路径访问
1.安装TomcatLinux确定已安装JDK,java -version检验;下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,选择tar.gz类型;加压压缩包,tar -zxv -f apache-tomcat-8.5.38.tar.gz启动Tomcat:进入apache-tomcat-8.5.38/bin...
2019-02-26 16:09:23 5398
原创 macOS Mojave10.14.2 卸载/安装MySQL
卸载MySQL(dmg安装)命令:sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*sudo vim /etc/hostconfig (Vim指令,复制上述命...
2019-01-22 17:59:03 1301
原创 macOS Mojave10.14.2 Hadoop单机版搭建
1、安装Hadoop:brew install Hadoop2、ssh 免密登陆:见上篇博客3、修改Hadoop配置文件:3.1 hadoop-env.sh文件进入安装目录cd /usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop,找到并打开 hadoop-env.sh 文件,将export HADOOP_OPTS="$HADOOP_...
2019-01-18 10:55:45 175
原创 macOS Mojave10.14.2 ssh免密登录
1. ssh-keygen -t rsa #Press enter for each line2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys3. chmod og-wx ~/.ssh/authorized_keys
2019-01-17 14:51:18 293
原创 jmockit使用的坑(with IDEA)
1. 问题:编译org.omg无法识别 原因:使用JDK11,某些类被removed掉了,详见https://gunnarmorling.github.io/jdk-api-diff/jdk10-jdk11-api-diff.html 解决方法:使用JDK82. 问题:Cannot resolve symbol 'jmockit' IDEA 原因:引入包名错了 ...
2018-12-19 11:21:11 7053 5
原创 hbase组件启动顺序
zookeeper → master → regionserver记得关闭防火墙!!!否则报错:java.net.NoRouteToHostException: 没有到主机的路由
2018-06-05 18:44:04 548
原创 ntpdate no server suitable for synchronization found 问题
参考:http://blog.51cto.com/alipay/1654049本人操作系统是centos7,没有iptables服务,故service iptables stop命令不行,用下面这条:# iptables -I INPUT -m udp -p udp --dport 123 -j ACCEPTOK!!...
2018-06-05 17:47:13 3583
原创 xquartz Firefox Error: cannot open display: localhost:14.0
应该是缺少localhost到127.0.0.1的映射1.export DISPLAY=127.0.0.1:14.02.firefoxOK
2018-05-18 23:14:20 2092 1
原创 大集群一致环境搭建--centos7.4-hadoop2.7.6-hbase0.98-phoenix4.13.1
---------Hadoop安装------------------virtualbox安装centos7教程参考:https://jingyan.baidu.com/article/4dc4084868a1e4c8d946f133.html1.安装环境:操作系统[Mac];虚拟机[virtualbox];Mac的virtualbox,鼠标切换快捷键:control+command;注意这里的网...
2018-05-08 16:56:04 325
原创 HBASE完全分布式安装+PHOENIX安装
1. 集群时间同步 ntp服务 参考链接 http://blog.csdn.net/jiangheng0535/article/details/10287609 以及 http://www.blogjava.net/spray/archive/2008/07/10/213964.html 其中127.127.1.0是固定配置,不要改成自己的server ip; 至于为什么不好使,...
2018-03-02 17:06:12 847
原创 hadoop集群搭建(虚拟机)
1. virtualbox字体小:选择scaled mode,就可以直接通过拖拉窗口大小调整了。2. centos6.5安装教程参考 https://jingyan.baidu.com/article/e52e3615aa7b9740c60c519b.html. 3. 教程参考链接 http://www.ityouknow.com/hadoop/2017/07/24/hadoop-cluster-...
2018-02-28 17:05:56 306
原创 hadoop配置环境变量
# export PATH=/bin:/usr/bin:/usr/local/binexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Homeexport JRE_HOME=$JAVA_HOME/jreexport HADOOP_HOME=/usr/local/Cellar/
2018-01-16 21:51:56 2368
原创 单机Apache Phoenix安装
记录下当前我成功安装Phoenix的参数状态:1.Mac下HBASE单机模式安装参考 https://www.jianshu.com/p/510e1d599123http://www.cnblogs.com/wumingcong/p/6044038.htmlhttp://blog.csdn.net/flygoa/article/details/52611253安装$ brew install hb
2018-01-16 11:21:29 1472
原创 第一个storm代码-wordcount-本地模式
代码都是差不多的,一个spout,三个bolt,一个topology,就说几个小问题: 1.书上给的代码用了一个Utils.waitForMillis(1)在spout里,一个waitForSeconds(10)在topology里,我用的storm-core是1.0.2版本的(别的版本莫名其妙依赖包有点小问题,书上用的是0.9.1-incubating),这两个方法是没有的,改为使用U
2017-11-02 22:04:38 879
SkinPlusPlus
2015-04-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人