- 博客(93)
- 收藏
- 关注
转载 管中窥豹:一线工程师看MQTT
MQTT是什么?MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布,目前最新版本为v3.1.1。MQTT最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。做为一种低开销、低
2018-01-22 14:35:45 786
转载 HiveMQ源码详解(一)概览
源博客地址:http://blog.csdn.net/pipinet123简单介绍HiveMQ是企业级MQTT Broker,提供高性能、高可用、高扩展、高安全性的企业级服务。它是纯Java实现的。官网地址:http://www.hivemq.com基于它如上的描述,所以后续我们就是基于它的高性能、高可用、高扩展、高安全性这几个特点来分析它的源码。注意:本篇源码都是基于HiveMQ 3.1.2版本
2018-01-18 15:05:19 4080
原创 Centos6.5编译openjdk7
一、环境准备1、Centos6.5:VMware上面安装Centos6.5,可以联网用来下载,需要注意内存最好要大于1G,我设置的为2G,之前设置的512M内存,编译源码时出现各种问题;2、apache-ant-1.7.1-bin.zip :下载地址:http://archive.apache.org/dist/ant/binaries/,或者https://pan.baidu.c
2018-01-10 20:24:15 468
转载 抓包工具Charles乱码解决办法
今天就来学习使用下 Mac 下截取网络封包的工具:Charles。我想,如果你是个善于利用搜索引擎的人,那么在 Google 中输入「Charles 使用」等相应的关键字,便会出现一大把文章。不过呢,之所以会有这篇文章,就是因为今天在安装和初步使用的过程中,遇到了些问题,而目前搜索出来的绝大数文章并没有提及(或者解决办法已经过时)。所以,我在此记录下来,希望能帮助到通过搜索找到这的朋友
2018-01-05 17:55:58 1168
转载 一步步优化JVM七:其他
边缘问题 在某些场景下,按照前面的一步步优化指导无法产生效果。这一节说明一下这些情况。 一些应用分配了一些少量的非常大的长时间存活的对象。这样的场景需要需要young代的空间比old代更大。 一些应用会经历很少的对象转移。这样的场景可能需要old代的空间远远大于存活对象的大小,由于old的占用量增长率很小。 一些应用有小延迟需求,
2018-01-03 13:48:23 314
转载 一步步优化JVM六:优化吞吐量
如果你已经进行完了前面的步骤了,那么你应该知道这是最后一步了。在这一步里面,你需要测试应用的吞吐量和为了更高的吞吐量而优化JVM。 这一步的输入就是应用的吞吐量性能要求。应用的吞吐量是在应用层面衡量而不是在JVM层面衡量,因此,应用必须要报告出一些吞吐量指标或者应用的某些操作的吞吐量性能指标。观察到的吞吐量指标然后用可以用来和应用需要的性能指标进行比较,如果达到或者超过要求,那
2018-01-03 13:46:26 798
转载 一步步优化JVM五:优化延迟或者响应时间(2)
优化CMS(concurrent garbage collection) 使用CMS,old代的垃圾回收执行线程会和应用程序的线程最大程度的并发执行。这个提供了一个机会来减少最坏延迟的频率和最坏延迟的时间消耗。CMS没有执行压缩,所以可以避免old代空间的stop-the-world压缩(会让整个应用暂停运行)。 优化CMS的目标
2018-01-03 13:41:48 331
转载 一步步优化JVM五:优化延迟或者响应时间(3)
CMS垃圾回收器周期 一旦young的空间大小(包含eden和survivor空间)已经完善得满足应用对MinorGC产生延迟要求,注意力可以转移到优化CMS垃圾回收器,降低最差延迟时间的时间长度以及最小化最差延迟的频率。目标是保持可用的old代空间和并发垃圾回收,避免stop-the-world压缩垃圾回收。 stop-the-world压缩垃圾回收是垃圾回
2018-01-03 11:01:38 374
转载 一步步优化JVM五:优化延迟或者响应时间(1)
本节的目标是做一些优化以满足对应用对延迟的需求。这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小。 这一步有如下可能的结果: 1、应用的延迟需求被满足了。如果这一步的优化操作满足了应用的延迟需求,你可以继续下一步优化(优
2018-01-03 10:59:33 589
原创 一步步优化JVM四:决定Java堆的大小以及内存占用
到目前为止,还没有做明确的优化工作。只是做了初始化选择工作,比如说:JVM部署模型、JVM运行环境、收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则。这一步将介绍如何评估应用需要的内存大小以及Java堆大小。首先需要判断出应用存活的数据的大小,存活数据的大小是决定配置应用需要的Java堆大小的重要条件,也能够决定是否需要重新审视一下应用的内存需求或者修改应用程序以满足内存需求。
2018-01-03 10:54:31 7907
转载 一步步优化JVM三:GC优化基础
本节主要描述关于垃圾回收器性能的三个指标,三个关于垃圾回收器优化的基本原则,以及优化HotSpot VM的垃圾回收器的信息收集,在这些指标中权衡以及信息的收集是非常重要的。性能指标 吞吐量:衡量垃圾回收器运行在性能峰值的时候不需要关心垃圾回收器暂停的时间或者需要占用内存的能力。 延迟:衡量垃圾回收器最小化甚至消灭由垃圾回收器引起的暂停时间和应用抖动的能力。
2018-01-03 10:53:06 336
转载 一步步优化JVM二:JVM部署模型和JVM Runtime
选择JVM部署模型 JVM部署模型的选择总体来说就是决定应用是部署在单个JVM实例还是多个JVM实例上(这里简单举例说明一下JVM实例,比如:我们常用eclipse开发,启动一个eclipse就是启动了一个JVM实例,然后在JVM中运行一个main程序,又会启动一个JVM实例,两个JVM实例是隔离开的)。哪一个是最适合你的应用的呢?这个是前面说到系统需求和潜在规则来决定的。比如
2018-01-03 10:46:42 467
转载 一步步优化JVM一:概述、方法及需求
现代JVM是一个具有灵活适应各种应用能力的软件,尽管很多应用能够在JVM的默认配置下运行良好,但是有些应用还是需要优化JVM配置以达到其性能要求。由于各种各样的应用能够运行在现在JVM上面,所以大量的JVM选项可以配置来提升应用的性能。不幸的是,对一个应用而言优化得很好的JVM配置,对应另外的应用不一定适合。所以,真正理解怎样优化JVM配置是非常有必要的。 优化现代JVM是
2018-01-03 10:42:20 391
转载 Zookeeper的Paxos分布式一致性算法-类比的方式去理解
Paxos是一个基于消息传递的一致性算法,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化。Paxos只有在一个可信的计算环境中才能成立,这个环境是不会被入侵所破坏的。 由Leslie Lamport发明了Paxos算法,他目前供职
2018-01-01 17:11:02 418
原创 Centos6.5使用yum安装mysql
第1步、yum安装mysql[root@stonex ~]# yum -y install mysql-server安装结果:Installed: mysql-server.x86_64 0:5.1.73-3.el6_5
2017-12-30 12:21:02 1016
原创 入门级python爬虫项目
今天为大家整理了32个Python爬虫项目。整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心。所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)OWechatSogou [1]- 微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。DouBanSpider [2]- 豆瓣读书爬虫。
2017-12-19 20:37:15 1453
原创 netfix ribbon提供的负载均衡策略
Ribbon作为后端负载均衡器,比Nginx更注重的是承担并发而不是请求分发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:策略名策略声明策略描述实现说明BestAvailableRulepublic class BestAvailableRule extends ClientConfigEnabledRo
2017-12-19 17:56:12 324
原创 GitHub最著名的20个Python机器学习项目!
我们分析了GitHub上的前20名Python机器学习项目,发现scikit-Learn,PyLearn2和NuPic是贡献最积极的项目。让我们一起在Github上探索这些流行的项目!Scikit-learn:Scikit-learn 是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,
2017-12-15 12:26:30 338
转载 多线程vs多进程
最近在学python,无意中看到阮雪峰的博客讲了一篇关于多进程和多线程的关系,让我茅舍顿开,特转载于此,感兴趣的同学也可以直接看原文:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319292979766bd3285c9d6b4942a8ea9b4e9cfb48d8
2017-12-12 22:05:32 407
原创 python 迭代器
凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。Python的for循环本质上就是通过不断调用next()函数实现的,例如:
2017-12-09 17:15:19 212
原创 SpringBoot常用配置 application.yml /application.properties常用配置介绍
前言:springboot集成了主流的第三方框架,但是需要使用springboot那一套配置方式。但是我这里只列举了非常非常常用的。当然官方文档里也有相应的配置,可惜没有注释。mvcspring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体实现的超时时间为准,比如tomcat的servlet3的话是10秒.s
2017-11-12 21:34:48 1333
转载 Spring Boot 属性配置和使用
Spring Boot 属性配置和使用Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。Spring Boot 系列Spring Boot 入门Spring Boot 属性配置和使用Spring Boot 集成MyBatisSpring Boot
2017-11-12 21:28:06 290
原创 Spring Boot application.properties或application.yml相关配置
# =================================================================== # COMMON SPRING BOOT PROPERTIES # # This sample file is provided as a guideline. Do NOT copy it in its # entirety to y
2017-11-12 21:25:02 1196
原创 spring boot 学习
作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszsSpring Boot应用启动器基本的一共有44种,具体如下:1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。2)spring-boot-starter-actuator 帮
2017-11-12 21:24:02 192
原创 webmvc 常用注解
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充@RequestParam看下面一段代码:http://localhost:8080/springmvc/hello/101?
2017-11-12 18:30:08 245
转载 dubbo源码分析-consumer端4-MockClusterInvoker
在前面几篇文章中,我们分析了consumer端的代理生成过程。创建完成后,应用就可以进行调用了,调用的代码如下:[java] view plain copy // 代理类中的sayHello方法 public String sayHello(String paramString) { // 将调用时的参数传入ar
2017-10-11 21:30:14 1577 1
转载 dubbo参数调优说明
转载:http://blog.csdn.net/youaremoon/article/details/51884644dubbo作为一个服务治理框架,功能相对比较完善,性能也挺不错。但很多朋友在使用dubbo的时候,只是简单的参考官方说明进行搭建,并没有过多的去思考一些关键参数的意义(也可能是时间紧任务多,没空出来研究),最终做出来的效果有一定的打折。 这里我根据目前我们项目的
2017-10-11 08:56:09 454
转载 dubbo源码分析-consumer端6-数据发送与接收
转载:http://blog.csdn.net/youaremoon/article/details/51520144 consumer端的数据经过处理后,最终进入发送的流程。接下来我们继续跟着数据的流向进行分析。 首先进入到了DubboInvoker,DubboInvoker中包含了多个ExchangeClient, 每个ExchangeClient都对应了一个物理连接,同一
2017-10-09 10:28:41 419
转载 dubbo源码分析-consumer端5-Filter
前面一篇dubbo源码分析中,我们对ClusterInvoker和LoadBalance进行了分析,可以知道ClusterInvoker在一批Invoker中选择了一个Invoker来进行调用,而这里的Invoker是通过RegistryDirectory得到的,而RegistryDirectory返回的Invoker实现为:InvokerDelegete(RegistryDirectory的内部
2017-10-09 10:27:12 700
转载 dubbo源码分析-consumer端4-ClusterInvoker与LoadBalance
dubbo中提供了多种集群调用策略: 1、FailbackClusterInvoker : 失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作; 2、FailfastClusterInvoker: 快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作; 3、FailoverClusterInvoker: 失
2017-10-09 10:25:54 547
转载 dubbo源码分析-consumer端3-Invoker创建流程
从前面一篇创建注册中心的流程当中,我们知道在从注册中心获取到provider的连接信息后,会通过连接创建Invoker。代码见com.alibaba.dubbo.registry.integration.RegistryDirectory的toInvokers方法:[java] view plain copy// protocol实现为com
2017-10-09 10:23:26 590
转载 dubbo源码分析-consumer端2-创建注册中心
转载: http://blog.csdn.net/youaremoon/article/details/50731139 前面一篇文章我们分析了consumer代理的生成。在代理生成的过程中,会创建注册服务(com.alibaba.dubbo.registry.Registry)。通过注册服务提供url注册、订阅、查找的功能。[java] view
2017-10-09 10:21:47 445
原创 dubbo源码分析-consumer端1-consumer代理生成
dubbo(官网地址)是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架。目前,阿里巴巴内部已经不再使用dubbo,但对很对未到一定量级的公司来说,dubbo依然是一个很好的选择。 之前在使用duubo的时候,对dubbo有了一些初步的了解,但没有深入,有些问题还是不清楚。所以准备静下心来看下dubbo源码。这
2017-10-09 10:19:43 422
转载 maven 常用插件
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompi
2017-09-20 09:39:35 437
转载 Tomcat启动时SecureRandom超级慢的问题
前言:最近部署springboot项目的时候,正常情况下启动很快,但是当我在centos上启动的时候卡在一个地方3-5分钟。所以查看一下问题。Creation of SecureRandom instance for session Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom
2017-07-18 13:21:41 416
转载 Redis实现分布式session功能的共享
转载:http://blog.csdn.net/fengshizty/article/details/50578639最近项目设计集群,实现了一下session的共享功能,其原理是将session保存到分布式缓存数据库中如:redis, memcache等,然后多个服务器tomcat每次请求都通过NoSql数据库查询,如果存在,则获取值;反之存放值。我是通过redis来
2017-07-05 14:58:20 514
原创 关于 tomcat 集群中 session 共享的三种方法
前两种均需要使用 memcached 或Redis 存储 session ,最后一种使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富, 不只是缓存 session,还可以做其他用途,一举几得啊。 1、使用 filter 方法存储 这种方法比较推荐,因为它的服务器使用范围比较
2017-07-04 17:27:34 443
原创 Tomcat8+redis做session同步
什么是Session/Cookie 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互。HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是不是上次访问的用户。我们需要基于HTTP协议支持会话状态的机制,这样的机制可以使Web服务器从多次单独的HTTP请求中知道哪些请求是来自哪个会话的。
2017-07-04 15:27:10 1749
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人