架构设计
文章平均质量分 90
菠萝-琪琪
这个作者很懒,什么都没留下…
展开
-
Cloud Native 演进可行性研究
Paul Fremantle提出Cloud Native的原因是他一直想用一个词表达一种架构,这种架构能描述应用程序和中间件在云环境中的良好运行状态。Cloud Native是以云和微服务架构为基础构建系统的从研发流程的角度来讲,自动化的研发环境是Cloud Native的基础。因为使用云作为基础设施,已经具备基础的自动化能力,可以达到自服务的要求,流程中应该尽量减少沟通人员的规模,尽量减少测试及运维对开发的协助。原创 2022-11-01 14:45:20 · 371 阅读 · 0 评论 -
性能和成本的综合架构:单元化架构
第一次听见单元化架构的小伙伴可能一时有点懵,听说过微服务架构、网格架构等但是单元化架构是什么鬼?其实在我们手机里面很多常用APP都是单元化架构,类似高德导航、金融银行类APP都是将单元化架构进行了很多年,我们都知道导航类APP对于请求RT和请求稳定性都是十分严格的,如果RT延迟很高,等你已经路过某个路口了,导航突然告诉你需要拐弯....这个时候的你是不是心里一万个草泥马涌出来了,那么这个导航APP你到家肯定立刻就卸载了。...原创 2022-07-24 18:57:08 · 2583 阅读 · 1 评论 -
数据处理分布式计算设计概要
背景描述:一批1亿左右的数据,需要计算所有数据属于哪些类型,然后归类发送到MQ中,这个是一个真实的业务场景,并且会有一定的并发读,可能同一时间10-20个类似的处理任务发生分布式计算简单来说,是把一个大计算任务拆分成多个小计算任务分布到若干台机器上去计算,然后再进行结果汇总。 公司场景一批几亿数据需要进行计算匹配发送,单节点处理经过几轮优化可能需要5小时才能发送完,针对这样的场景开始了分布式计算的设计之路不过数据一旦进行计算拆分,问题会变得非常复杂,像一致性、数据完整、通信、容灾、任务调度等原创 2022-05-28 23:21:35 · 540 阅读 · 0 评论 -
Redis 间歇性抖动<集群下mget的性能问题>
redis问题在最近公司内部使用redis的时候,在部分场景中发现redis经常会间歇性的抖动,具体表现为在短时间内redis rt上涨明显,RedisCommandTimeoutException异常陡增,如下图:监控面板是按照分钟级别进行统计,所以rt上涨看起来不是很明显。这种情况肯定不太正常,并且在近期出现的频率有上升趋势。定位原因遇到这种问题,首先会想到是不是redis本身抖动造成的,看表象其实很像,无规律,间歇性,影响时间很短,所以第一时间找了DBA确认当时是不是r原创 2021-07-11 14:29:23 · 2114 阅读 · 3 评论 -
数据中台全面分析总结
数据中台背景介绍2019年9月,中国IT界正在掀起一股新的汹涌大浪,“中台”这股技术之浪正在席卷IT界的每个角落,并经由IT工厂人员和各界媒体传导至各个行业。数据中台在DT时代的大背景下尤为引人注意,一些先知先觉的企业在讨论和探索数字化转型,谈论有关“数据中台”的概念,有人认为这是新一波的厂商向甲方企业收“智商税”的概念泡沫,有人认为这是给予CIO影响力的权柄,也有人认为这是企业应对“危”与“机”的快速创新利器。利用数据进行创新,看似机遇近在眼前,但各种问题又充斥在每个相关人士的心中。数据中台.原创 2021-03-23 10:29:35 · 1334 阅读 · 0 评论 -
Service Mesh 和 Spring Cloud
Spring Cloud 相信大家经过这几年微服务文化的熏陶已经非常了解熟悉了,这个框架的最大有点可以说是非常容易上手,因为spring 快速集成的关系导致使用Cloud全家桶内的东西非常方便,但是缺点也是比较明显的:不能跨语言,只支持java应用 需要进行最简单的相关配置 每一个接入的应用都要重复相关配置 框架选型被完全限制了,因为要最简单的上手微服务,只能被迫选择spring cloud带着上述这些问题,在18年的时候不少社区论坛出现了Service Mesh 网格服务的话题讨论,Servi原创 2020-12-25 15:49:08 · 5413 阅读 · 0 评论 -
Apache顶级开源项目<Apache Pulsa>的架构与核心概念
Apache Pulsa的架构与核心概念Pulsar基本架构Pulsar采用存储计算分离的架构,pulsar使用了bookkeeper做消息的存储,bookkeeper保证了消息存储的可靠性和高效性,bookkeeper为pulsar提供了存储的扩展能力Pulsar使用zk做元数据存储多租户,pulsar最初的设计就是支持多租户的命名空间:一个租户可以有多个命名空间,一个topic属于一个命名空间,pulsar中的配置都是以命名空间为单位配置的Pulsar的broker用于处理消息的读写,broker中会有原创 2020-12-07 21:17:33 · 2342 阅读 · 0 评论 -
RocketMQ 怎么处理消息丢失风险
先来一张最简单的消费流程图:上图中大致包含了这么几种场景:生产者产生消息发送给RocketMQRocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会造成数据的丢失消费者从RocketMQ中获取消息消费,消费成功之后,整个流程结束这三种场景都可能会产生消息的丢失,如下图所示:场景1中生产者将消息发送给Rocket MQ的时候,如果出现了网络抖动或者通信异常等问题,消息就有可能会丢失场景2中消息需要持久化到磁盘中,这时会有两种情况导致消息丢失①RocketMQ为了减原创 2020-06-23 23:45:09 · 1224 阅读 · 0 评论 -
Drools规则引擎接入详解
Drools是Jboss开源的一个规则引擎,简单来说就是一种运算速度极快且配置非常灵活的计算工具,这篇博客不分析底层实现了,因为互联网上面随便一搜就能发现很多介绍,但是真正去使用的博客却太少了,也许真正用的很深的不多大家都只是抄来抄去那些原理公司最近正好需要这么一个服务我们便开始研究起来并最终上线,其实在实践过程中遇到很多的坑,并且由于网上解决资料非常少导致耽误了不少时间,在这里写出来也是为了...原创 2019-09-04 16:00:42 · 5152 阅读 · 4 评论 -
Raft算法概述
最近公司在选型分布式框架时集中研究对比了Paxos和Raft一致性算法实现得原理,说实话Paxos在百度百科得描述真的复杂,可能需要反复看很多遍才能理解个大概,而Raft得原理图虽然也不简单但是多看几次还是能理解得Raft 是一种共识算法,旨在替代 Paxos。在提供不亚于 Paxos 的性能、可靠性、可用性的同时,Raft 通过逻辑分离的方式使其比 Paxos 更容易理解(Unde...原创 2019-09-04 13:56:11 · 1444 阅读 · 0 评论 -
快速读懂UML类图绘制规范
架构师或者项目经理可能经常需要绘制UML类图,但是很多人却绘制的很不规范,其实UML针对Java是有专业规范存在的,下面开始详解一.类属性描述:在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个NoticeAction类,它包含notice和noticeService这2个属性,以及saveNotice()等方法。...原创 2019-04-10 21:43:45 · 7233 阅读 · 6 评论 -
Consul 注册中心集群搭建
简介之前公司一直用的是Eureka 1.X版本,但是自从SpringBoot升级到2.X版本后Eureka团队对外宣布不再开源且Eureka 2.X版本不在维护,这就一下子懵逼了,开始寻找Eureka的替代方案,最终选择使用Consul进行服务发现以及服务管理。网上有很多关于Consul的介绍和对比,我这里也不献丑了,大家搜索的时候可能会经常看到这么一个表格,此表格采摘自:https://...原创 2018-10-17 13:53:42 · 1848 阅读 · 1 评论 -
SpringBoot + SolrCloud + Zookeeper 集群搭建
搜索引擎大家用的比较多的应该是Solr和Elasticsearch,两者之间的区别就不在此文做阐述了,一个支持实时查询轻量级,一个数据结构更丰富更稳定,我公司使用的是Solr,因为单点的Solr在千万级数据进行全量建立索引时有时会产生奔溃,为了搭建一个高可用的Solr开始了优化重构之路。Zookeeper 集群搭建篇:首先搭建Solr集群需要借助Zookeeper这个分布式调度服务工具,根...原创 2018-09-19 14:53:33 · 2947 阅读 · 3 评论