一.写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么会这样呢? 原因是中间件的职责相对单一,客户端的使用虽然简单,但整个环境搭起来却不容易.所以对于系列中的几篇中间件文章,我们重点放在解决门槛问题,把服务端环境搭好(后期可云或运维解决),把中间件的基本职责和功能介绍好,把客户端 Demo 写好,让程序员抬抬脚,在调试代码中即可轻松入门. 根据我们以往…
Redis的使用难吗?不难,Redis用好容易吗?不容易.Redis的使用虽然不难,但与业务结合的应用场景特别多.特别紧,用好并不容易.我们希望通过一篇文章及Demo,即可轻松.快速入门并学会应用. 一.Redis 简介 Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网上的话来说,Redis是一个数据结构存储,可用作数据库.缓存和消息中间件.相对于传统的Key-Value存储Memcached来说,Redis具有如下特点: 速度快 丰富的数据结构,除Str…
一.ZooKeeper 是什么 Apache ZooKeeper 由 Apache Hadoop 的子项目发展而来,于 2010 年 11 月正式成为了 Apache 的顶级项目. 相关厂商内容 优秀程序员应该了解的开发实践案例 从C#看开放对编程语言发展的影响 Netflix的工程文化:是什么在激励着我们? 百度贴吧之父:产品经理的发现和成长 Apache Kafka的过去,现在,和未来 相关赞助商   ZooKeeper 是一个开放源代码的分布式协调服务.它具有高性能.高可用的特点,同时也具…
一.Job 简介 Job 类似于数据库中的作业,多用于实现定时执行任务.适用场景主要包括定时轮询数据库同步.定时处理数据.定时邮件通知等. 我们的 Job 分为操作系统级别定时任务 WinJob 和 HttpJob,其中,WinJob 使用开源的任务调度框架 Quartz.NET+ ZooKeeper 实现,HttpJob 的服务端是自主开发实现的,可以直接定时调用你的计划任务如微服务.下面分别予以介绍. 二.WinJob WinJob 使用 Quartz.NET+ZooKeeper 来实现,Q…
一.ZooKeeper 是什么 Apache ZooKeeper 由 Apache Hadoop 的子项目发展而来,于 2010 年 11 月正式成为了 Apache 的顶级项目. ZooKeeper 是一个开放源代码的分布式协调服务.它具有高性能.高可用的特点,同时也具有严格的顺序访问控制能力(主要是写操作的严格顺序性).基于对 ZAB 协议(ZooKeeper Atomic Broadcast,ZooKeeper 原子消息广播协议)的实现,它能够很好地保证分布式环境中数据的一致性.也正是基于…
一.集中式日志 日志可分为系统日志.应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用.我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及分析应用错误发生的原因等. 随着系统的日益复杂,大数据时代的来临,需要几十甚至上百台的服务器是常有的事,因此迫切需要有一套针对日志.且能够集中式管理的产品.ELK 就实现了集中式日志管理平台,该平台统一涵盖了分布式日志收集.检索.统计.分析以及对日志信息的 Web 管理等集中化管控. 1.1.ELK…
Redis的使用难吗?不难,Redis用好容易吗?不容易.Redis的使用虽然不难,但与业务结合的应用场景特别多.特别紧,用好并不容易.我们希望通过一篇文章及Demo,即可轻松.快速入门并学会应用. 一.Redis 简介 Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网上的话来说,Redis是一个数据结构存储,可用作数据库.缓存和消息中间件.相对于传统的Key-Value存储Memcached来说,Redis具有如下特点: 速度快 丰富的数据结构,除Str…
一.MSA 简介 1.1.MSA 是什么 微服务架构 MSA 是 Microservice Architect 的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相配合,为用户提供最终价值.它与 SOA 之间的区别如下: 1.2.我们的 MSA 框架 我们的微服务框架 MsaFx.dll 是个基于 ServiceStack 4.0.60 包装实现的.NET Web Services 框架,而 ServiceStack 本身支持通用的轻量级协议和 Metadat…
一.Job 简介 Job 类似于数据库中的作业,多用于实现定时执行任务.适用场景主要包括定时轮询数据库同步.定时处理数据.定时邮件通知等. 我们的 Job 分为操作系统级别定时任务 WinJob 和 HttpJob,其中,WinJob 使用开源的任务调度框架 Quartz.NET+ ZooKeeper 实现,HttpJob 的服务端是自主开发实现的,可以直接定时调用你的计划任务,如微服务.下面分别予以介绍. 二.WinJob WinJob 使用 Quartz.NET+ZooKeeper 来实现,…
中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序运行的状态.本文主要介绍了调试工具WinDbg和抓包工具ProcDump的使用,并分享一个真实的案例.N年前不知谁写的代码,导致每一两个月偶尔出现CPU飙高的现象.我们先使用ProcDump在生产环境中抓取异常进程的Dump文件,然后在不了解代码的…
原文:中小研发团队架构实践之RabbitMQ快速入门及应用 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端API就那么几个,比我们日常编写程序时用到的API要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么会这样呢?原因是中间件的职责相对单一,客户端的使用虽然简单,但整个环境搭起来却不容易.所以对于中间件的使用,我们重点放在解决门槛问题,把服务端环境搭好(生产环境可直接使用云或运维解决),把中间件的基本职责和功能介绍好,把客户端Demo写好,让程序员抬抬脚,在调试…
原文:中小研发团队架构实践之分布式协调器.Net版ZooKeeper 一.ZooKeeper是什么  Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目. ZooKeeper是一个开放源代码的分布式协调服务.它具有高性能.高可用的特点,同时也具有严格的顺序访问控制能力(主要是写操作的严格顺序性).基于对ZAB协议(ZooKeeper Atomic Broadcast,ZooKeeper原子消息广播协议)的实现,它能够…
一.MSA简介 1.1.MSA是什么 微服务架构MSA是Microservice Architecture的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相配合,为用户提供最终价值.它与SOA之间的区别如下: SOA实现 微服务架构实现   企业级,自顶向下开展实施 团队级,自底向上开展实施   粒度大:服务由多个子系统组成 粒度细:一个系统被拆分成多个服务,且服务的定义更加清晰   重ESB:企业服务总线,集中式的服务架构 轻网关:无集中式总线,松散的服务…
一.Metrics简介        应用监控系统Metrics由Metrics.NET+InfluxDB+Grafana组合而成,通过客户端Metrics.NET在业务代码中埋点,Metrics.NET会把收集到数据存储在InfluxDB数据库中,然后通过Grafana来展示监控数据.其中,InfluxDB服务端部署的版本号是1.3.1,Grafana部署的版本号是4.0.1.下面将结合这3个工具来介绍如何实现对应用的监控.        Metrics.NET移植自Java的metrics,…
一.ZooKeeper是什么  Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目. ZooKeeper是一个开放源代码的分布式协调服务.它具有高性能.高可用的特点,同时也具有严格的顺序访问控制能力(主要是写操作的严格顺序性).基于对ZAB协议(ZooKeeper Atomic Broadcast,ZooKeeper原子消息广播协议)的实现,它能够很好地保证分布式环境中数据的一致性.也正是基于这样的特性,使得ZooK…
生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序运行的状态.本文主要介绍了调试工具WinDbg和抓包工具ProcDump的使用,并分享一个真实的案例.N年前不知谁写的代码,导致每一两个月偶尔出现CPU飙高的现象.我们先使用ProcDump在生产环境中抓取异常进程的Dump文件,然后在不了解代码的情况下通过WinDbg命令进行分析,最终定位到有问题…
一. 什么是消息队列? 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递.消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的.这样发布者和使用者都不用知道对方的存在. 二. 常用的消息队列有哪些? RabbitMQ.RocketMQ.ActiveMQ.Kafka…
近几年,经常能听到不少技术管理者在倡导:用 OKR 来管理及打造一个高执行力的研发团队. 据我了解,OKR 最成功的落地公司是在 Google --一家有着非常浓厚工程师文化的公司,后来陆续在 Facebook.Amazon.LinkedIn 等公司成功落地,国内的互联网巨头们,腾讯.百度.滴滴.小米等互联网公司也都在积极引入 OKR. 那,OKR 到底是何方神圣?它跟 KPI 的区别又是什么? OKR 被称为"目标与关键结果工作法",由 Objectives(目标)和 Key Res…
前言 There are a thousand Hamlets in a thousand people's eyes. 一千个程序员,就有一千种代码风格.在前端开发中,有几个至今还在争论的代码风格差异: 单引号还是双引号? 代码行结束是否需要分号? 两个空格还是四个空格? ... 这几个代码风格差异在协同开发中经常会被互相吐槽,甚至不能忍受. 除此之外,由于 JavaScript 的灵活性,往往一段代码能有多种写法,这时候也会导致协同时差异.并且,有一些写法可能会导致不易发现的 bug,或者这…
朱晔的互联网架构实践心得S1E4:简单好用的监控六兄弟 [下载本文PDF进行阅读] 这里所说的六兄弟只指ELK套件(ElasticSearch+Logstash+Kibana)以及TIG套件(Telegraf+InfluxDb+Grafana). 上图显示了两套独立的体系,ELK和TIG(TIG是我自己编出来的,网上没有类似于ELK这种约定俗成的说法): 这两套体系都由收集器+存储+展示网站构成,青绿色的收集器,蓝绿色的存储,红色的展示网站. 这两套体系都有免费的组件可以使用,安装配置也相对简单…
原理 在第三,四篇文章中讲到了会话保持的问题,而且还遗留了一个问题,就是会话保持存在单点故障, 当时的方案是cookie插入后缀,即haproxy指负责分发请求,应用服务自行保持用户会话,如果应 用服务器宕机,则session会丢失. 现在来温习下解决方案 方案1:session复制 原理 就是将1台服务器的session复制到其它所有的服务器上,这样无论访问哪台服务器,都会得到用户 的session 优点 不存在单点故障问题 缺点 当服务器的数量比较大时,session同步将会变得相当耗时 方…
朱晔的互联网架构实践心得S1E1:Pilot 最近几年写博客确实写得少了,初出茅庐的时候什么都愿意去写,现在写一点东西之前会反复斟酌是否有价值.工作十几年了,做了N多个互联网系统,业务涉及教育.游戏.电商.O2O.P2P,算是各种类型的互联网系统都摸过,多少有一些心得,架构方面的文章网上很多很多,有些是说一些方法论,有些是说一些具体的案例,感觉自己想分享的东西和别人已分享的是有点不同的,还是应该留下点什么.在这里我更多想分享一下搭建一套完整的互联网系统架构方面一些具体的实践心得,大概会从这几个方…
团队DevOps实践之一 ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构演化微服务与Docker介绍Docker与CI持续集成/CD互联网电商购物车架构演变案例互联网业务场景下消息队列架构互联网高效研发团…
看了 Pivotal 公司的发展历史,这尼玛就是一场商业大片呀. 我们刚开始学习 Spring Boot 的时候肯定都会看到这么一句话: Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. 这里的 Pivotal 团队肯定就是 Spring Boot 的研发团队了,那么这个 Pivotal 团队到底是个什么来头呢?和 Spring 又有那些关系?不着急且听我慢慢道来. 要说起这个 Pivotal 公司的由来,我得先…
「 OKR 」现在非常的火爆,很多公司都在使用,不仅国外的 Google.英特尔等大公司在用,国内的一线知名互联网企业今日头条和一些创业团队也都在使用. 那为什么「 OKR 」这么受欢迎呢,因为把它可以帮助团队 达成共识.加深信任.加强协同. 并且「 OKR 」这套方法,不仅可以帮助我们开展工作,还可以用它来管理个人生活.例如互联网大牛 吴军 就是固定使用「 OKR 」来管理他个人年度目标和计划的. 乘着假期,我也仔细读了两本关于「 OKR 」的书籍,<OKR工作法>.<这就是OKR&g…
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展.本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结.希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考. Microservice 和 Docker 对于创业公司的技术布局,很多声…
朱晔的互联网架构实践心得S1E10:数据的权衡和折腾[系列完] [下载本文PDF进行阅读] 本文站在数据的维度谈一下在架构设计中的一些方案对数据的权衡以及数据流转过程中的折腾这两个事情.最后进行系列文章的总结和之后系列文章写作计划的一些展望. 数据的权衡 正所谓鱼和熊掌不能兼得,舍了才能得.架构或技术设计方案中针对数据这个事情,有太多体现了权衡思想的地方. 空间和时间 我们来想想有哪些广义上空间换时间(性能)的例子,也就是通过使用更多的存储或内存空间加快了任务的单次执行速度或总体吞吐量: 让数据…
朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件 [下载本文PDF进行阅读] 一般而言中间件和框架的区别是,中间件是独立运行的用于处理某项专门业务的CS程序,会有配套的客户端和服务端,框架虽然也是处理某个专门业务的但是它不是独立程序,是寄宿在宿主程序进程内的一套类库. 图上绿色部分代表了框架,红色部分代表了管理系统,紫色部分代表了中间件.本文会着重介绍管理系统和中间件部分. 配置管理 比较知名的分布式配置服务和管理系统有携程的https://github.com/ctripcorp/apo…
云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天的魅族云同步. 这是云服务对应的网页端,界面非常简洁,可以看到正中间我们有4个模块,提供一些传统数据的讨论,不得不提一下这边的查手机,我们通过它帮一些客户找到了他的手机,它的功能是很强大的,可以定位位置,还可以进行一些拍照. 我们的业务发展了这么多年,一个是手机端,一个是网页端,都说搞技术的是非常寂…
声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅族,负责云同步的核心协议设计与研发.专注在分布式服务.分布式存储.海量数据下RDB与NSQL融合等方面. 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申…