首页
学习
活动
专区
工具
TVP
发布

物流IT圈

专栏作者
280
文章
502804
阅读量
97
订阅数
谈MDM主数据管理系统设计和实现关键点
主数据是描述核心业务实体(如客户、供应商、地点、产品和库存)的一个或多个属性。所以主数据即是在进行企业业务架构分析中发现的核心业务对象。或者讲主数据是企业已经存在的涉及到价值链核心业务流程的各个IT系统的基础数据。
物流IT圈
2023-03-10
2.7K0
论后台产品经理如何优雅地设计导入功能
对于后台产品,导入是系统里必不可少的功能之一。如何设计好一个导入功能,了解以下几点就够啦。
物流IT圈
2023-03-09
1.5K0
通用设计:指挥调度系统——复杂行动的大脑与神经
对于B端或G端用户,我们描述了数据共享平台(用户数据的采集与整理),信息展示系统(数据的展示)的设计思路,在这篇文章中将侧重于描述信息的传递与应用。这里指的不是大数据层面的应用,而是指通过信息在端与中心,端到端间的传递,实现指挥作业,调度调控的价值。
物流IT圈
2020-07-16
9550
日志是每个软件工程师关心的统一数据抽象
我是在六年前一个令人兴奋的时刻加入到里了LinkedIn公司。从那个时候我们就开始突破传统整体的(monolithic)、集中式的数据库限制,然后切换到一个特殊的分布式系统。这是一件令人兴奋的事情:重新构建、部署,这些分布式图形数据库、分布式搜索后端、Hadoop以及第一代和第二代key/value的NoSQL数据存储直到今天仍然在运行。
物流IT圈
2020-04-11
3940
分布式系统的共识(consensus)算法比较
这是一篇比较分布式系统中服务器之间获得状态最终一致性也就是取得共识consensus几个流行算法,包括Paxos、Egalitarian Paxos、Hydra、Fast Paxos、Ios、VRR(Viewstamped Replication Revisited)、 Multi-Paxos、Raft等。 什么是共识consensus?当多个主机通过异步通讯方式组成网络集群时,这种异步网络默认是不可靠的,那么在这些不可靠主机之间复制状态需要采取一种机制,以保证每个主机的状态
物流IT圈
2020-02-26
1.4K0
可扩展伸缩架构中的状态
提到状态,我们总是伴随着可变的、并发、隔离和作用域等词语,精确定义如下:状态是有关存储信息的技术名词,任何一个时间程序能够立即访问到。简单地说,状态是一种可能被行为操作改变的数据,是一种可变的纯数据。
物流IT圈
2020-02-10
8580
如何正确理解CAP理论?
在大数据领域,被业界广泛谈及的CAP理论存在着一些关键性的认知误区,而只有全面地考察与分析分布式环境中的各种场景,我们才能真正正确地理解它。
物流IT圈
2019-11-21
6630
我想说:mysql 的 join 真的很弱
对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验证这个结论。(实验没有从代码角度分析,目前达不到。可以把mysql当一个黑盒,使用角度来验证这个结论) 验证结论的时候,会有很多发现,各位往后看。
物流IT圈
2019-11-20
4260
超详细的六款主流ETL工具介绍及功能对比
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。最近用kettle做数据处理比较多,所以也就介绍下这方面内容,这里先对比下几款主流的ETL工具。
物流IT圈
2019-10-31
82.5K1
替代传统事务的并发建议
增删改查是大部分框架的功能,如果有两个并发请求修改同一个数据怎么办?或者插入本来应该是唯一却重复的数据怎么办?或者插入和修改有其他辅助动作比如保存到另外的表比如校订审计日志。
物流IT圈
2019-10-22
4630
线性化与串行化比较
  线性化Linearizability和串行化(序列化)serializability都是数据库和分布式系统中重要的属性,它们两个容易搞混淆了,这篇文章就是给出一个简短的比较。
物流IT圈
2019-10-12
1.3K0
多研究些架构,少谈些框架
微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构)是什么区别呢?
物流IT圈
2019-09-24
5590
聊聊微服务的分布式通讯
微服务目前比较热,但是微服务最难的还是可靠性问题,因为一个系统微服务可能几百个,网络调用频繁,网络的容错性就非常重要,因为对于分布式系统,需要默认网络环境是不可靠的,丢包或堵塞等情况都是可能会发生的,这里面其实就是经典的拜占庭将军问题,两个将军想约定某个时候一起进攻,但是不能确保这个信息能否可靠地传递给对方,是路途耽误了还是送信的人死了永远不可能送达,都无法确定,网络之间的通讯也是如此,A给B发个TCP数据包,这个数据包是因为网络繁忙暂时堵塞,还是就是被丢弃了呢?双方都不知道。
物流IT圈
2019-09-05
5840
解决死锁之路(终结篇)- 再见死锁
在遇到线上死锁问题时,我们应该第一时间获取相关的死锁日志。我们可以通过 show engine innodb status 命令来获取死锁信息,但是它有个限制,只能拿到最近一次的死锁日志。MySQL 提供了一套 InnoDb 的监控机制,用于周期性(每隔 15 秒)输出 InnoDb 的运行状态到 mysqld 服务的标准错误输出(stderr)。默认情况下监控是关闭的,只有当需要分析问题时再开启,并且在分析问题之后,建议将监控关闭,因为它对数据库的性能有一定影响,另外每 15 秒输出一次日志,会使日志文件变得特别大。
物流IT圈
2019-09-03
9.3K4
如何估算一台数据库服务器能够承受的并发量?
在估算之前我们必须清楚这台数据库服务器的配置是什么情况,正常情况下我们需要摸清楚以下几点因素:
物流IT圈
2019-09-03
10.7K1
用 GraphQL 快速搭建服务端 API
与 RESTful 设计不同,GraphQL 一般仅暴露出一个接口供使用,而具体一个请求中需要什么数据,数据怎么样组织完全由 API 的使用者(客户端)来指定。当然,哪些数据可以被查询,数据的类型是怎么样的,则是由服务端给定的。指定的方式就是传入一段关于想要的结果(或操作)的描述,服务端保证返回符合要求的结果或报错。
物流IT圈
2019-08-29
2.4K0
面试官:给我讲一下分库分表方案
一、数据库瓶颈 1、IO瓶颈 2、CPU瓶颈 二、分库分表 1、水平分库 2、水平分表 3、垂直分库 4、垂直分表 三、分库分表工具 四、分库分表步骤 五、分库分表问题 1、非partition key的查询问题(水平分库分表,拆分策略为常用的hash法) 2、非partition key跨库跨表分页查询问题(水平分库分表,拆分策略为常用的hash法) 3、扩容问题(水平分库分表,拆分策略为常用的hash法) 六、分库分表总结 七、分库分表示例
物流IT圈
2019-08-20
1.3K0
微服务的最终一致性与事件流
微服务是指一个个单个小型业务功能的服务,由于各个微服务开发部署都是独立的,因此微服务天然是分布式的,因此,分布式系统的设计问题如CAP定理同样适合微服务架构,虽然微服务本身是无状态的,但是微服务是需要管理状态的。这些状态是指领域模型的状态或存储在自己的专有数据库中。 虽然我们使用微服务必须面对分布式系统,但是好的一方面是有很多关于如何建立复杂分布式系统的成熟模式和最佳实践。 典型的问题是微服务之间如果需要共享状态怎么办?实际是在分布式节点之间需要共享或复制状态。关于共享状态有几个解决方案: 1.微服务之间通过共享同一个数据库实现状态共享,但是因为微服务是使用自己专用的数据库,因此,数据库共享方案在微服务中是不适用的,违背了微服务架构宗旨。 2.通过调用同一个微服务实现状态共享,比如A服务和B服务需要共享C数据状态,而C数据状态是由C服务管理的,那么,A服务和B服务共同调用C服务不就是获得同一个C状态吗? 但是考虑到分布式系统下,A服务和B服务可能不在同一个节点服务器上,或者不同Docker VM中,那么服务之间调用就需要网络通讯,通常RPC是一种通过网络调用远程服务器上其他服务的同步方式,但是,RPC虽然将网络编程藏起来,其实藏是藏不住,结果造成抽象泄漏了。 "Asynch message-passing makes constraints of network programming firstclass instead of hiding them behind the RPC leaky abstraction"异步消息传递使得网络编程变成第一公民(显式),而不是像RPC隐藏了网络编程却造成抽象泄漏。 在分布式系统中使用异步消息必然会遭遇最终一致性。甚至可以说微服务是使用最终一致性的(microservices use eventual consistency) 最终一致性Eventual Consistency 最终一致性是一种用于描述在分布式系统中数据的操作模型,在分布式系统中状态是被复制然后跨网络多节点保存,其实在关系数据库集群中,最终一致性被用来在集群多个节点之间协调数据复制的写操作,数据库集群中这种写操作挑战是:各个节点接受到的写操作必须严格按照复制的次序进行,这个次序是有时间损耗的,从这个角度看,数据库在集群节点之间的这种状态复制还是可以被认为是一种最终一致性,所有节点状态在未来某个时刻最终汇聚到一个一致性状态,也就是说,最终达成状态一致性。 当构建微服务时,最终一致性是开发者 DBA和架构师频繁打交道的问题,当开始在分布式系统中进行状态处理时,头疼问题更加严重。核心问题是: 如何在保证数据一致性基础上保证高可用性呢? 事务日志 几乎所有数据库都支持高可用性集群,大多数数据库对系统一致性模型提供一个易于理解的方式,保证强一致性模型的安全方式是维持数据库事务操作的有序日志,理论上理由非常简单,一个事务日志是一系列数据更新操作的动作有序记录集合,当其他节点从主节点获得这个事务日志时,能够按照这种有序动作集合重新播放这些操作,从而更新自己所在节点的数据库状态,当这个事务日志完成后,次节点的状态最终会和主节点状态一致。 这种事务日志非常类似于财务中记账模型,或者类似银行储蓄卡打印出来的流水账,哪天存入一笔钞票(更新操作),哪天又提取了一笔钞票(更新操作),最后当前余额是多少(代表数据库当前状态)。 Event Sourcing Event sourcing事件溯源是借鉴数据库事务日志的一种数据持久方式,在ES中,事务单元变得更细粒度,使用一系列有序的事件来代表存储在数据库中的领域模型状态,一旦一个事件被加入事件日志,它就不能被移走或重新排序,事件被认为是不可变的,事件序列只能被追加方式存储。 因为微服务将系统切分成一个个松耦合的小系统,每个系统后面都独占自己的数据库,虽然,微服务是无态的,但是它需要操作自己数据库的状态,如何保证微服务之间操作数据库数据的一致性成了微服务实践中重要问题,使用ES能够帮助我们实现这点。 聚合可以被认为是产生任何对象的一致性状态,它提供校订方法用来进行重播产生对象中状态变化的历史。它能使用事件流提供分析数据许多必要输入,能够采取补偿方式对不一致应用状态实现事件回滚。 事件流共享 我们在微服务之间相互调用中通过引入异步机制,如果不同微服务之间存在共享的状态,或者说需要访问其他微服务的专用数据库,那么我们无需将本来专有的数据库共享出来,也无需在服务层使用2PC+RPC进行性能很慢的跨机同步调用,而是将改变这些共享状态的事件保存并共享,将领域事件以事务日志的方式记录下来,保存在一个统一的存储库,现在EventSourcing标准的存储库是 Apache Kafka。 也就是说,微服务之间共享的不是传统数据库,而是Apache Kafka,通过读取ES的事务日志和重新播放,我们可以得到任何时
物流IT圈
2019-07-30
1K0
开发人员不得不知的MySQL索引和查询优化
基数是数据列所包含的不同值的数量,例如,某个数据列包含值 1、3、7、4、7、3,那么它的基数就是 4。
物流IT圈
2019-07-19
8260
大型互联网公司订单库分区分表优化实践
原订单表的数据量巨大,且业务要求查询维度较多,即使加了两个从库,优化索引,仍然存在很多查询不理想的情况。去年大量抢购活动的开展,使数据库达到瓶颈,应用只能通过限速、异步队列等对其进行保护;业务需求层出不穷,原有的订单模型很难满足业务需求,但是基于原订单表的DDL又非常吃力,无法达到业务要求。
物流IT圈
2019-07-16
1.3K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档