摘要: 一、是什么 在聊线程池之前,想厘清并发和并行的概念。 并发(Concurrency)的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。 从微观角度来讲:所有的并发处理都有排队等候,唤醒,执行等这样的步骤,在微观上他 阅读全文
posted @ 2018-08-04 16:49 qhj348770376 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 看到一句很牛逼也很能拿出来装逼的话:比较糟糕的技术文档主要特征之一就是——用专业名词来介绍专业名词。用这句话来解释官方文档对注解的解释很恰当:Java 注解用于为 Java 代码提供元数据。 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置 阅读全文
posted @ 2018-07-27 15:25 qhj348770376 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一、起 支付系统突然出现频繁的超时,查看error日志没有什么发现,凭经验去gc日志瞅一眼,有频繁的full gc,而且每两次gc,老年代会有80%的内存无法被回收,基本确认是系统出现内存泄漏,导致老年代空间被占满,频繁触发full gc,full gc 触发stop the word,导致业务接口 阅读全文
posted @ 2018-07-21 15:15 qhj348770376 阅读(2247) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 服务治理的内容应该是包含但不仅限于以下点:服务定义,服务版本治理,服务迁移,服务消息模型,统一鉴权(应用鉴权、用户鉴权、OAuth鉴权、ACL),服务发现(注册中心),服务变更管理,服务监控,服务扩容缩容,服务自我保护,服务降级,服务授权防攻击,服务上线验证和灰度发布,服务问题定位和跟踪 阅读全文
posted @ 2018-07-15 23:40 qhj348770376 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 一、开发环境:Maven+Tomcat+Spring 二、项目构建 1、以项目名称分别创建构建脚本文件ttyc-pay.sh和存放代码的文件文件夹ttyc-pay 2、进入代码文件夹,从GitLab拉代码 git clone git@gitlab.XXX 3、编写构建脚本ttyc-pay.sh sh 阅读全文
posted @ 2018-07-11 19:38 qhj348770376 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 SOA架构,是一种粗粒度、开放式、松耦合的服务结构,要求软件产品在开发过程中,按照相关的标准或协议,进行分层开发。以粗粒度的业务服务作为基础来对公司业务进行建模;以业务服务为基础来实现的IT系统更灵活、更易于重用、也更快地应对企业业务需求的变化。 SOA将应用程序的不同功能单元通过这些服 阅读全文
posted @ 2018-07-07 19:10 qhj348770376 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个 阅读全文
posted @ 2018-07-04 23:25 qhj348770376 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 所谓读写分离,就是应用程序对数据库的操作请求分发到读库和写库,查询操作分发到读库(从库),增删改操作分发到写库(主库)。 二、有什么用 读写分离主要是为了解决业务数据量大后,读写操作在一个库上操作引起数据库性能问题,通过将请求按类型分发,缓解数据库压力,提高应用程序的执行效率。 三、怎么 阅读全文
posted @ 2018-06-29 19:59 qhj348770376 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 一、是什么 Zookeeper 作为一个分布式高可用、高性能的开源协调服务框架,主要用来解决分布式集群中应用系统的一致性和多个进程间的同步控制问题,分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式 阅读全文
posted @ 2018-06-21 20:59 qhj348770376 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一、fail-fast和fail-safe fail-fast: 在用迭代器遍历一个集合对象时,如果遍历过程中(当前线程或者其他线程)对集合对象的内容进行了增删改,则会抛出Concurrent Modification Exception,称为迭代器的快速失败特性。 原理:迭代器在遍历时直接访问集合 阅读全文
posted @ 2018-06-15 11:13 qhj348770376 阅读(175) 评论(0) 推荐(0) 编辑