架构师
文章平均质量分 91
RonTech
执着、认真;喜欢技术,但更热爱技术+行业;热爱生活,但更喜欢与人交往;喜欢学习,但更注重与人分享。
展开
-
什么是架构,什么是架构师?
从内心讲我真的不想回答架构具体需要做什么,架构师应该具体负责什么。因为从实际情况看, 在不同的系统层级,不同的需求下架构师的职责也会不同;从不同的技术角度看,架构师又是个变色龙,一时是技术的大拿,一时是技术的规划者,一时是技术团队的指挥者。那么如何回答,”什么是架构,什么是架构师“这个问题呢?这或许需要搞清楚另外一个问题—一名程序员如何走上架构师之路?我从许多朋友那里了解到了很多实际案例, 程序员走转载 2017-08-18 11:10:52 · 4665 阅读 · 1 评论 -
分布式系统基础-消息队列之JMS
JMS并没有定义消息的网络报文格式及相关的通信命令协议,但它以Java API的方式给出了一个可以纳入到J2EE环境中的消息中间件所应具备的编程级接口。同时,JMS归纳总结了两种通用的消息传递模型,深入理解这两种消息模型有助于我们准确把握消息中间件的原理和典型的使用场景。第一个消息模型是点对点消息通信模型。如下图所示,发送方Client1(Producer/Sender) 与消费者Client 2原创 2017-10-18 20:41:16 · 1091 阅读 · 0 评论 -
聊聊微服务架构
互联网时代,在极端情况下,每天都有新需求要开发上线。随着代码量及团队成员的增加, 传统单体式架构的弊端日益凸显,严重制约了业务的快速创新和敏捷交付,与互联网所追求的 “唯快不破”的目标越来越远。这就是微服务架构兴起的时代大背景。 微服务架构( Microservice Architecture) 是近两年来最流行的架构术语之一,大名鼎鼎的 Martin Flower曾这样描述原创 2017-10-20 17:37:02 · 4604 阅读 · 0 评论 -
如何在三年内成长为一名JAVA架构师
工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速成长为一名技术专家。转载 2017-10-17 09:49:12 · 2475 阅读 · 0 评论 -
13、Spring技术栈-整合dubbo、zookeeper实现高可用分布式微服务实战
在Spring技术栈-整合dubbo、zookeeper一文中我们已经讲述了如何整合Spring、dubbo、zookeeper来开发一个分布式的应用。本文在上文的基础上来描述如何打包部署dubbo微服务,实现一个高可用的微服务集群,如果不知道如何整合Spring、dubbo、zookeeper,请读者先阅读上文,然后再阅读此文进行微服务的打包和部署操作。原创 2017-11-17 16:52:14 · 3059 阅读 · 0 评论 -
轻量级微服务架构及最佳实践
架构需要由人去设计,这些人被称为架构师。或许很多人并未授予架构师的头衔,但自己却从事着架构的工作。我们认为,架构这项工作永远都需要由人去完成,可能短期内都无法由机器来取代。如果我们不理解什么是架构,或者对架构师的职责感到疑惑,那么很难让架构这项工作有效地落地。我们将在本节重新认识架构,并重新定义架构师的职责。转载 2017-11-17 18:18:55 · 622 阅读 · 0 评论 -
14、使用Nginx+Tomcats搭建高可用负载均衡集群
负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。本实例通过使用Nginx作为负载均衡器,Tomcats作为后台Web服务器,部署一个高可用的Web应用.原创 2017-11-20 16:43:46 · 460 阅读 · 0 评论 -
图文还原HTTPS原理
本文用图文的形式一步步还原HTTPS的设计过程,进而深入了解原理。 A在向B进行通信时,如果是以明文的方式进行通信,中间窃听者会获得双方的传输的数据hello。HTTPS要解决如下问题:A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容;如何做到安全?这个问题,很多人马上就想到了各种加密算法,什么对称加密、非对称加密、DES、RSA、XX、。。。。...转载 2018-03-23 17:29:14 · 448 阅读 · 0 评论 -
系统持续集成-SonarQube安装
SonarQube介绍SonarQube是一个管理代码质量的开放平台,它可以从七个维度检测代码质量(为什么要用SonarQube): - 复杂度分布(complexity): 代码复杂度过高将难以理解、难以维护重复代码(duplications): 程序中包含大量复制粘贴的代码是质量低下的表现单元测试(unit tests): 统计并展示单元测试覆盖率编码规范(coding rul...原创 2018-05-16 15:51:27 · 503 阅读 · 0 评论 -
系统持续集成-SonarQube+Maven 分析器插件的配置与使用
安装完成SonarQube之后,我们的系统中是没有项目的。 那么接下来我们来使用SonarQube+Maven 分析器插件来使用SonarQube分析我们的代码。1、Maven配置在 Maven 本地库中的 settings.xml 配置文件中的节点中添加如下配置:<profile> <id>sonar</id> &...原创 2018-05-16 15:57:16 · 4179 阅读 · 1 评论 -
持久化存储-MySql拓展
先说一个概念 ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability). 这是可靠数据库所应具备的几个特性.一、MySql拓展1、业务拆分随着网站的业务不断发展单个库访问量越来越大,因此不得不对系统业务进行拆分。...原创 2018-06-04 16:24:22 · 4309 阅读 · 0 评论 -
Linux上安装MySQL
本文主要演示在Linux系统上如何安装MySQL最新版本MySQL 8.0自带MySQL卸载安装前,我们可以检测系统是否自带安装 MySQL,如果自带安装,那么卸载原来安装的MySQLrpm -qa | grep mysql如果显示安装了MySQL,那么可以卸载 我们系统显示如上,那么我们通过如下命令将已安装的信息卸载(当然这一步视不同情况而定,如果你的机器上尚未...原创 2018-06-04 16:30:48 · 1548 阅读 · 0 评论 -
MySQL 8.0主从(Master-Slave)配置
MySQL 主从复制的方式有多种,本文主要演示基于基于日志(binlog)的主从复制方式。MySQL 主从复制(也称 A/B 复制) 的原理Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件, 这些记录叫做二进制日志事件(binary log events);Slave 通过 I/O 线程读取 Master 中的 binary l...原创 2018-06-04 16:43:02 · 46534 阅读 · 14 评论 -
Atlas实现MySQL读写分离
Atlas安装mkdir /data/atlascd /data/atlaswget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm安装命令rpm -i Atlas-2.2.1.el6.x86_64.rpm安装位置/usr/local/mys...原创 2018-06-07 17:30:41 · 962 阅读 · 0 评论 -
8、Zookeeper服务注册与发现原理浅析
了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下Zookeeper是如何实现服务的注册与发现的。使用Zookeeper实现服务注册与发现,主要应用的是Zookeeper的Znode数据模型和Watcher机制,因此咱们先从Zookeeper的数据模型说起。1、Zookeeper数据模...原创 2019-10-01 15:48:04 · 5204 阅读 · 3 评论 -
软件架构需要考虑的基本原则
架构尽可能的简单,清晰,不过度设计。稳定业务和易变业务要分离处理,核心业务和非核心业务要分离处理,电商业务和辅助流程要分离,应用和数据要分离,服务和实现细节分离,前台和后台分离。原创 2017-09-25 15:40:04 · 3298 阅读 · 2 评论 -
分布式系统设计理念
首先,分布式系统的首要目的是提升系统的整体性能和吞吐量。如果最终设计出来的分布式系统占用了10台机器才勉强达到单机系统的两倍性能,那么这个分布式系统还有存在的价值吗?另外,即使采用了分布式架构,也仍然需要尽力提升单机上的程序性能,使得整体性能达到最高。所以,我们仍然需要掌握高性能单机程序的设计和编程技巧,例如多线程编程、多进程高性能IPC通信、高性能的网络框架等。其次,任何分布式系统都存在让人无法回原创 2017-09-26 17:05:34 · 2964 阅读 · 0 评论 -
学会思考,而不只是编程
中国人常说“授之以鱼不如授之以渔”。如果说教授编程是授之以鱼,那么教授计算机科学就是授之以渔。为什么说学习计算机科学比学会编程要重要得多?来听听 Yevgeniy Brikman 的解释。现如今,似乎每个人都在学习编程:Bill Gates、Mark Zuckerberg和 Chris Bosh 这些名人在 Code.org 网站上告诉人们每个人都拥有编程的能力;CoderDojo 项目在世界各地大转载 2017-08-18 15:53:40 · 582 阅读 · 1 评论 -
Web前端性能优化之CDN加速
1、什么是CDN? 在介绍CDN加速之前,我们先来简单的了解一下什么是CDN?CDN(Content Delivery Network)即内容分发网络,其基本思路是尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输更快、更稳定。通过在网络各处放置节点服务器所构成的现有互联网基础之上的一层虚拟网络,CDN系统能够实时的根据网络流量和各节点的连接,负载状况以及用户的距原创 2015-10-17 11:36:57 · 5814 阅读 · 0 评论 -
Web前端性能优化之反向代理
前面我们介绍过怎么通过减少Http请求和CDN的方式来优化Web前端性能,今天我们就来简单的介绍一下通过反向代理来优化Web前端性能。首先我们来了解一下什么叫反向代理?1、正向代理与反向代理? 正向代理是位于客户端和原始服务器之间的服务器,为了能够从原始服务器获取请求的内容,客户端需要将请求发送给代理服务器,然后再由代理服务器将请求转发给原始服务器,原始服务器接受到代理原创 2015-10-17 11:38:21 · 5285 阅读 · 0 评论 -
Web前端性能优化之浏览器访问优化
一个已经上线运行的网站,小到一般的企业站,大到类似淘宝、京东这样的大型电子商务网站,在从开发一直到运行都需要考虑一个问题,那就是性能。原创 2015-10-04 12:52:49 · 2241 阅读 · 0 评论 -
分布式系统架构网络之IDC机房
我们开发的互联网应用被部署到IDC机房里的某个服务器上,从而完成了应用互联网的接入,所以我们接下来学习一些IDC机房的相关知识。IDC机房又被称为互联网数据中心(Internet Data Center)或者数据中心,IDC不仅是数据存储的中心,还是数据流通的中心。IDC机房是标准化的电信专业级机房,为企业、政府提供服务器托管,租用及相关增值等方面的全方位服务。一开始,IDC机房主要是联通、电信等运原创 2017-09-28 16:46:39 · 18845 阅读 · 0 评论 -
Redis集群配置-配置过程中出现的问题及解决方案
在Centos下,手动安装Ruby,安装完成后,输入命令行ruby后,却提示-bash: /usr/bin/ruby: No such file or directory解决问题之前,先确认一个情况,输入命令/usr/local/bin/ruby --version如果有版本信息,那说明ruby被装到了该目录下,而非系统认为的 /usr/bin/ruby解决方法是在系统默认运行ruby的位置原创 2017-10-27 16:35:19 · 936 阅读 · 0 评论 -
分布式系统基础-消息队列之Kafka
相对于前面所说的那些MQ前辈们,Kafka可谓是不走寻常路的“天才少年”。与久负盛名的前辈们不同,Kafka从一开始就是走“互联网的野路子”,它抛弃了很多华而不实的企业级特性,专注于高性能与大规模这两个互联网应用的核心需求,并全面采用了新一代的分布式架构 的设计理念,从基因和技术两方面拉开了与前辈们的距离。我们先来看看Kafka的一些激动人心的特性。高吞吐量、低延迟:Kafka每秒可以处理几十万条原创 2017-10-20 10:44:42 · 604 阅读 · 0 评论 -
分布式系统基础-消息队列之RabbitMQ
RabbitMQ是挑战Java/JMS消息中间件的产物,也是第二代消息中间件,它是实现了AMQP消息模型的重要产品,所以我们需要先了解一下AMQP模型相关的内容。AMQP模型如下图所示,每个Exchange (信箱/交换机)绑定(Binding)了0到N个Queue(队列),当收到Publisher发布的Message后,Exchange会根据自身的类型结合路由规则来确定此消原创 2017-10-20 10:27:20 · 894 阅读 · 0 评论 -
分布式系统基础-消息队列之ActiveMQ
ActiveMQ是J2EE中 JMS消息通信规范的一个实现,也是目前还在活跃和发展的最古老的第一代MQ,自从2004年成熟以后就迅速传播开来,经过多年的发展,逐步奠定了它在Java/J2EE圈子里的开源霸主地位,可谓生生不息。ActiveMQ除了作为独立的消息中间件使用,还经常在某些ESB (Enterprise Service Bus)产品中作为总线基础设施( Bus Infrastructur原创 2017-10-18 20:55:24 · 1325 阅读 · 1 评论 -
分布式系统基础-消息队列概述
消息队列(Message Queue,MQ)其实是一个古老的计算机术语,UNIX进程间通信就是用到了消息队列技术:一个进程把数据写入某个特定的队列中,其他进程可以读取队列中的数据,从而实现异步通信能力。而后来我们所说的“消息队列”通常指独立的消息队列中间件。不管是最早的进程间通信的消息队列还是独立的消息队列中间件,他们相对于RPC通信来说都有以下很明显的优势。原创 2017-10-18 20:31:13 · 555 阅读 · 0 评论 -
分布式系统基础-全文检索
我们每个人解除互联网都是从互联网搜索开始的,虽然大家常用的搜索引擎可能不同,搜索的关键词也可能不同,但是我们习惯经常在网上搜索的方式来快速学习技术并解决日常工作中所遇到的各种技术问题,如果没有互联网搜索引擎,那么恐怕我们将会有很多的人要失业了。如何在海量的网页信息中准确且快速的找到包含我们所搜索关键字的所有网页并合理的排序展示,这的确是一个很有挑战的问题。除了我们日常工作中使用的搜原创 2017-10-17 16:15:22 · 12554 阅读 · 0 评论 -
分布式系统基础-远程过程调用(RPC)
RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的一种多进程间的通信机制。不同于复杂的Socket通信方式,RPC的初心是设计一套远程通信的通用框架,这个框架能够自动处理通信协议、对象序列化、网络传输等复杂细节,并且希望开发者使用这个框架以后,调用一个远程机器上的接口代码与以本地方法调用的代码“看起来没什么区别”,从而大大减小分布式的开发难度,原创 2017-10-10 21:49:31 · 4322 阅读 · 0 评论 -
分布式系统基础-分布式事务
事务是数据库运行中的一个逻辑工作单位,工作单元内的一系列SQL命令具有原子性操作特点,这些命令要么完全成功执行,要么完全撤销或不执行,如果是后者,则表现为数据库内的最终数据没有发生任何改变。事务通常由数据库中的事务管理子系统负责处理。原创 2017-10-08 13:27:06 · 1104 阅读 · 0 评论 -
分布式系统的一致性原理
对于分布式系统,我们必须深刻理解和牢记一点:分布式系统的不可靠性。“可靠性”是指系统可以无故障的持续运行,如果一个系统在运行中意外宕机或者无法正常使用,那么他就是一个不可靠的系统,即使宕机和无法使用的时间很短。我们知道,分布式系统通常是由独立的服务器通过网络松散耦合组成的,而网络本质上是一个复杂的I/O系统,而通常情况下,I/O发生故障的概率和不可靠性远远高于主机的CPU和内存,加之网络设备的引入,原创 2017-10-06 17:54:02 · 842 阅读 · 0 评论 -
9、Zookeeper分布式锁原理浅析
了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下使用Zookeeper实现分布式锁的简单原理。使用Zookeeper实现分布式锁,主要是基于Zookeeper的临时顺序节点来实现的,因此首先我们先简单了解一下Zookeeper的Znode类型。1、Zookeeper的Znode类型...原创 2019-10-08 10:16:05 · 1320 阅读 · 1 评论