自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bin的专栏

一个程序员的笔记本

原创 网易公开课付费视频没有加密,可以随意下载到本地

最近发现看网易公开课的时候发现一个问题,网易公开课付费视频没有加密,一次付费便可以随意下载到本地。例如现在我们打开一个付费视频https://vip.open.163.com/courses/273?p=pay_list 打开试看视频【硬笔行书套路01】 F12打开控制台,查看相关信息,会发现网易公开课是使用flash+flv的方案进行视频播放的,不管是否是付费视频都是flv格式,...

2018-05-08 11:19:54 20471

原创 个人项目 JMongoOrm MongoDB对象关系映射

项目地址:https://github.com/BinGithub2015/JMongoOrm一,什么是对象关系映射 ORM百度百科: 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1] 。从效果上说,它其实是创建了一个...

2018-05-04 00:26:10 494

原创 Docker学习笔记

一,Docker 学习笔记系列博客docker容器运行和资源限制docker网络docker存储二,Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何主流机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会...

2018-01-09 00:34:02 238

原创 MySQL学习笔记

一,MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以你不需要支付额外的费用。MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形

2017-08-20 23:08:07 843

原创 TCP/IP入门

一,OSI网络分成介绍网络结构的标准模型是OSI模型,它是由国际互联网标准化组织(International Organization for Standardization,ISO)定义的网络分层模型。虽然目前没有完全按照这种模型实现的网络协议栈,但是这种模型对于理解网络协议内部的架构很有帮助,为学习网络协议栈提供了很好的参考模型。这个模型一般称为ISO/OSI开放互联模型,在实际中TCP/IP协

2017-08-19 01:58:45 482

原创 C#多线程、并行和异步编程学习笔记

一,进程、应用程序域和对象上下文1,CLRCLR(Common Language Runtime,公共语言运行库),主要作用使定位、加载和管理.Net类型,同时负责一些底层细节的工作,如内存管理、应用托管、处理线程、安全检查等。2,进程进程是一个运行程序。进程是一个操作系统级别的概念,用来描述一组资源(比如外部代码库和主线程)和程序运行必须的内存分配。对于每一个加载到内存的*.exe,在它的生命周期

2017-08-01 23:37:32 8378 1

原创 设计模式学习笔记

一,设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠

2017-07-23 20:57:24 564

原创 Redis学习笔记

一,Redis学习笔记系列博客Redis持久化Redis复制和哨兵Redis事件二,Redis简介 Redis,REmote DIctionary Server(远程字典服务) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Ke

2017-07-10 23:25:41 461

原创 MongoDB学习笔记

一,MongoDB学习笔记系列博客MongoDB复制集入门MongoDB复制集深入(设计复制集,日志,写关注,读关注,标签)MongoDB分片入门MongoDB索引入门MongoDB特殊的索引和集合MongoDB管理与监控Robomongo bug:执行aggregate最多只返回50个文档个人项目 JMongoOrm MongoDB对象关系映射二,什么是MongoD...

2017-07-02 23:47:36 998

原创 博客收集

JMX:http://www.cnblogs.com/dongguacai/p/5900507.html

2018-09-16 16:28:19 181

原创 《领域驱动设计:软件核心复杂性应对之道》读书笔记

第2章 交流与语言的使用2.4 文档和图图是一种沟通和解释手段,它们可以促进头脑风暴。简洁的小图能够很好地实现这些目标,而涵盖整个对象模型的综合性大图反而失去了沟通或解释能力,因为它们将读者淹没在大量细节之中,加之这些图也缺乏目的性。鉴于此,我们应避免使用包罗万象的对象模型图,甚至不能使用包含所有细节的UML数据存储库。相反,应使用简化的图,图中只包含对象模型的重要概念——这些部分对于理解...

2018-09-05 00:17:23 550

原创 《敏捷软件开发(原则模式与实践)》读书笔记

《敏捷软件开发》读书分享由于书是由英文书籍翻译,读起来会难免拗口,本次分享是由《敏捷软件开发》结合网上相关资料总结而成。传统的瀑布式开发瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致...

2018-08-05 16:56:45 739

原创 spring boot 单元测试

Spring Boot入门官网 https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-testing https://spring.io/guides/tutorials/bookmarks/ https://spring.io/guides/gs/te...

2018-08-05 02:12:39 201

原创 rabbitmq入门

一,消息中间件消息中间件(message queue middleware,简称mq)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。作用: 1. 解耦 2. 冗余(存储) 3. 扩展性 4. 削峰 5. 可恢复性 6. 顺序保证 7. 缓冲 ...

2018-07-29 23:49:16 204

原创 spring boot 工作原理

springspring iocioc(inversion of control,控制反转)有两种实现方式,一种是di(dependency injection),另一种是dl(dependency lookup,依赖查找),前者是当前软件实体被动接受其依赖的其他组件被ioc容器注入,而后者则是当前软件实体主动去某个服务注册地查找其依赖的那么服务。 任何一个使用spring框架构...

2018-07-28 18:52:36 33374 3

原创 spring 事务

spring事务管理器回滚一个事务的推荐方法是在当前事务的上下文内抛出异常。spring事务管理器会捕捉任何未处理的异常,然后依据规则决定是否回滚抛出异常的事务。默认配置下,spring只有在抛出的异常为运行时unchecked异常时才回滚该事务,也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚),而抛出checked异常则不会导致事务回滚。 可以明确的...

2018-07-01 16:10:32 1046

原创 工具箱

监控工具Metabase:Metabase是一个简单、开源的数据呈现方式,通过给公司成员、分析师新建Question,从而得到数据进行分析、学习。即在线查看数据库。 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。用于日志分析。 zabbix:是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。可以监控内存、磁盘、C...

2018-06-27 22:18:53 228

原创 面试题收集

十面阿里,七面头条,六个Offer,春招结束: https://zhuanlan.zhihu.com/p/36636356

2018-05-19 16:54:50 196

原创 Java多线程之ThreadLocal类

Java为线程安全提供了一些工具类,如ThreadLocal类,它代表一个线程局部变量,通过把数据放在ThreadLocal中就可以让每个线程创建一个该变量的副本,从而避免并发访问的线程安全问题。ThreadLocal支持泛型,即ThreadLocal< T >。通过使用ThreadLocal类可以简化多线程编程时的并发访问,使用这个工具类可以很简捷地隔离多线程程序的竞争资源。...

2018-05-17 23:39:02 150

原创 Java多线程死锁

https://blog.csdn.net/tianshi_kco/article/details/52987584

2018-05-17 00:00:02 160

原创 Java中的String,StringBuilder,StringBuffer三者的区别

https://www.cnblogs.com/su-feng/p/6659064.html

2018-05-15 23:59:56 149

原创 秒杀系统的设计

一,秒杀系统要解决的技术挑战1,短时间内的超高访问量对后台服务的冲击。秒杀期间,来自外部请求产生的QPS会是平时的10~100倍。 2,数据库的读写压力陡增。大量的并发写,会造成数据库的行锁处于无法释放的状态,大量的线程排队进而造成服务请求超时失败。 3,网络带宽资源会因为秒杀被大量占据掉。假设秒杀页面的大小为150K,如果最大并发连接数为20000,那么应用服务器至少需要支持的带宽&gt...

2018-05-07 15:12:12 377

原创 Java 集合入门

一,Java集合Java的集合类只要又两个接口派生而出:Collection和Tree,Collection和Tree是Java集合框架的根接口,这两个接口又包含了一些子接口的实现类。 Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集合。Iterator接口也是Java集合接口框架的成...

2018-05-06 23:59:01 372

原创 散步表入门(哈希表,hash table)

一,什么是散列表散列表,又叫哈希表(hash table),是能够通过给定的关键字的值直接访问到具体对应的值的一个数据结构。也就是说,把关键字映射到一个表中的位置来直接访问记录,以加快访问速度。通常,通过一个关键字key访问一个映射表来得到对应记录value的地址,而这个映射表,也叫散列函数或者哈希函数,存放记录的数组叫做散列表。其中,通过不同的key,可能访问到同一个地址,这种现象叫...

2018-05-06 17:05:26 166

原创 https的通信步骤

步骤1:客户端通过发送client hello报文开始ssl通信。报文中包含客户端支持的ssl的指定版本,加密组件(cipher suite)列表(所使用的加密算法及秘钥长度等)。步骤2:服务器可进行ssl通信时,会以server hello报文作为应答。和客户端一样,在报文中包含ssl版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。步骤3:之后服务器发送...

2018-05-06 16:06:54 827

原创 http三次握手四次挥手

相关资料收集: https://blog.csdn.net/weixin_40197429/article/details/79383307 https://blog.csdn.net/kingov/article/details/77155671

2018-05-06 15:47:57 112

原创 MyBatis入门

一,mybatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例...

2018-05-06 15:12:19 100

原创 Spring Boot入门

一,什么是spring bootSpring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。–摘自百度百...

2018-05-06 10:58:34 503

原创 算法入门学习

动态规划: 维基百科:https://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92 相关资料: https://blog.csdn.net/baidu_28312631/article/details/47418773递推与递归:http://www.cnblogs.com/jycboy/p/5304347.html...

2018-04-24 15:46:13 149

原创 nginx服务器的web请求处理机制

nginx学习笔记一,nginx服务器的web请求处理机制从设计架构上来说,nginx服务器是与众不同的。不同之处一方面体现在它的模块化设计,另一方面体现在它对客户端请求的处理机制上。web服务器和客户端是一对多的关系,web服务器必须有能力同时为多个客户端提供服务。一般来说,完成并行处理请求工作有三种方式可供选择:多进程方式、多线程方式和一步方式。1,多进程方式多进程方式...

2018-03-11 16:59:40 279

原创 Nginx学习笔记

一,Nginx 学习笔记系列博客nginx服务器的web请求处理机制二,NginxNginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 在高连接并发的情况下,Nginx是Apache服务器不错的替代品。官网:http://nginx.or...

2018-02-24 00:05:37 355

原创 docker存储

docker学习笔记一,docker存储docker为容器提供了两种存放数据的资源:由storage driver管理的镜像层和容器层,可以简单理解为某个docker镜像的数据层。data volume。对于某些容器,直接将数据放在由storage driver维护的层中是很好的选择,比如那些无状态的应用。无状态意味着容器没有需要持久化的数据,随时可以从镜像直接创建,...

2018-02-09 22:43:33 243

原创 关于代码重构的思考

最近翻阅了《重构 改善既有代码的设计》,对于代码重构进行了思考,也上知乎搜了相关的内容,有两个内容我个人觉得写得很好。https://www.zhihu.com/question/19552812/answer/12206760 「重构」并不是完全打翻重来,最开始的设计也并非一无是处。软件开发是一个过程,软件使用的人群、环境都可能在进行中发生变化,当初设计中的一些假设、条件都会变化,这...

2018-01-30 00:07:33 511

原创 《亿级流量网站架构核心技术》读书笔记

虽然本人平时主要从事OA系统的开发,系统并发量不会特别大,主要是注重业务逻辑和快速交付,但是通过学习电商网站对高并发高可用的处理,可以促进自己对系统架构的思考,提升自己的业务水平,以后出现高并发高可用问题的时候,才不会手足无措,而且,系统架构原理是想通的,即使是小系统,也可以从大系统的架构中学习到相关技术解决方案和设计思路,也就是所谓的触类旁通。一,系统设计的一些原则在我们的技术生涯中

2018-01-21 17:28:18 946

原创 并发数计算方式资料整理

计算并发用户数的五种方法 网站并发量的计算方法 聊一聊PV和并发、以及计算web服务器的数量的方法

2018-01-20 16:43:21 272

转载 网络带宽

一,网络带宽网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。网络和高速公路类似,带宽越大,就类似高速公路的车道越多,其通行能力越强。二,概念带宽是一个非常有用的概念,在网络通信中的地位十分重要。本文中带宽的实际含义是在给定时间等条件下流过特定区域的最大数据位数。虽然它的概念有点抽象,但是可以用比喻来帮助理解带宽的含义。把城市的道路看成网络,道路有双车道、四车道也许是

2018-01-20 16:10:38 512

原创 HTTP状态码资料整理

一,HTTP状态码http://www.runoob.com/http/http-status-codes.htmlhttps://www.cnblogs.com/shanyou/archive/2012/05/06/2486134.htmlhttp://tool.oschina.net/commons?type=5https://baike.baidu.com/item/HTTP%E

2018-01-15 23:31:47 197

原创 redis事件

一,事件Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。时间事件(time event):Redis服务器中的一

2018-01-14 21:55:37 262

原创 docker网络

Docker学习笔记docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令查看,如图: 一,none 网络none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo ,没有其他任何网卡。容器创建时,可以通过 –network=none 指定使用 none 网络。封闭意味着隔离,一些安全性要求高并且不需要联网的

2018-01-14 17:47:27 217

原创 docker容器运行和资源限制

Docker学习笔记一,运行容器如图运行容器 容器执行完命令后就退出了。容器的生命周期依赖于启动时执行的命令,只要该命令不结束,容器也就不会退出。可以通过加上参数-d以后台方式启动容器,如图 CONTAINER ID 是容器的短id,前面启动容器时返回的使长id。短id是长id的前12个字符。 NAMES字段显示容器的名字,在启动容器时可以通过–name参数显

2018-01-13 17:47:23 3668

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