自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FeelTouch

Best or Nothing!

原创 自动化测试工具分析和总结【实时更新】

目录JUnit简介Mockito简介RobolectricSelenium简介JUnit简介JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测...

2019-03-11 01:13:18 712

原创 全链路性能压测工具分析和总结【实时更新】

服务端压测memtier_benchmarkmemtier_benchmark是Redis Labs推出的一款命令行工具,它能够产生各种各样的流量模式,可以对Memcached和Redis实例进行基准测试。这个工具提供了丰富的自定义选项和报表功能,通过命令行界面就能够轻松地使用。这个工具的一些优点如下所述: memtier_benchmark同时支持Redis和Memcached(二...

2019-03-10 21:30:21 1609

原创 开源站点【实时更新】

0.total:https://www.oschina.net/company https://blog.csdn.net/msup789/article/details/782198801. facebook:https://opensource.fb.com/2.didi:https://didi.github.io/3.meituan:https://tech.meitu...

2019-01-05 16:09:06 367

原创 优秀的相关网站留存【实时更新】

网站名:IMPORTNEW 网址:http://www.importnew.com/ 简介:专注分享JAVA技术网站名:PHP100 网址:http://www.php100.com/ 简介:专注于分享传递PHP学习网站名:极客范 网址:http://www.geekfan.net/ 简介:致力于分享前沿与新兴科技应用网站名:恩聪PHP 网址:http://php.ncong.com/ 简介

2015-07-19 19:57:46 1801

原创 必读书单-实时更新

强力书单: http://www.me115.com/booklist/book_list/cpp_base.html

2015-06-08 21:21:39 875

转载 全局精确流量调度新思路-HttpDNS服务详解

但凡使用域名来给用户提供服务的互联网企业,都或多或少地无法避免在有中国特色的互联网环境中遭遇到各种域名被缓存、用户跨网访问缓慢等问题。那么对于腾讯这样的域名数量在10万级别的互联网公司来讲,域名解析异常的情况到底有多严重呢?每天腾讯的分布式域名解析监测系统在不停地对全国所有的重点LocalDNS进行探测,腾讯域名在全国各地的日解析异常量是已经超过了80万条。这给腾讯的业务带来了巨大的损失。为此腾讯建立了专业的团队与各个运营商进行了深度沟通,但是由于各种原因,处理效率及效果均不能达到腾讯各业务部门的需求。除了

2020-07-31 16:59:22 75

原创 股市投资必修课七---一个小散在股市投资中必经的进阶之路

目录前言投资需要经历的四个阶段投资四个阶段需要关注的点前言投资的能力不是一蹴而就的,而是需要经过漫长的投资修炼,一般主要经过以下四个阶段:1.投资世界的历史和基本概念以及原则2.企业价值分析的框架和方法论3.市场定价机制以及长期运行规律4.对于投资中多种要素的融合和综合运用投资需要经历的四个阶段提升投资素养并没有捷径,唯有大量的阅读、持续的观察和勤奋的思考以及练习。投资四个阶段需要关注的点阅读提供了基本的知识点和关注点,但是要真正起到作用唯有多

2020-07-26 00:05:27 53

原创 股市投资必修课六---小散们在投资中遇到的的千万个坑你有没有跳进过

前言如果说投资中不可动摇的基石可以帮助我们刚好的理解成功的必要的基础,那么导致投资失败的千万条因素又有那些呢?投资中失败的因素普通人最大的问题普通人面临的最大问题,在于不懂得对“得失”的安然处之,所以总是患得患失,永远处于不平衡状态。因为没有认识到“得失”是必然而不是偶然,选择的区别只在于“得什么”?“失什么”?也就永远难以泰然处之。...

2020-07-25 23:45:35 26

原创 股市投资看世界一---血的教训和收获

2020-07-20 01:02:23 79

转载 基金投资必修课一---基金该如何止盈

在前两天的文章中,我们分享了3000点附近是否适合定投,赚钱的概率有多大,选择哪些基金定投比较合适,有兴趣的朋友可以看前面的文章:聚财君:3000点是否是定投的好起点?那我们今天谈下,我们定投后最重要的事情——止盈。为什么止盈是最重要的呢?因为你投资主要是为了赚钱,如果只是账面上的,那像中国股市周期这么强,很可能没有止盈的话,就在一轮牛熊转换过程中,变成亏损。有句老话说,“会买的是徒弟,会卖的是师傅”,所以卖一定是最重要的。那我们今天就分享下,3个定投止盈最有效的方法。(一)目标收益法目标收益法

2020-07-19 12:55:55 83

原创 股市投资必修课四---一个散户如何做真正的价值投资

目录前言如何才能是真正的价值投资正题不可动摇的投资基石1)从企业视角看投资2)谨守安全边际3)确定自己的能力圈4)了解市场先生有效的自控力不要预测相关参考前言不管叫价值投资也好,叫投资价值也罢,这种在国内外证券市场都已经经过了长期有效性的验证的方法,是普通投资者在股市中最有效的依靠。如何才能是真正的价值投资各种投资大师具体行为来看,似乎差异很大:有的喜欢成长股,有的喜欢价格便宜,有的长期持有,有的短期套利,有的非常分散,有的倾向于传统行业,有的偏爱

2020-07-19 12:44:35 60

原创 股市投资必修课五---一个成熟的投资者谨记的黄金数字

前言铁的纪律是股票投资制胜的法宝。下面的黄金数字每一个都有很深的价值投资的理论基础,务必严格执行。持有股票数如果总的投资金额小于1000万,那么最好的持有的5只股票数,其波动范围是3~10只。持有仓位数持有的仓位数最佳是50%,优秀的波动范围是30%~70%,极限是0%~80%。止盈止损位通常来说,最佳止盈位是20%,最佳止损位是8%,但这个适用于股性正常的几乎所有股票。721定律市场的定律永远都是七亏二平一赚。60%低价圈是指股价相对前期高点个股跌幅在6

2020-07-19 11:08:21 54

原创 股市投资必修课三---一个散户该捅破的窗户纸

前言如果一个开始买卖的股票的人,并不是一种想着以“投资者”身份进入市场,那么这是悲剧的开场。正题投资、投机与赌博1. 投资与投机理论分析格雷厄姆在《证券分析》一书中有过如下的定义:“投资业务是已深入分析为基础,确保本金的安全,并适当获得回报;不满足这些要求就是投机”。从这个定义来看,投资与投机的区别如下:2. 投资与投机现实分析3.这就是赌博4.不要自持聪明真正的认识投资真正认识一个事物,不是能看说出多少优点,而是能够充分认识到它的缺陷。价值投资不

2020-07-18 23:05:31 49

原创 股市投资必修课二---一个散户在股市所具备的自身优势

前言一个普通的投资者实际是可以具有机构投资者不具备的优势的,前提是需要自己逐步建立。正题1. 因为专注和长期的跟踪研究,一些普通的投资者对某个公司的整体认识,对其经营规律的理解和价值内涵上的把握都超过了大多数机构的研究人员,这已经不是一个少见的现象。2.机构投资者的业绩考评机制的短期化逼迫所有人都身不由己地追逐“短期业绩”。由于基金的排名对于基金的销售具有重大的推动作用,在这种利益的驱使下,基金经理们不得不追求“下个短期”可能涨的最多的题材和公司,在这个过程中,“投资”慢慢变成了“投机”,而

2020-07-18 18:39:45 60

原创 股市投资必修课一---一个散户在股市中必须正视的实事

股市中你必须正视的实事1. 巴菲特说:“投资很简单,但并不容易”。太多人高估了前半句对自己的适用程度,却远远低估了后半句隐藏的极高壁垒。2. 投资者进行股票投资时,所必然面临的三大困难: 1)企业经营的不确定性 2)证券市场定价的复杂性 3)市场对人性弱点的放大。...

2020-07-18 10:06:31 121

原创 架构集二---如何从中台角度搭建直播聊天室

前言视频直播已经是一种成熟的产品形态,在不同行业中有多种应用场景。在泛娱乐行业,游戏直播、秀场直播、演唱会直播等已经走进广大用户的日常生活;在电商行业,网红带货直播已经成为增长的新动能;在教育行业,1对多的教育直播也正在改变着整个行业的格局。视频直播占用着越来越多的用户使用时间。随着线上线下服务的进一步融合,视频直播也将会有迎来越来越多的使用场景。让专业的人做专业的事。通常来说,一个典型的视频直播产品会使用二类中台能力:直播聊天室SDK和视频直播SDK。直播聊天中台主要负责提供视频直播中的文字聊天室

2020-07-16 21:02:43 73

原创 架构集一---语音连麦聊天室实现方案分析

前言语音聊天基本是社交软件必备的功能,语音相比文字图片更丰富,比视频又更简便,是天然的社交工具。除了单纯的1对1语音或视频聊天,在实时音视频技术支持下,很多 APP 已经延伸出非常多的玩法。目前比较火的语聊房又分为语音电台、语音游戏、私人聊天房、多人语聊房、KTV 语聊房等细分的场景,延伸出去还有更多的形态,目前比较火的音遇 APP ,就是语聊房的最新形态。语音电台是目前很多社交APP的玩法。主播可以在直播间中给听众讲故事、脱口秀、唱歌,内容形式不胜枚举,观众也可以申请上麦与主播聊天互动(一般需

2020-07-16 20:36:16 167

原创 一种基于线程池进行定时调度的实现方案

前言实现定时调度的方案真的是太多了,此处实现经典的基于线程池的定时调度方案。具体实现1,编写调度线程管理类@Slf4j@Servicepublic class TimerTaskService { private static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10, new ThreadFactory() {

2020-07-14 17:48:58 67

原创 Kafka系列---Kafka客户端参数配置最佳实践解析

Kafka客户端的配置参数很多,以下提供Producer和Consumer几个常用参数配置。表1Producer参数 参数 默认值 推荐值 说明 acks 1 高可靠:all 高吞吐:1 收到Server端确认信号个数,表示procuder需要收到多少个这样的确认信号,算消息发送成功。acks参数代表了数据备份的可用性。常用选项:..

2020-07-11 17:48:51 123

原创 Kafka系列---Kafka客户端使用最佳实践

目录1. consumer使用规范2. producer使用规范3. topic使用规范4. 其他建议1. consumer使用规范consumer的owner线程需确保不会异常退出,避免客户端无法发起消费请求,阻塞消费。 确保处理完消息后再做消息commit,避免业务消息处理失败,无法重新拉取处理失败的消息。 consumer不能频繁加入和退出group,频繁加入和退出,会导致consumer频繁做rebalance,阻塞消费。 consumer数量不能超过topic分.

2020-07-11 17:44:30 120

转载 WebSocket系列12---Spring Cloud Gateway的多WebSocket请求转发实现

Linkis:https://github.com/WeBankFinTech/Linkis/wiki一、功能点 前端Client与后台多WebSocket微服务1多N支持 WebSocket通道全生命周期管理 二、Zuul的缺陷 完全不支持转发WebSocket请求。三、Spring Cloud Gateway的局限 一个WebSocket客户端只能将请求转发给一个特定的后台服务,无法完成一个WebSocket客户端通过网关API对接后台多个WebSoc...

2020-06-27 00:59:24 362

转载 WebSocket系列11---分布式WebSocket集群解决方案

问题起因最近做项目时遇到了需要多用户之间通信的问题,涉及到了WebSocket握手请求,以及集群中WebSocket Session共享的问题。期间我经过了几天的研究,总结出了几个实现分布式WebSocket集群的办法,从zuul到spring cloud gateway的不同尝试,总结出了这篇文章,希望能帮助到某些人,并且能一起分享这方面的想法与研究。以下是我的场景描述资源:4台服务器。其中只有一台服务器具备ssl认证域名,一台redis+mysql服务器,两台应用服务器(集群) 应用

2020-06-27 00:48:09 282

转载 WebSocket系列10---千万级WebSocket消息推送服务技术分析

参考:https://www.imooc.com/learn/1025拉模式和推模式区别拉模式(定时轮询访问接口获取数据)数据更新频率低,则大多数的数据请求时无效的 在线用户数量多,则服务端的查询负载很高 定时轮询拉取,无法满足时效性要求推模式(向客户端进行数据的推送)仅在数据更新时,才有推送 需要维护大量的在线长连接 数据更新后,可以立即推送基于WebSocket协议做推送浏览器支持的socket编程,轻松维持服务端的长连接 基于TCP协议之上的高层协议,无需开发者关心通

2020-06-27 00:45:27 315

转载 Java中的笔试和面试3---ThreadLocal-面试必问深度解析

ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不同的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图ThreadLocal结构内部从上面的结构图,我们已经窥见ThreadLocal的核心机制:每个Thread线程内部都有一个Map。 Map里面存储线程本地对象(key)和线程的变

2020-06-25 16:20:44 99

转载 Java深海拾遗系列(10)--- Java并发之AQS源码分析

AQS 全称是 AbstractQueuedSynchronizer,顾名思义,是一个用来构建锁和同步器的框架,它底层用了 CAS 技术来保证操作的原子性,同时利用 FIFO 队列实现线程间的锁竞争,将基础的同步相关抽象细节放在 AQS,这也是 ReentrantLock、CountDownLatch 等同步工具实现同步的底层实现机制。它能够成为实现大部分同步需求的基础,也是 J.U.C 并发包同步的核心基础组件。AQS 结构剖析AQS 就是建立在 CAS 的基础之上,增加了大量的实现细节,例如获取

2020-06-25 15:03:36 87

转载 DeepLink的实现原理

前言之前我们又是看源码又是研究动画,今天分享一个比较简单的技术点:DeepLink。DeepLink,深度链接技术,主要应用场景是通过Web页面直接调用Android原生app,并且把需要的参数通过Uri的形式,直接传递给app,节省用户的注册成本。简单的介绍DeepLink概念之后,我们看一个实际的例子:朋友通过京东分享给我一个购物链接:WX20180906-115103@2x.png于是我通过微信打开了这条链接:4731536205741_.pic.jpg在微信中打开

2020-06-18 14:53:12 259

转载 App推广系列---手机APP营销必知的5种推广方式

手机APP应用的商业价值日趋显现,越来越多的企业已经开发了专有的APP应用,但往往缺乏推广无人下载,造成酒香也怕巷子深的窘境,因此,今天分享一些适合移动互联网的APP营销推广方式,主要围绕应用市场、社交媒体、搜索引擎、门户网站、移动广告平台进行策划和执行,供大家参考。一、应用市场推广应用市场亦称应用商店,泛指专门为移动设备手机,平板电脑等提供收费(免费)游戏,应用下载服务的电子应用商店。应用市场是用户下载应用的主要通道,围绕应用市场推广APP应用是非常关键的第一步。1、APP应用提交将APP

2020-06-16 11:39:00 480

原创 RocksDB---一个事实可以取代Redis和DynamoDB的NoSql数据库

不得不说的RocksDB标题看起来是比较大了,因为无论Redis还是DynamoDB都堪称是各自领域的翘楚,已经非常好了。RocksDB:https://github.com/facebook/rocksdb/RocksDB是使用C++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发, 提供向后兼容的levelDB API。RocksDB针对Flash存储进行优化,延迟极小。RocksDB使用LSM存储引擎,纯C++编写。Java版本RocksJ.

2020-06-15 18:50:35 466

转载 Couchbase---一个尝试做到完美的分布式 NoSQL数据库

简介官网地址:https://www.couchbase.com/Couchbase是一个较新的、发展迅速的nosql数据库技术。2014年,viber宣布使用Couchbase替换Mongodb,以适应10亿级的用户量,目前,Couchbase已大量运用于生产环境,国内使用的公司主要有新浪,腾讯等。Couchbase是CouchDB和MemBase的合并。而memBase是基于Memcached的。因此Couchbase联合了Couchbase的简单可靠和memcached的高性能,以及mem

2020-06-15 18:25:28 151

原创 方案系列--多个应用同时接入Google和Facebook三方登陆互联互通解决方案
原力计划

目录背景多App之间用户互通场景分析本文可以帮到你什么国内三方登陆常见方案Google和Facebook的三方登陆的该怎么做标准Ouath实现的三方换应用到底是在换什么Google重磅方案Facebook背景当前各家公司的发展策略,早已从之前的单app形式演变为app矩阵的形式,尤其对于一些参与出海的公司的产品更是如此,积累用户提高DAU是永恒的话题,接入Google和Facebook三方登陆是自然而然的形式。题外话:其实当前也有很多app仅采用手机号登陆的

2020-06-10 01:51:46 269

原创 基于spring.handlers和spring.schemas实现Spring的Schema自定义扩展
原力计划

概要本文将以nacos-spring-project的扩展案例的经典使用方法来讲解对Schema支持,其中会结合部分讲解进行。通过本文可以掌握Spring扩展Schema的支持,该方法也是将一些中间件包装到Spring框架中的常用方法。需要扩展Schema的场景分析通常对系统提供可配置化支持,简单的可以直接基于Spring的标准Bean来配置。但当需要配置较为复杂或者需要更多丰富控制的时候,就会比较困难,此时可以用自定义的方式去解析自主定义的xml文件,然后转化为配置对象,这种方式可以解决所

2020-06-07 22:20:58 211

转载 微信小程序同层渲染原理剖析

众所周知,小程序当中有一类特殊的内置组件——原生组件,这类组件有别于 WebView 渲染的内置组件,他们是交由原生客户端渲染的。原生组件作为 Webview 的补充,为小程序带来了更丰富的特性和更高的性能,但同时由于脱离 Webview 渲染也给开发者带来了不小的困扰。在小程序引入「同层渲染」之前,原生组件的层级总是最高,不受z-index属性的控制,无法与view、image等内置组件相互覆盖,cover-view和cover-image组件的出现一定程度上缓解了覆盖的问题,同时为了让原...

2020-06-02 14:12:26 445

原创 Git步步进阶---一文搞定git后悔、撤销、复原操作

实际使用git的过程种难免会遇到,错误操作的情况,尤其是一些小白在参加团队合作的项目时,更是容易犯错。Git步步进阶已经讲解了很多正确操作git的方法,但是实际操作时,仍然需要掌握撤销操作这一大神器,可以让你在团队合作中如鱼得水。错误操作的情形非常多,本文会优先把一些常用的给列举出来,并逐步完善。1,希望删除操作大类情形1:被提交到仓库的某个文件需要删除,可以使用git rm命令,具体如下。1. git rm <file> // 从工作区和暂存区删除某个文件...

2020-05-31 15:50:15 209

原创 Git步步进阶---git add你还需要了解有更多

平时我们提交代码,或许很多时候不需要直接写git add了,因为IDE可视化工具一般都能够帮我们做了,但是,的如果身边没有IDE怎么办,这是可能就需要直接命令上手了,彰显你价值的时刻就到了。其实,对于很多普通的开发者,多数也掌握了简单的git add 命令,尤其掌握了万能git add .命令。但是git add .命令真的是万能的吗?本文将一一揭晓。第一步:git add . 命令可以实现什么咱们还是直接实战,看结果说话➜ test_git_command git:(master) ✗ l

2020-05-31 14:32:16 124

原创 Git步步进阶---git config不同配置区别

在git中,我们使用git config命令用来配置git的配置文件Table of Contentsgit配置级别分类git配置各级别配置文件位置git 查看配置信息git 添加和修改配置信息git配置技巧git配置级别分类1、仓库级别 local ,优先级最高2、用户级别 global,优先级次之3、系统级别 system,优先级最低git配置各级别配置文件位置git 仓库级别对应的配置文件是当前仓库下的.git/configgit 用户级别对应的..

2020-05-31 14:30:03 185

原创 Git步步进阶---参与开源提交PR步骤完全揭秘

参与开源、贡献开源已成为很多开发者实现自身价值的一种表达方式。那么,如何从一个小白晋升到提一个PR被提交呢?一般的参与流程又是有哪些呢?本篇文章将一一揭晓。step1: 选择issue并标注为什么说是issue?这里之所说是issue,因为最终一个pr通常是要对应一个issue,最终release里面的就会包含一条这个pr对应的issue,整个社区就可以追踪,什么时候提出了issue、谁解决了issues、在哪个版本解决的、怎么解决的、什么时候发布的、哪个版本发布的。issue来自哪里?

2020-05-31 01:54:22 264

原创 Git步步进阶---完美实战Git多源追踪和8步搞定Github提交PR
原力计划

参与开源、贡献开源已成为很多开发者实现自身价值的一种表达方式。那么,如何愉快的参与开源并让自己的PR被正确的Merged成为了这其中重要的一步,那么完成这一步最有可能面临的问题是自己的PR与目标要合并的源仓库的某个分支冲突了,那么进行下面的操作就是必要的了。那么本文能够帮你解决哪些问题呢?1,掌握Git多源追踪的高阶命令2,掌握将自己的源仓库的最新更新同步到自己的fork仓库3,掌握参与开源的技巧并提高PR被接受的速度在自己fork仓库的对应的本地仓库目录下,执行如下步骤:Step1

2020-05-30 15:46:42 141

原创 Spring春风拂面系列---SpringBoot 设置response header的方法总结

主要分为两类,一是单个响应增加响应头,而是对所有响应增加响应头单个响应如果我们要在单个请求响应response增加header,可以使用httpServletResponse或者ResponseEntityobjects.UsingHttpServletResponseWe simply have to add theHttpServletResponseobject to our REST endpoint as an argument, then use theaddHead...

2020-05-16 14:34:23 595

原创 方案系列--三方授权之后几种方案对比分析

方案一:快捷和自动登陆注册型。该方案是对用户行为拦截最少的方案,整个过程最为流畅,对用户来说几乎无感;此时无服务端通常通常以第三方分配的openId+三方平台类型结合生成一个唯一表示标识,并将从三方获取到的其他信息一起作为一条记录存到数据库。并且自己网站通常也会显示第三方平台的昵称。下次,用户在此登陆时,仍然需要通过三方来进行登陆,因为在自己平台上我们并没有给用户一个机会让用户输入自己的标识,...

2020-05-03 14:16:07 269 1

原创 Redis之在Set和Zset集合中找出某个元素是否存在的方法和时间复杂度分析

SetRedis直接提供了高效的查询方法SISMEMBER,其时间复杂度O(1)。redis> SMEMBERS joe's_movies1) "hi, lady"2) "Fast Five"3) "2012"redis> SISMEMBER joe's_movies "bet man"(integer) 0redis> SISMEMBER joe's_...

2020-04-29 12:32:31 1442 1

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