- 博客(79)
- 资源 (1)
- 收藏
- 关注
原创 我的文学博客(为爱而生,生生不息)
我的文学博客 - 冰水的博客 - 伟大的思维启于笔滴 《青春无烦恼》沉睡的人 (一)走进最原始的森林 我不担心最原始的吼声 因为它们不会伤害我 一个远道正沉睡的客人 (二)黎明迟迟不来 黑夜也不再恐怖 而对于一个久已沉睡着的人 黎明与黑夜也就没有了区别(三) 你叫我三声 起床 起床 起床 我说别吵 别吵 别吵 只是时候尚早(四) 堕落本是堕落者的资本 在别人的眼中还是一张
2017-10-14 14:23:11 1174
原创 我的技术资源归档(分享快乐)
益思于笔滴,识广于累积 - 路漫漫其修远兮,吾将上下而求索我的文学博客 - 冰水 - 博客 - 伟大的思维启于笔滴 我的技术博客 - 方剂各 - 博客 - 伟大的思维启于笔滴 程序员工具集合收集(推荐学习)微信公众平台 (已使用 - 涉及各个功能) IOS开发者必看的全球100个最佳博客 ServiceMesh中文网 51CTO博客-原创IT文章分享平台 易百教程 - 一个技术...
2017-06-19 14:46:34 702
原创 《青春无烦恼》基督之灵爱
文/冰水也许我是在浮夸我自己这么多年不曾主动靠近你现在却要赞美你有人问我你爱他什么我说我爱的是我妈妈最初是追随我妈妈而来现在我不仅要让你知道我的浮夸还要蛮狠警告谁都不可取笑我的言行因为我慢慢体会我自己的爱正在成形基督,我们赞美你福音之后我们同声把它说出口而福音之前我们已经受到恩赐人啊无需要求太多恩赐别说怕因为贪得无厌而失宠这么多年我未开口他已经给了许多外人(非信仰)总问我能得到了什么我说你又能得到什么呢我们有健全的手脚能劳动就是福哪天我们失去了劳动的能力就连说话写字的
2022-03-24 09:31:57 263
原创 《青春无烦恼》因为,所以...
——至2019高考学生,珍重我不是那唯一关心的人很像你们的家人跟亲友会在炽日的街头里等候会在焦急与喜悦中期盼我不是那唯一鼓励的人很像你们的老师跟学长会在深夜的台灯下念叨会在眉头与皱目中牵挂我不是那唯一祝福的人很像你们的同窗跟发小会在新年的彩灯中发信会在手指与电屏中触动因为,我曾经也是你们有过家人跟亲友的期盼有过老师跟学长的牵挂有过同窗跟发小的触动所以,我不曾忘记嘱...
2019-06-25 23:54:27 268
原创 《社交围猎00后》感言
前言 读 我的文学博客 - 冰水 - 博客 - 精思启于笔滴 感言。正文应该说80这代人见过社交产品最广,认识也是比较深的一代人。早起PC端的天下,后来大概08、09年摩托罗拉、诺基亚瞬间轰然倒下那刻,开启了移动闸门,自此一发不可收拾,人首移动,流水不断,“水源”四面八成互联,形成大海,海底世界。这是我们当前看到的情景,也知将来更繁华。社交每五年左右迭代一次,谁也看不清路线,有很...
2018-09-12 10:25:05 350
原创 解决虚拟机ping不通主机
方法一 关闭防火墙,虚拟机可以ping通主机了,说明是Windows7防火墙阻止了。方法二(推荐) 打开WIN7防火墙 > 选择高级设置 > 入站规则 > 找到配置文件类型为“公用”的“文件和打印共享(回显请求 – ICMPv4-In)”规则,设置为允许。 ...
2018-06-29 11:50:30 1139
原创 Nginx安装部署教程
Nginx简介Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤。Nginx安装Linux系统是Centos 6.5 64位,我直接切换到root用户下安装,下载相关组件 Linux系统是Centos 6.5 64位,我直接切换到root用户下安装,下载相关组件 [r...
2018-06-29 10:52:02 285
原创 如何自己实现TCP负载均衡
前言前一段时间我们的服务器经常遭受黑客攻击,真是让人不得安宁。于是本人根据自身情况实现了一套TCP负载均衡。这里也不罗嗦什么其他三方插件,比如后来的Nginx也很强大支持TCP,还有什么HA,有兴趣的可以了解了解。直入话题。如何实现*只有将复杂的策略下沉到服务端,才能根本上解决扩展性的问题*增加一个http接口,将客户端的“IP配置”与“均衡策略”放到服务端:client每...
2018-04-02 20:31:35 2979 1
原创 JAVA序列化对象SerialVersionUID
前言JAVA中序列化对象主要有两个目的,一个是钝化存储对象,另一个是通过网络传输对象。至于如何使用,想必大家都知道,这里详细说明。钝化存储对象何为钝化存储对象?其实在我们实践经常使用,我们从字面意思也大概明白。这里我举个典型使用场所,那就是对象Session保持,浏览器Session机制中有个缓存概念,可将Session在网络传输对象缓存到本地文件中,在实例化跟反序列化时候方便解码对象...
2018-03-28 11:20:41 290
原创 《代码干货》Quartz集合批量多线程处理
前言我们经常使用spring quartz 处理各种业务,那么如何使用多线程批量处理,而且保证不会有重复数据。想必处理过这类业务的朋友,一定了解Executors或者ThreadPoolTaskExecutor这类工具。这里不对这些东西做任何解说。因为时间关系,我按自己的方式实现,直接提供代码供大家参考。需要返值的public class GameConsumerJob {
2018-01-12 16:56:38 2106
转载 MySQL中ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE 语法的特点MySQL私有语法,非SQL92标准语法。MySQL自身通过唯一键的查找进行数据排重,并决定INSERT或UPDATE。与原子操作SELECT+INSERT OR UPDATE 的方案进行对比优点: 减少网络连接开销,总体效率上也会略高;代码上书写简洁、方便。对已有表批量插入新数据时尤其方便。缺点:迁移数据层产品时
2018-01-11 21:01:20 300
转载 【性能深度优化】MongoDB
前言MongoDB是一个高性能可扩展基于文档的NoSQL数据库,高性能也需要在多个关键维度的配置,包括硬件、应用模式、模式设计、索引、磁盘I/O等。存储引擎WiredTiger是3.0以后的默认存储引擎,细粒度的并发控制和数据压缩提供了更高的性能和存储效率。3.0以前默认的MMAPv1也提高了性能。在MongoDB复制集中可以组合多钟存储引擎,各个实例实现不同的应用需求。硬
2018-01-05 20:45:04 3140
原创 Netstat 状态分析
Netstat 状态分析用netstat -an命令查看!再stat下面有一些英文,简单说一下这些英文具体都代表什么: LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求 SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having se
2018-01-04 13:50:16 314
原创 架构师需要注意DDoS攻击
前言公司的几款游戏上线后,经常半夜遭受外部攻击,攻击类型基本是DDos,为此研发跟运维实施各种方案对付,比如集群、负载、专门IP检查策略服务、三方高仿等。即便如此也不能完全保证不受影响,调查攻击类型基本是UDP盲包疯刷蜂拥而来,而这类攻击除了使用三方应急策略,其他于研发而言真是束手无策。但作为架构设计者,我们应该尽量避免自身瓶颈给攻击者造就便捷攻击方式。所以有必要去理解DDos攻击相关问题,知己知彼
2017-12-22 15:43:50 361
转载 容器技术在企业实施的几个关键问题
前言当今容器技术被广泛关注,已经有越来越多的企业开始布局或者已经采用容器技术来构建自己的云基础设施。 在用容器设计新的微服务应用架构或者如何改造现有的应用时,应该了解哪些因素和相关特性,是企业在实施容器平台时必须要考虑的。很多传统行业和互联网企业相比在容器技术方面起步稍晚,但近两年随着容器关注度的空前火热,企业进步也很快,大力推进容器相关能力的建设。基于 Docker 的容器,是一种更轻量级的虚拟
2017-12-22 14:15:13 924
原创 RabbitMQ使用记录
文档 【安装】https://www.rabbitmq.com/install-debian.html 【访问控制】https://www.rabbitmq.com/access-control.html 【网络】https://www.rabbitmq.com/networking.html 【配置】https://www.rabbitmq.com/configure.htm
2017-12-16 17:18:02 1090
原创 MySQL使用存储实现快速创建多分表
经常设计数据库,有时候分表数量比较大,单个创建实在浪费时间,于是写了一个存储模板,可以快速创建多张分表,比如:-- 程序触发器DROP PROCEDURE IF EXISTS `gameLog_month`; create procedure gameLog_month(in val_s int, in val_e int)begindeclare i int;set i=val_s;w
2017-12-08 16:14:32 4186
原创 【精品文章推荐及点评】六个人如何运维一万台服务器?
前言推荐阅读51CTO技术栈 中一篇文章提到 六个人如何运维一万台服务器? 点评每个公司随着规模发展都要经历这样的过程,设计概念中提到不要过早优化,说的就是在早起发展简单过度,随着规模化慢慢提升。最近几年微服务量化确实给运维增加压力,从运维角度说,监控服务基本基于业务跟踪定位,如文中说的,一旦定位交由具体研发负责人跟踪解决。对研发而言,所以文章里少了一个由研发主导运维协助实施的对集合微程序“链式划”
2017-12-08 10:33:13 310
转载 【深度分析】Docker的link机制
摘要什么是docker的link机制 同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地址来通信,也可以通过宿主机的ip加上容器暴露出的端口号来通信,前者会导致ip地址的硬编码,不方便迁移,并且容器重启后ip地址会改变,除非使用固定的ip,后者的通信方式比较单一,只能依靠监听在暴露出的端口的进程来进行有限的通信。通过docker的link机制可以通过一个name来和另一
2017-12-02 15:52:29 1016
原创 Linux运维常用命令汇总
线上查询及帮助命令 (2 个)man查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 help查看 Linux 内置命令的帮助,比如 cd 命令。文件和目录操作命令 (18 个)ls全拼 list,功能是列出目录的内容及其内容属性信息。 cd全拼 change directory,功能是从当前工作目录切换到指定的工作目录。 cp全拼 copy,其功能为复制文件或目录。 find查
2017-12-01 19:45:24 1311 1
原创 关于服务端数据加密
前言目前的情况下API被很多地方应用,随之而来的是API的安全性问题。安全性问题有以下几个方面: *> DDoS(拒绝服务攻击),接口被恶意调用,使真实的用户无法享受到正常畅通的服务。这个比较单纯,也比较容易处理,通过IP限制来做,并且辅以一些硬件设备应该就没问题了,同时服务器供应商也可以提供相应的服务。 传输过程中数据被截获,http数据包是可以被截获到的,这一点我们无...
2017-11-30 11:54:39 1916
原创 【MySQL性能分析(1)】processlist命令详细
前言processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)。使用show processlist 命令进行输出,也可以使用以下语句来进行操作mysql> SELECT * FROM information_schema.pr
2017-11-29 15:05:04 553
原创 【深度分析】ServletContextListener
ServletContext : 每一个web应用都有一个 ServletContext与之相关联。 ServletContext对象在应用启动的被创建,在应用关闭的时候被销毁。 ServletContext在全局范围内有效,类似于应用中的一个全局变量。ServletContextListener: 使用listener接口,开发者能够在为客户端请求提供服务之前向ServletContext中添加任
2017-11-22 20:32:50 233
原创 【架构性能分析(4)】Web性能压力测试Webbench
我的文学博客 - 冰水 - 博客 - 伟大的思维启于笔滴 Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。Webbench能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准
2017-11-21 14:51:40 300
原创 【架构性能分析(3)】Tomcat 并发优化
首先先介绍一款知名的网站压力测试工具Web Bench Homepage能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webbench的标准测试可以向我们展示服务器的两项内容:每分钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商
2017-11-21 10:34:24 223
原创 程序员工具集合
工欲善其事必先利其器Java源代码搜索 Grepcode 是一个面向于Java开发人员的网站,在这里你可以通过Java的projects、classes等各种关键字在线查看它对应的源码,知道对应的project、classes等信息。 更方便的是,能提供非常多不同版本的源码在线查看、jar包、源码jar包、doc的下载。 同样,你也可以之间使用xxx-1.2.1.jar类似这样的名字直接找到对应
2017-11-20 17:56:54 467
原创 【架构性能分析(2)】Tomcat 配置优化
前言:作为一个系统管理员(运维/架构师),我们时刻关注服务的变化情况,今天分享一篇关于Tomcat 配置优化相关性的文章。首先需要了解Tomcat主要配置文件Service.xml结构信息:Server:元素是整个配置文件的根元素。表示整个Catalina容器。属性: className:实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache
2017-11-13 21:39:26 744
原创 【架构性能分析(1)】MySQL性能瓶颈排查定位
导读:作为一个系统管理员(运维/架构师),我们时刻关注服务的变化情况,今天分享一篇关于MySQL性能瓶颈排查定位相关性的文章。OS层面的检查确认首先要确认当前是否存在哪些进程引起的负载高,以及这些进程卡在什么地方,瓶颈是什么。通常来说,服务器上最容易成为瓶颈的是磁盘I/O子系统,因为它的读写速度通常是最慢的。即便是现在的PCIe SSD,其随机I/O读写速度也是不如内存来得快。当然了,引起磁盘I/
2017-11-13 20:35:04 1454
原创 Nginx负载均衡服务器的双机高可用
如果将Web服务器集群当作一个城池,那么负载均衡服务器则相当于城门,重要性不言而喻。如果“城门”关了,与外界的通道也就断了,如果只要一台均衡服务器,当该服务器发生故障时,则会导致整个网站无法访问。因此我们需要来两台以上的服务器,实现故障转移与高可用。双机高可用一般是通过虚拟IP(飘移IP)方法来实现的,基于Linux/Unix的IP别名技术。双机高可用方法目前分为两种:一台服务器加一台热被备务器,
2017-11-08 21:14:17 948 1
原创 java如何实现线程间通信
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。本文涉及代码:https://github.c
2017-11-07 14:38:54 212
原创 MySql-聚集索引-表为什么必须有主键
前几天跟搞C++游戏服务器一同事联动实现一个业务,看到他创建表默认没有主键,于是我建议他添加,同事铮铮有词说,业务根本用不着,多一个字段多浪费,我瞬间无语,于是跟他解说为什么必须添加?针对MySQL5.6版本中的innodb引擎来说,比较规范的数据库表设计(包括我们公司)都会有一条不成文的规定,那就是给每张表一个自增主键。那么自增主键除了有数据的唯一性外,还有什么所用呢?为什么要有自增主键?阅读过《
2017-11-02 17:17:39 2339
原创 spring security oauth2.0配置详解
spring security oauth2.0 实现oauth应该属于security的一部分。关于oauth的的相关知识可以查看阮一峰的文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html目标现在很多系统都支持第三方账号密码等登陆我们自己的系统,例如:我们经常会看到,一些系统使用微信账号,微博账号、QQ账号等登陆自己的系统,我们现在就是
2017-10-31 21:39:53 8804
原创 Git常用命令详单
我每天使用 Git ,下面是我整理的常用 Git 命令一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)
2017-10-31 20:41:24 305
翻译 程序员需要了解的五个定律
前言定律或称法则,可以指导我们并让我们在同伴的错误中学习。这篇文章中,我将介绍我每次设计或实现软件时出现在我脑海的五大定律。其中有些和开发有关,有些和系统组织有关。它们可以帮助你成为合格的软件工程师。墨菲定律“凡事可能出错,就一定出错。”这条定律来源于 Edward Murphy —— 一名航天工程师在 50 年代初对火箭测试失败的回应。这条定律给我们的启示是永远在系统关键地方使用防御性设计,因为
2017-10-26 10:28:11 228
原创 MySQL开发标准规范
数据库表设计1. 库名、表名、字段名使用小写字母,“_”分割。2. 库名、表名、字段名不超过12个字符。3. 库名、表名、字段名见名知意,尽量使用名词儿不是动词。4. 优先使用InnoDB存储引擎。5. 存储精确浮点数使用DECIMAL替代FLOAT和DOUBLE。6. 使用UNSIGNED存储非负数值。7. 使用INT UNSIGNED存储IPV4。【FAQ】8. 整形定义中不添加长度,比如使用I
2017-10-25 10:52:45 269
原创 【深度分析】Java的ClassLoader机制
写在前面:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,loadClass使用双亲委派模式。为了更好的理解类的加载机制,我们来深入研究一下ClassLoader和他的loadClass()方法。源码分析
2017-10-16 18:27:13 263
原创 【深度分析】Java的反编译
什么是编译 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析
2017-10-16 17:40:22 588
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人