一、前言微服务(MicroServices)是一种架构风格,一个大型复杂软件应用由多个微服务和前端展示层组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往我们开发应用程序都是单体应用(可以理解为一个部署包包含了项目的所有功能),虽然开发和部署比
......
401
0
0
2022-12-16
在单体应用中,一个组件调用其它组组件时,是通过语言级的方法或者函数调用,而一个基于微服务的应用是运行于多个服务器上的分布式系统,每个服务实例是一个典型的进程。所以,如下图显示的,服务必须通过内部进程交互机制(IPC)进行交互。交互风格在为一个服务选择IPC的时候,首先考虑一下这些服务是如何交互的是很有用处的。有多种client/server的交互风格,它们可
......
407
0
0
2022-12-16
一、前言分布式系统中我们会对一些数据量大的业务进行分拆,如:用户表,订单表。因为数据量巨大一张表无法承接,就会对其进行分库分表。但一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,永不迁移数据和避免热点的文章中要求需要唯一ID的特性:整个系统ID唯一ID是数字类型,而且是趋势递增的ID简短,查询效率快什么是递增?如:第一次生成的ID为12,下
......
462
0
0
2022-12-16
1 概念 1.1 模型 1.2 副本 1.3 衡量分布式系统的指标2 分布式系统原理 2.1 数据分布方式 2.2 基本副本协议 2.3 Lease 机制 2.4 Quorum 机制 2.5 日志技术 2.6 两阶段提交协议 2.7 MVCC 2.8 Paxos协议 2.9 CAP1 概念1.1 模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程
......
337
0
0
2022-12-16
数据服务是数据中台体系中的关键组成部分。作为数仓对接上层应用的统一出入口,数据服务将数仓当作一个统一的 DB 来访问,提供统一的 API 接口控制数据的流入及流出,能够满足用户对不同类型数据的访问需求。电商平台唯品会的数据服务自 2019 年开始建设,在公司内经历了从无到有落地,再到为超过 30+业务方提供 to B、to C 的数据服务的过程。本文主要介绍
......
350
0
0
2022-12-15
一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺龙微信小程序等多平台会员体系。例如微信小程序的交叉营销,用户买了
......
338
0
0
2022-12-14
目标技术目标: 上行到消息队列api吞吐量10000条/秒,下发第三方平台1000条/秒(仅平台自身处理能力,第三方看第三方处理能力极限指标为准);保证消息中心100%高可用。业务目标: 对接新需求,明确消息中心的负责人(架构组),及时响应业务处理或者反馈。产品目标: 支持消息处理状态查询,简单的消息规范消息对接(初级开发5分钟实现接入成本),规范化消息模板
......
432
0
0
2022-12-14
网络层基础在参考模型中网络层位于传输层之下,链路层之上。网络层的功能主要是将源端产生的数据包/分组,送达至目的机完成这项工作需要:封装源数据识别目的机找到一条好的路径(路由)可能遭遇的问题:地址不够用丢包拥塞网络层主要内容被路由协议:IP协议IP地址:定位目的机IP分组:解决信息封装IPv6:新一代IP协议路由选择协议:找到目的机和源机之间的最优路径距离矢量
......
448
0
0
2022-12-12
介质访问控制子层(MAC子层)概述MAC子层要解决的问题1. 介质的多路访问控制/介质访问控制MAC2. 数据通信方式(单播/广播/组播)单播(unicast):一对一的通信,是客户端与服务器之间的点到点连接广播(broadcast):一堆所有的通信,发出的信息,要送达到所有对象组播(multicast):一对一个组的通信,发出的信息送达到特定组的用户局域网
......
327
0
0
2022-12-12
链路状态路由选择(Link State Routing)简称LS距离矢量路由法由于不能从全局把握问题,只能从邻居节点获取信息导致了无穷计数,路由环等问题这些问题可以通过链路状态路由选择加以解决LS主要思想发现:发现邻居节点,了解它们的网络地址设置:设置规定到每个邻居的成本度量构造:构造分组,包含所了解到的所有信息发送:将这个分组发送给其他路由器计算:计算到每
......
455
0
0
2022-12-12
进程的状态和转换进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时需要等待CPU服务,显然进程的状态是在不断变化的。为了方便对各个进程的管理,操作系统将进程合理的划分为几种状态进程的三种基本状态运行态 Running占有CPU,并在CPU上运行。单核处理器下,同一时刻最多只有一个进程处于运行态,双核环境下可以有两个进程处于运行态就绪态 R
......
313
0
0
2022-12-12
八股文网站:xiaolincoding.com大家好,我是小林。在网上看到一篇讲 12306 抢票的文章,我看完后,觉得文章写很完整。不仅给出了模拟场景的代码,而且也用压测工具测试了并发情况,是一个很好的学习案例,分享给大家共读。提纲作者:绘你一世倾城 | 来源:https://juejin.im/post/5d84e21f6fb9a06ac82481491
......
407
0
0
2022-12-12
本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ 17 个方面综合对比作为消息队列使用时的差异。一、资料文档Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketm
......
410
0
0
2022-12-12
@KafkaListener(topics = {"${kafka.topic.topicB}"}, groupId = "groupB")
public void consumeTopicB(ConsumerRecord<String, String> consumerRecord, Acknowledgment acknowledg
......
662
0
0
2022-12-12