2018年1月5日
摘要: 目录 第一步 – 提高JVM栈内存(Increase JVM heap memory) 你使用过tomcat的话,简单的说就是“内存溢出”. 通常情况下,这种问题出现在实际的生产环境中.产生这种问题的原因是tomcat使用较少的内存给进程,通过配置Tomcat的配置文件(Windows 下的cata 阅读全文
posted @ 2018-01-05 16:51 Devin Zhang 阅读(308) 评论(1) 推荐(0) 编辑
  2018年1月4日
摘要: mysql数据库的优化,算是一个老生常谈的问题了,网上也有很多关于各方面性能优化的例子,今天我们要谈的是MySQL硬件优化和系统参数的优化-即优化my.cnf文件 MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。 一、服务器硬件对MySQL性能的影 阅读全文
posted @ 2018-01-04 11:19 Devin Zhang 阅读(7151) 评论(0) 推荐(0) 编辑
  2017年10月26日
摘要: 一、Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y(若不能安装,执行命令yum install epel-release) 2. 启动、停止和重启 service nginx startservice nginx stopservice ng 阅读全文
posted @ 2017-10-26 10:04 Devin Zhang 阅读(15669) 评论(2) 推荐(5) 编辑
  2017年6月13日
摘要: 低读低写并发、低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。 3.开发说明 此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive 阅读全文
posted @ 2017-06-13 15:18 Devin Zhang 阅读(20192) 评论(10) 推荐(13) 编辑
  2017年6月8日
摘要: 1.安装Docker Docker可简单理解为一个轻量级的虚拟机。Docker对进程进行封装隔离,隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker和传统虚拟化方式的不同。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而Docker内 阅读全文
posted @ 2017-06-08 13:49 Devin Zhang 阅读(15114) 评论(1) 推荐(0) 编辑
  2017年5月10日
摘要: 日志存储系统常用技术方案有两种:一是log4j/logback+mongodb的方式,一种是基于ELK的日志存储系统。 日志一般存储在数据库和文件系统中。日志数据要和生产正式库分开存储,否则会影响正式库的运行,带来隐患。另外,为了防止日志存储性能问题,后期可以考虑采用异步的消息队列形式进行存储。 下 阅读全文
posted @ 2017-05-10 18:20 Devin Zhang 阅读(5212) 评论(1) 推荐(0) 编辑
  2017年4月18日
摘要: 微服务架构介绍和RPC框架对比 1.微服务架构 1.1 特征 自动化部署,端点智能化,语言和数据的去中心化控制。 1.2架构 一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。可通过全自动部署机制独立部署,共用一个最 阅读全文
posted @ 2017-04-18 16:06 Devin Zhang 阅读(24602) 评论(0) 推荐(1) 编辑
  2017年4月11日
摘要: 基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等。七牛和阿里的都还可以。 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有那么灵活。图片处理功能弱一点。 2) 负载均衡 可以自己搭建也可以用阿里云的负载均衡服务。自己搭建推 阅读全文
posted @ 2017-04-11 15:00 Devin Zhang 阅读(2143) 评论(0) 推荐(0) 编辑
  2015年8月3日
摘要: 关于CoreData和SQLite多线程访问时的线程安全问题数据库读取操作一般都是多线程访问的。在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱。IOS中常用的两种数据持久化存储方式:CoreData和SQLite,两者都需要设置线程安全,在这里以FMDB来... 阅读全文
posted @ 2015-08-03 14:09 Devin Zhang 阅读(945) 评论(0) 推荐(0) 编辑
  2015年6月15日
摘要: 一、简介Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,... 阅读全文
posted @ 2015-06-15 10:30 Devin Zhang 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 运行时进行编程,类似Java的反射。运行时编程和Java反射的对比如下:1.相同点 都可以实现的功能:获取类信息、属性设置获取、类的动态加载(NSClassFromString(@“className”))、方法的动态调用 下面是iOS中涉及到的相关使用方法 类的动态加载:NSClassFromSt... 阅读全文
posted @ 2015-06-15 10:14 Devin Zhang 阅读(2992) 评论(0) 推荐(0) 编辑
  2014年7月23日
摘要: 1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念。 2.案例 1)一般情况下的类耦合 Main.java 通过上面代码可以看出:Main类与Chinese类和American类之间存在着强耦合 , Chinese和America 阅读全文
posted @ 2014-07-23 14:25 Devin Zhang 阅读(36632) 评论(2) 推荐(8) 编辑
  2014年7月20日
摘要: 1.线程池的引入 引入的好处: 1)提升性能。创建和消耗对象费时费CPU资源 2)防止内存过度消耗。控制活动线程的数量,防止并发线程过多。 使用条件: 假设在一台服务器完成一项任务的时间为T T1 创建线程的时间 T2 在线程中执行任务的时间,包括线程间同步所需时间 T3 线程销毁的时间 显然T = 阅读全文
posted @ 2014-07-20 14:31 Devin Zhang 阅读(28214) 评论(1) 推荐(2) 编辑
  2013年8月7日
摘要: 1 IOS账号注册、程序发布流程 1)http://jamesli.cn/blog/?p=955 2)http://jamesli.cn/blog/?p=966 3)http://jamesli.cn/blog/?p=995 阅读全文
posted @ 2013-08-07 23:08 Devin Zhang 阅读(1000) 评论(0) 推荐(0) 编辑
  2012年10月4日
摘要: 1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类)。要实现Socket的传输,需要构建客户端和服务器端。另外,传输的数据可以是字符串和字节。字符串传输主要用于简单的应用,比较复杂的应用(比如Java和C++进行通信),往往需要构建 阅读全文
posted @ 2012-10-04 21:12 Devin Zhang 阅读(105098) 评论(8) 推荐(7) 编辑