架构设计
李天泉
本科(计算机科学与技术、化学)双学士、北师大软件工程硕士,拥有复合专业背景,曾就职于中国一汽、用友软件、联想集团、达内IT培训集团,从事过企业管理软件、互联网平台等若干项目的研发、实施、管理、咨询等工作,有深厚的技术、业务、管理经验
项目管理经验12年,部门管理经验10年,团队人数最多达到百余人
开发经验15年,架构设计经验12年,IT软件方向从业16年
展开
-
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
目录(?)[-]一环境说明二准备工作21 安装JDK2 添加Hosts映射关系3 集群之间SSH无密码登陆三Hadoop集群安装配置1 修改hadoop配置四ZooKeeper集群安装配置五HBase集群安装配置六启动集群Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境一、环境说明转载 2017-10-30 07:59:16 · 287 阅读 · 0 评论 -
Flume与Kafka整合案例详解
环境配置名称版本下载地址Centos 7.064x百度Zookeeper3.4.5 Flume1.6.0 Kafka2.1.0 配置Flume这里就不介绍了零基础出门右转看Flume的文章fl转载 2017-11-18 21:24:33 · 340 阅读 · 0 评论 -
Java实现Kafka读写笔记
[html] view plain copy1.POM.XML [html] view plain copydependencies> dependency> groupId>org.apache.kafkagroupId> art转载 2017-11-18 21:26:33 · 612 阅读 · 0 评论 -
微服务:Eureka+Zuul+Ribbon+Feign+Hystrix构建微服务架构
本案例将打架一个微服务框架,参考来源官方参考文档 微服务:是什么?网上有一堆资料。不做叙述。 标题提到的框架是spring-cloud-netflix相关开源框架。 demo源码github摘自官方说明:Spring Cloud Netflix provides Netflix OSS integrations for Spring Boot apps throug转载 2017-11-05 09:33:57 · 251 阅读 · 0 评论 -
Maven 生产环境 测试环境 开发环境 打包配置
构建企业基础架构,团队培训计划。项目在GIT开源共享。https://github.com/FrameReserve【资源文件拆分不同环境】【pom.xml】配置[html] view plain copy profiles>转载 2017-11-25 15:40:01 · 207 阅读 · 0 评论 -
通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到三个不同的环境,开发环境、测试环境以及生产环境,通常这三个环境会有很多配置参数不同,例如数据源、文件路径、url等,如果每次上线一个新版本时都手动修改配置会十分繁琐,容易出错。spring 为我们提供了 profile 机制来解决这个问题。spring允许我们通过定义 profile 来将若干不同的 bean 定义组织转载 2017-11-25 15:43:03 · 221 阅读 · 0 评论 -
部署Jenkins
百度百科里给Jenkins的定义是,“持续集成软件平台+工具“,没用Jenkins之前看不懂,用了之后还是看不到看不懂这个说法。找到了Jenkins官网的解释“The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and a转载 2017-11-26 00:26:16 · 198 阅读 · 0 评论 -
Jenkins+Maven+SVN自动部署配置文档
基本版本JenKins:2.19.1, Maven:3.1环境要求:Java 7256MB free memory1GB+ free disk spaceJenkins官网: https://jenkins.io/index.html官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Ho转载 2017-11-26 00:26:23 · 246 阅读 · 0 评论 -
高并发分布式系统中生成全局唯一Id汇总
数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求: 1 不能有单点故障。 2 以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。 3 可以控制ShardingId。比如某一个用户的文章要放在同一个分片内,这样查询效率高,修改也容易。 4 不要太长,最好转载 2018-01-07 21:21:43 · 191 阅读 · 0 评论 -
JAVA实现长连接(含心跳检测)Demo
实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的。 如果,长时间未发送维持连接包,服务端程序将断开连接。客户端: Client通过持有Socket的对象,可以随时(使用sendObject方法)发送Massage Object(消息)给服务端。 如果keepAliveDelay毫秒(程序中是转载 2017-11-14 11:42:37 · 643 阅读 · 0 评论 -
判断打开网页的终端是什么设备(PC、手机等)
var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVersion; return { //移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE转载 2017-11-04 18:36:46 · 3227 阅读 · 0 评论 -
Mysql分库分表方案
Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对转载 2017-11-04 17:32:24 · 166 阅读 · 0 评论 -
hadoop-2.7.3 + hive-2.3.0 + zookeeper-3.4.8 + hbase-1.3.1 完全分布式安装配置
近期抽空搭建了一下hadoop-2.7.3 + hbase-1.3.1 + zookeeper-3.4.8 + hive-2.3.0完全分布式平台环境,网上查询了很多相关资料,安装成功后,特意记录下来以供参考。一、软件准备 VMware12、hadoop-2.7.3、hbase-1.3.1、zookeeper-3.4.8、hive-2.3.0、jdk-8u65-linux-x64转载 2017-11-11 12:33:08 · 722 阅读 · 0 评论 -
LVS+Keepalived实现负载均衡和双机热备
1. 说明 在《keepalived实现Tomcat服务双机热备》中主要讲述如何安装及配置Keepalived来实现双机热备,主要功能是:MASTER和BACKUP两台服务器处于热备状态,对用户虚拟一个IP,屏蔽底层的真实IP地址,用户通过虚拟IP访问当前的MASTER服务器;当MASTER服务器宕机或者发生其他故障时,BACKUP自动切换为MASTER,这个过程对用户时透转载 2017-11-02 17:01:34 · 240 阅读 · 0 评论 -
Hadoop和Hive单机环境搭建
下载hadoophadoop下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/core/这里下载的版本是1.0.3$ mkdir hadoop$ wget http://www.fayea.com/apache-mirror/hadoop/core/stable/hadoop-1.0.3.tar.gz .安装jav转载 2017-11-11 21:41:43 · 824 阅读 · 0 评论 -
SparkSQL与Hive on Spark的比较
简要介绍了SparkSQL与Hive on Spark的区别与联系一、关于Spark简介在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题。架构Spark的架构如下图所示,主要包含四大组件:Driver、Master、Worker和Executor。S转载 2017-11-12 11:11:37 · 641 阅读 · 0 评论 -
关于前端开发中的“收口”思想
什么是收口所谓条条大路通罗马,但如果让我来设计通向罗马的各种大路,我至少会做两件事情:① 让罗马只有一个入口② 让罗马只有一个出口这样做的好处是,无论你路从哪来,我可以统一在入口处给你打上各种标志,我也可以在你离开罗马时给你留点纪念。当然罗马自然不只一个出口入口,但是每个出口入口一定有一套相同的规定,否则就会出问题。具体到当今的工作场景,高速公路又是一个收口转载 2017-11-03 18:03:38 · 1608 阅读 · 0 评论 -
Hybrid App的架构与实现
伴随着移动互联网产业的兴起,各式App层出不穷,我们迫切需求一种更快速、成本更低、技术更为成熟的项目开发方案,而H5的成熟让我们看到了希望,使得Web App开始崛起。为了提高用户体验,目前网站一般分为3个版本,简版、移动版、电脑版,简板Web普遍是基于WAP2.0开发的,界面视觉效果差、功能简单;移动版则普遍使用H5开发,适用于现在大家普遍使用的移动上网设备,拥有更好的视觉效果、交互方式,迥然转载 2017-11-03 18:08:57 · 776 阅读 · 0 评论 -
url增加签名验证防篡改
学习给API加上签名加密验证功能,摘抄了腾讯支付的说明书文档————————————————————————————————————————————————————————————————为了提高传输过程参数的防篡改性,必须使用签名参数sig。签名参数sig生成的步骤第1步: 把需要包含在签名中的参数按key升序排序。 具体需要包含哪些参数,见各接口参数说明中关于s转载 2017-11-04 11:57:30 · 2170 阅读 · 0 评论 -
Java序列化技术性能分析(JDK原生与Protostuff)
熟悉Java的朋友应该知道Java有一个叫序列化的技术,即把一个Object转换为可保存,可传输的流数据。相应的,同时存在反序列化,即将流数据转换为Object类,而在转换的过程中,该Object保持者其自身的状态。不会应该序列化或者反序列化而丢失。通常在缓存中,RPC(远程调用),或者长久保存会话信息时,大有用处。关于序列化的时候,大部分情况下想到的是对于需要序列化的对象实现Serial转载 2017-11-04 15:45:00 · 450 阅读 · 0 评论 -
Kurento简介
WebRTC是一项开源技术,它能够通过JavaScript API实现网页浏览器间的实时通信。它被认为是一种P2P技术,不用通过任何类型的媒体中继, 能实现浏览器间的实时通信。这种方式能足以实现一些基本的应用,但是有些功能,如组通信,媒体流录制,媒体广播或媒体转码是很难实现的。基于这个原因,很多应用还是需要有媒体服务器。 ![Peer-to-peer WebRTC approach vs. We...转载 2018-07-31 16:59:10 · 8329 阅读 · 0 评论