专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

搭了一个RocketMQ高可用集群,同事直呼哇塞!

  RocketMQ作为阿里系的一款开源的MQ中间件,经历了双十一的高并发场景的消息流转,能够处理万亿级别的消息。
  这篇文章介绍一下实际生产中如何搭建一个高可用的RocketMQ集群。集群整体架构图如下:
  为什么要用MQ?
  消息队列是一种先进先出的数据结构
  其应用场景主要包含以下3个方面1、应用解耦
  系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。
  使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,补充处理存在消息队列中的订单消息即可,终端系统感知不到物流系统发生过几分钟故障。
  2、流量削峰
  应用系统如果遇到系统请求流量的瞬间猛增,有可能会将系统压垮。有了消息队列可以将大量请求缓存起来,分散到很长一段时间处理,这样可以大大提高系统的稳定性和用户体验。
  一般情况,为了保证系统的稳定性,如果系统负载超过阈值,就会阻止用户请求,这会影响用户体验,而如果使用消息队列将请求缓存起来,等待系统处理完毕后通知用户下单完毕,这样总不能下单体验要好。
  出于经济考量目的:
  业务系统正常时段的QPS如果是1000,流量最高峰是10000,为了应对流量高峰配置高性能的服务器显然不划算,这时可以使用消息队列对峰值流量削峰3、数据分发
  通过消息队列可以让数据在多个系统更加之间进行流通。数据的产生方不需要关心谁来使用数据,只需要将数据发送到消息队列,数据使用方直接在消息队列中直接获取数据即可
  各种MQ产品的比较
  常见的MQ产品包括Kafka、ActiveMQ、RabbitMQ、RocketMQ。
  关于MQ技术选型详细可以看笔者之前的文章:聊聊MQ技术选型RocketMQ中的几个重要角色
  从上述的集群架构图中可以知道RocketMQ中涉及到的几个重要的角色:NameServer:相当于微服务中的注册中心,提供broker的服务发现和注册功能,各个节点之间无相互通信,一旦broker节点启动,将会主动上报信息给NameServer。producer:消息生产者,发送消息给broker;拥有同一个的groupId的producer为一个集群broker:消息暂存和传输,接收producer发送的消息,采用pushpull模式传递给consumerconsumer:消息消费者,消费broker传递的消息,拥有同一个groupId的consumer为一个集群
  以上四个是RocketMQ对外四种角色,另外内部还有一些重要角色,如下:Topic:消息主题,通过Topic对不同的业务消息进行分类。Tag:消息标签,用来进一步区分某个Topic下的消息分类,消息从生产者发出即带上的属性。MessageQueue:队列,相当于Topic的分区,用于并行发送和消费消息,一个Topic中对应多个Queue
  关于Topic和Tag的区别:比如电商中的下单、支付流程,为了提高并发量通常都会使用消息队列进行异步处理,那么可以定义消息的Topic为Topicorder,但是其中还涉及了创建订单、付款、完成订单这三类消息,如何去区分?
  此时就该用到Tag去细分了,此时的对应关系如下图:
  Topic和MessageQueue的关系如下图:
  一个Topic中包含多个MessageQueue(队列)RocketMQ下载
  阿里将RocketMQ贡献给了Apache,所以要去Apache的官网去下载对应的版本;
  地址:https:rocketmq。apache。orgdowloadingreleases
  我的《RocketMQ进阶》这个专栏选用的版本是4。9。4
  下载地址:https:rocketmq。apache。orgdownload集群特点
  针对RocketMQ对外的四种角色,集群部署有以下几点需要注意的地方:NameServer之间是不相互通信的,因此NameServer集群部署非常简单,直接启动多个服务broker部署分为master和slave节点,一个master对应多个slave节点,主从节点通过brokerId区分,主节点为0,从节点为1;每个broker与NameServer建立长连接,定时注册Topic信息到NameServer中。producer与NameServer中的任意一个节点建立长连接,定期获取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态,可集群部署。consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。Consumer既可以从Master订阅消息,也可以从Slave订阅消息,订阅规则由Broker配置决定。集群模式
  注意这里说的集群模式是针对broker,因为涉及到broker的节点之间的数据同步问题。
  NameServer各个节点间不互相通信,只需要启动多个服务便可实现一个集群
  RocketMQ支持四种集群模式,如下:1。单Master模式
  不建议使用,一旦服务重启或者宕机将导致整个服务不可用2。多Master模式
  这个集群模式无slave节点,全部都是master节点,该模式如下图:
  该模式的优缺点如下:优点:该模式性能最高缺点:一旦一台服务宕机了,那么在这台服务上的消息不能被订阅消费,消息实时性会受到影响3。多Master多Slave(同步)
  每个master对应一个slave节点,有多对masterslave,主从之间的数据复制采用同步双写的形式,如下图:
  主从同步双写是什么意思?
  producer发送一条消息给broker的主节点,只有主节点将数据同步到从节点才会返回结果
  此时的发送消息流程如下:
  需要经过以上4步才能实现消息发送成功,此时如果主从数据复制阻塞,那么producer必须等待直到成功。
  这种模式的优缺点如下:优点:无单点故障,数据不会丢失,即使master宕机了,salve节点依然能够对外提供服务缺点:由于是同步复制,性能比异步复制的模式低4。多Master多Slave(异步)
  每个Master配置一个Slave,有多对masterslave,采用异步复制的方式,如下:
  消息发送到的master后直接返回,不必等待主从复制,而是内部通过异步的方式进行复制。
  该种模式的优缺点如下:优点:无单点故障,消息无延迟,即使master宕机了,salve节点依然能够对外提供服务性能比异步复制模式略低(大约低10左右),发送单个消息的RT会略高。主从同步集群搭建
  根据上面的介绍,主从同步集群模式使用4个节点,分别是两个主节点、两个从节点。
  笔者这里是使用两台机器将节点均摊,如下图:
  在安装之前需要做些准备工作,如下:准备两台服务器虚拟机安装好JDK1。8的环境下载好rocketmqall4。9。4binrelease
  笔者使用的是Centos7的虚拟机进行演示,如下:
  序号IP角色架构模式1192。168。47。146nameserver、brokerserverMaster1、Slave22192。168。47。145nameserver、brokerserverMaster2、Slave11。添加环境变量
  RocketMQ的启动需要依赖的一个环境变量:ROCKETMQHOME(RocketMQ的根目录)exportPATHJAVAHOMEbin:PATHexportROCKETMQHOMEusrlocalrocketmqall4。9。4binreleaseexportPATHPATH:ROCKETMQHOMEbin
  除了以上RocketMQ的环境变量配置,还需添加JDK的配置,省略。。。
  配置保存之后,执行下述命令:sourceetcprofile2。创建消息存储路径
  RocketMQ是将消息存储在磁盘,因此需要创建存储路径,如下:mkdirpusrlocalrocketmqstoremastermkdirpusrlocalrocketmqstoremastercommitlogmkdirpusrlocalrocketmqstoremasterconsumequeuemkdirpusrlocalrocketmqstoremasterindexmkdirpusrlocalrocketmqstoreslavemkdirpusrlocalrocketmqstoreslavecommitlogmkdirpusrlocalrocketmqstoreslaveconsumequeuemkdirpusrlocalrocketmqstoreslaveindex3。broker配置文件
  总共四个节点,分别配置如下:
  1、master1
  这个配置文件是brokera。properties,如下:所属集群名字brokerClusterNamerocketmqclusterbroker名字,注意此处不同的配置文件填写的不一样brokerNamebrokera0表示Master,0表示SlavebrokerId0nameServer地址,分号分割namesrvAddrrocketmqnameserver1:9876;rocketmqnameserver2:9876在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums4是否允许Broker自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnabletrue是否允许Broker自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGrouptrueBroker对外服务的监听端口listenPort10911删除文件时间点,默认凌晨4点deleteWhen04文件保留时间,默认48小时fileReservedTime120commitLog每个文件的大小默认1GmapedFileSizeCommitLog1073741824ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue300000destroyMapedFileIntervalForcibly120000redeleteHangedFileInterval120000检测物理文件磁盘空间diskMaxUsedSpaceRatio88存储路径storePathRootDirusrlocalrocketmqstorecommitLog存储路径storePathCommitLogusrlocalrocketmqstorecommitlog消费队列存储路径存储路径storePathConsumeQueueusrlocalrocketmqstoreconsumequeue消息索引存储路径storePathIndexusrlocalrocketmqstoreindexcheckpoint文件存储路径storeCheckpointusrlocalrocketmqstorecheckpointabort文件存储路径abortFileusrlocalrocketmqstoreabort限制的消息大小maxMessageSize65536flushCommitLogLeastPages4flushConsumeQueueLeastPages2flushCommitLogThoroughInterval10000flushConsumeQueueThoroughInterval60000Broker的角色ASYNCMASTER异步复制MasterSYNCMASTER同步双写MasterSLAVEbrokerRoleSYNCMASTER刷盘方式ASYNCFLUSH异步刷盘SYNCFLUSH同步刷盘flushDiskTypeSYNCFLUSHcheckTransactionMessageEnablefalse发消息线程池数量sendMessageThreadPoolNums128拉消息线程池数量pullMessageThreadPoolNums128
  2、slave2
  修改配置文件brokerbs。properties,如下:所属集群名字brokerClusterNamerocketmqclusterbroker名字,注意此处不同的配置文件填写的不一样brokerNamebrokerb0表示Master,0表示SlavebrokerId1nameServer地址,分号分割namesrvAddrrocketmqnameserver1:9876;rocketmqnameserver2:9876在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums4是否允许Broker自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnabletrue是否允许Broker自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGrouptrueBroker对外服务的监听端口listenPort11011删除文件时间点,默认凌晨4点deleteWhen04文件保留时间,默认48小时fileReservedTime120commitLog每个文件的大小默认1GmapedFileSizeCommitLog1073741824ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue300000destroyMapedFileIntervalForcibly120000redeleteHangedFileInterval120000检测物理文件磁盘空间diskMaxUsedSpaceRatio88存储路径storePathRootDirusrlocalrocketmqstoreslavecommitLog存储路径storePathCommitLogusrlocalrocketmqstoreslavecommitlog消费队列存储路径存储路径storePathConsumeQueueusrlocalrocketmqstoreslaveconsumequeue消息索引存储路径storePathIndexusrlocalrocketmqstoreslaveindexcheckpoint文件存储路径storeCheckpointusrlocalrocketmqstoreslavecheckpointabort文件存储路径abortFileusrlocalrocketmqstoreslaveabort限制的消息大小maxMessageSize65536flushCommitLogLeastPages4flushConsumeQueueLeastPages2flushCommitLogThoroughInterval10000flushConsumeQueueThoroughInterval60000Broker的角色ASYNCMASTER异步复制MasterSYNCMASTER同步双写MasterSLAVEbrokerRoleSLAVE刷盘方式ASYNCFLUSH异步刷盘SYNCFLUSH同步刷盘flushDiskTypeASYNCFLUSHcheckTransactionMessageEnablefalse发消息线程池数量sendMessageThreadPoolNums128拉消息线程池数量pullMessageThreadPoolNums128
  3、master2
  修改brokerb。properties,如下:所属集群名字brokerClusterNamerocketmqclusterbroker名字,注意此处不同的配置文件填写的不一样brokerNamebrokerb0表示Master,0表示SlavebrokerId0nameServer地址,分号分割namesrvAddrrocketmqnameserver1:9876;rocketmqnameserver2:9876在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums4是否允许Broker自动创建Topic,建议线下开启,线上关闭brokerClusterNamerocketmqclusterbroker名字,注意此处不同的配置文件填写的不一样brokerNamebrokerb0表示Master,0表示SlavebrokerId0nameServer地址,分号分割namesrvAddrrocketmqnameserver1:9876;rocketmqnameserver2:9876在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums4是否允许Broker自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnabletrue是否允许Broker自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGrouptrueBroker对外服务的监听端口listenPort10911删除文件时间点,默认凌晨4点deleteWhen04文件保留时间,默认48小时fileReservedTime120commitLog每个文件的大小默认1GmapedFileSizeCommitLog1073741824ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue300000destroyMapedFileIntervalForcibly120000redeleteHangedFileInterval120000检测物理文件磁盘空间diskMaxUsedSpaceRatio88存储路径storePathRootDirusrlocalrocketmqstorecommitLog存储路径storePathCommitLogusrlocalrocketmqstorecommitlog消费队列存储路径存储路径storePathConsumeQueueusrlocalrocketmqstoreconsumequeue消息索引存储路径storePathIndexusrlocalrocketmqstoreindexcheckpoint文件存储路径storeCheckpointusrlocalrocketmqstorecheckpointabort文件存储路径abortFileusrlocalrocketmqstoreabort限制的消息大小maxMessageSize65536flushCommitLogLeastPages4flushConsumeQueueLeastPages2flushCommitLogThoroughInterval10000flushConsumeQueueThoroughInterval60000Broker的角色ASYNCMASTER异步复制MasterSYNCMASTER同步双写MasterSLAVEbrokerRoleSYNCMASTER刷盘方式ASYNCFLUSH异步刷盘SYNCFLUSH同步刷盘flushDiskTypeSYNCFLUSHcheckTransactionMessageEnablefalse发消息线程池数量sendMessageThreadPoolNums128拉消息线程池数量pullMessageThreadPoolNums128
  4、slave1
  修改brokeras。properties,如下:所属集群名字brokerClusterNamerocketmqclusterbroker名字,注意此处不同的配置文件填写的不一样brokerNamebrokera0表示Master,0表示SlavebrokerId1nameServer地址,分号分割namesrvAddrrocketmqnameserver1:9876;rocketmqnameserver2:9876在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums4是否允许Broker自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnabletrue是否允许Broker自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGrouptrueBroker对外服务的监听端口listenPort11011删除文件时间点,默认凌晨4点deleteWhen04文件保留时间,默认48小时fileReservedTime120commitLog每个文件的大小默认1GmapedFileSizeCommitLog1073741824ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue300000destroyMapedFileIntervalForcibly120000redeleteHangedFileInterval120000检测物理文件磁盘空间diskMaxUsedSpaceRatio88存储路径storePathRootDirusrlocalrocketmqstoreslavecommitLog存储路径storePathCommitLogusrlocalrocketmqstoreslavecommitlog消费队列存储路径存储路径storePathConsumeQueueusrlocalrocketmqstoreslaveconsumequeue消息索引存储路径storePathIndexusrlocalrocketmqstoreslaveindexcheckpoint文件存储路径storeCheckpointusrlocalrocketmqstoreslavecheckpointabort文件存储路径abortFileusrlocalrocketmqstoreslaveabort限制的消息大小maxMessageSize65536flushCommitLogLeastPages4flushConsumeQueueLeastPages2flushCommitLogThoroughInterval10000flushConsumeQueueThoroughInterval60000Broker的角色ASYNCMASTER异步复制MasterSYNCMASTER同步双写MasterSLAVEbrokerRoleSLAVE刷盘方式ASYNCFLUSH异步刷盘SYNCFLUSH同步刷盘flushDiskTypeASYNCFLUSHcheckTransactionMessageEnablefalse发消息线程池数量sendMessageThreadPoolNums128拉消息线程池数量pullMessageThreadPoolNums128
  关于上面的各个配置有什么用后面章节会详细介绍4、开放端口
  宿主机需要远程访问虚拟机的rocketmq服务和web服务,需要开放相关的端口号,简单粗暴的方式是直接关闭防火墙关闭防火墙systemctlstopfirewalld。service查看防火墙的状态firewallcmdstate禁止firewall开机启动systemctldisablefirewalld。service
  或者为了安全,只开放特定的端口号,RocketMQ默认使用3个端口:9876、10911、11011。如果防火墙没有关闭的话,那么防火墙就必须开放这些端口:nameserver默认使用9876端口master默认使用10911端口slave默认使用11011端口
  执行以下命令:开放nameserver默认端口firewallcmdremoveport9876tcppermanent开放master默认端口firewallcmdremoveport10911tcppermanent开放slave默认端口(当前集群模式可不开启)firewallcmdremoveport11011tcppermanent重启防火墙firewallcmdreload5。Host添加信息
  需要在hosts中添加信息,这样后面的配置就不用通过ip指定了。
  执行如下命令进入hosts文件:vimetchosts
  配置信息如下:nameserver192。168。47。146rocketmqnameserver1192。168。47。145rocketmqnameserver2broker192。168。47。146rocketmqmaster1192。168。47。146rocketmqslave2192。168。47。145rocketmqmaster2192。168。47。145rocketmqslave1
  配置完成后,重启网卡:systemctlrestartnetwork6。修改启动脚本
  内置RocketMQ启动对服务器内存要求较高,由于笔者本地测试的配置较低,因此需要修改JVM启动参数,以下两个脚本都在bin目录下。
  1、runbroker。sh脚本修改:
  根据自己服务器的配置进行修改
  2、runserver。sh脚本修改:
  7。服务启动
  RocketMQ启动分为两步:启动NameServer启动borker集群
  1、启动NameServer
  分别在两台服务器上启动,命令如下:cdusrlocalrocketmqall4。9。4binreleasebinnohupshmqnamesrv
  2、启动broker集群
  这里master和slave总计四个,均摊在两个服务器上,下面分别启动
  master1启动,命令如下:cdusrlocalrocketmqall4。9。4binreleasebinnohupshmqbrokerc。。conf2m2ssyncbrokera。properties
  slave2启动,命令如下:cdusrlocalrocketmqall4。9。4binreleasebinnohupshmqbrokerc。。conf2m2ssyncbrokerbs。properties
  master1和slave2在同一台服务器上(192。168。47。146)
  master2启动,命令如下:cdusrlocalrocketmqall4。9。4binreleasebinnohupshmqbrokerc。。conf2m2ssyncbrokerb。properties
  slave1启动,命令如下:cdusrlocalrocketmqall4。9。4binreleasebinnohupshmqbrokerc。。conf2m2ssyncbrokeras。properties
  master2和slave1在同一台服务器上(192。168。47。145)8。查看进程状态
  第7步启动成功后,查询进程状态观察RocketMQ是否启动成功,命令如下:
  9。查看日志
  同时也可以观察RocketMQ的日志看下是否异常,命令如下:查看nameServer日志tail500flogsrocketmqlogsnamesrv。log查看broker日志tail500flogsrocketmqlogsbroker。log集群监控平台
  RocketMQ有一个对其扩展的开源项目rocketmqdashboard,直接将该项目拉到本地,修改其中的几个参数编译打包即可
  修改application。yml中的NameServer的配置,改成自己搭建的地址,如下:
  然后打包运行,命令如下:打包mvncleanpackageDmaven。test。skiptrue运行javajartargetrocketmqdashboard1。0。1SNAPSHOT。jar
  运行成功之后,浏览器访问:http:ip:8080
  进入集群这一栏,看下自己搭建的集群信息,如下图:
  总结
  本节内容主要介绍了MQ的基本知识以及RocketMQ集群搭建过程,有兴趣的可以按照笔者的整个搭建过程尝试一遍,至于其中一些配置属性以及生产、消费消息将会在后文介绍。
  原文:https:mp。weixin。qq。coms1FkdRJrgQA1R6NmjU49ZQ
  如果感觉本文对你有帮助,点赞关注支持一下

兰德尔本赛季总得分多于约基奇,三分命中数多于东契奇今日美国媒体Statmuse更新动态,分享尼克斯前锋朱利叶斯兰德尔本赛季的表现。得分总数多于达米安利拉德扬尼斯阿德托昆博尼古拉约基奇多诺万米切尔和斯蒂芬库里篮板总数多于鲁迪戈贝尔伊春赏呼伦贝尔古城古韵浓人气旺呼伦贝尔古城夜景如画。吕昊俊摄呼伦贝尔古城的夜晚古韵十足。吕昊俊摄冰雪消融后的呼伦贝尔古城迎来赏春游客。吕昊俊摄呼伦贝尔古城旅游休闲街区迎来众多游客打卡。吕昊俊摄呼伦贝尔古城迎来赏两细节显示,中国不陪美玩了,白宫紧急补救近日,中俄两国领导人会晤成为了国际舆论的焦点话题,外界在关注中俄关系深化的同时,也将目光锁定在中方对俄乌冲突的劝和促谈方面。然而,就在中方响应各方普遍期待时,美方却坐不住了,不仅污湘江新区开展应急预案编修培训持续推进应急预案体系建设红网时刻新闻3月23日讯(通讯员向玲娅)为扎实推进全区突发事件应急预案修编工作,健全完善应急预案体系建设,提高应对各类突发事件的能力和水平,3月23日,湖南湘江新区应急办组织举办2中原消费金融数字技术延伸服务触角,累计服务800多万新市民编者按去年3月初,银保监会人民银行联合下发关于加强新市民金融服务工作的通知,鼓励引导银行保险机构强化产品和服务创新,提高新市民金融服务可得性和便利性。为贯彻落实党的二十大精神全国两带着3艘055的山东号出海会面对什么?看美航母的动作就知道了我们知道4月11号美国与菲律宾之间将会举行规模空前的肩并肩联合演练,据了解,这次参与演习的人员总数量将超过17000人,而这次演习也标志着美国与菲律宾之间将会越来越深入的一些联合行良品铺子2022年营收净利双增拟每10股派2。53元中证网讯(记者段芳媛)良品铺子3月23日晚间披露2022年度报告。公司2022年实现营业收入94。4亿元,同比增长1。24实现归属于上市公司股东的净利润3。35亿元,同比增长19。华菱钢铁2022年实现净利63。79亿元拟每10股派2。4元中证网讯(记者段芳媛)华菱钢铁3月23日晚间披露2022年度报告。公司2022年实现营业收入1680。99亿元,同比下降1。8实现归属于上市公司股东的净利润63。79亿元,同比下降NBA西部最新积分榜灰熊三连胜,勇士反超独行侠,湖人躺降第11北京时间3月21日,NBA常规赛继续进行,我们一起看看西部球队的表现和最新积分榜变动,主要的信息如下勇士121108战胜火箭结束了客场11连败,灰熊112108险胜独行侠迎来三连胜NBA明日战况分析及比分预测特别专栏今日精彩比赛回顾(今天精彩赛事5场,小编通过自己犀利幽默的文采再次带领各位粉丝一起来回顾一下比赛精彩瞬间)布克空砍46分难救主,亚力山大40分主场力克太阳升至西部第八北京时反赌风暴升级!70多人被抓,知名教练早被盯上,场边大喊操控比分国内足坛2023年开年便上演多场反腐反赌大戏,其中反腐以李铁陈戌源为主要线索,对足协俱乐部层面进行了反腐清理行动。而反赌线路主要涉及的是现役球员,行动初期就带走了一大批球员。两条线
乔老爷为什么第一期国字号会选中曾凡博崔永熙焦泊乔和崔小龙?乔帅的第一期国字号人选一出来,不出意外是媒体炸窝。这个是常态,不炸窝是不正常的,然后就是媒体开喷,广东媒体喷为什么没有徐杰?山东喷为什么没有陶汉林,尤其是北控,喷为什么没有张帆?我东契奇父亲来看儿子比赛球迷越看越眼熟像某个超级明星东契奇的父亲萨萨东契奇在现身儿子的比赛,他被电视台转播的画面引起了粉丝们的共鸣!萨萨东契奇萨萨是斯洛文尼亚的一名篮球教练,曾经也是一名篮球运动球员。虽然儿子是超级大明星,但作为父亲哈姆尽管球队陷入困境但巴斯和佩林卡很支持我我对此充满感激直播吧1月21日讯近日湖人主教练哈姆接受媒体采访时表示,尽管球队陷入困境,但他能够感受到佩林卡和巴斯的支持。哈姆表示从圣诞节到1月3日的五连客结束之后,我和佩林卡去了巴斯的办公室,U20国足第二场热身赛小负阿联酋队北京时间1月20日深夜,2003年龄段中国U20男足在阿联酋迪拜足球联合会总部乌纳德体育场,与阿联酋U20国足进行了3天内的第2场热身赛,结果中国队在上半时1名球员被罚下的情况下,曝戴维斯可能会在湖人下周客场之旅前复出北京时间1月21日,据记者DaveMcMenamin报道,如果一切按计划进行,安东尼戴维斯将在下周客场之旅之前复出。他们将让安东尼戴维斯回到球场上,McMenamin表示。安东尼戴印度羽毛球公开赛何冰娇晋级四强1月20日,何冰娇在比赛中回球。新华社发(贾韦德达尔摄)当日,在印度新德里举行的2023年印度羽毛球公开赛女子单打四分之一决赛中,中国选手何冰娇以2比0战胜美国选手张蓓雯,晋级四强尤文官方联邦法院下令扣15分凯鲁比尼16个月禁足将上诉尤文图斯官方发布新闻稿。联邦上诉法院联合分部告知尤文图斯足球俱乐部(公司),根据第2条提出撤销上诉的判决。根据联邦检察官提出的体育司法法典第63条,宣布撤销上诉可以受理,因此撤销了国羽印度赛三单项仅剩独苗惟混双两对晋级北京日报客户端记者王笑笑北京时间21日凌晨,印度羽毛球公开赛结束了14决赛的争夺。中国队当日取得5胜4负,仅混双双保险携手晋级,男双女单女双只剩独苗,男单则全军覆没。黄鸭组合止住颓2023曲靖罗平花海马拉松参赛攻略来啦!吃住行一站式解决!2023曲靖罗平花海马拉松正在火热报名中,众多跑友纷纷踊跃参与。为跑友们在比赛的同时可以尽情感受罗平当地的风土人情,小编特地整理了一份参赛指南,包含吃住行全面攻略,助力跑友全面备赛绿军记者建议球队做交易补强避免过度依赖核心阵容直播吧1月21日讯波士顿凯尔特人队在昨天通过加时以121比118战胜了金州勇士,不过绿军记者ChriForsberg认为凯尔特人队仍需要做一笔交易,对阵容进行补强。昨天的比赛中塔图天冷了,为啥你的手机耗电这么快?!夏天,有一种热叫出门5分钟,流汗两小时。冬天,有一种冷叫手机被冻得耗电贼快!小伙伴们有没有过这种体验,冬天在温暖如春的室内,手机明明能撑很久,而在寒冷的室外时,却眼睁睁看着电量快速
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网