阿里云消息服务MNS(阿里云数据服务)
本文目录一览:
- 1、我的MNS登陆不了 出现以下提示窗口 是怎么解决?
- 2、阿里云消息中间件(MQ)探秘
- 3、简谈阿里云MQ消息队列云服务的计费模式
- 4、阿里云的消息服务怎么集成spring boot
- 5、如何用阿里云的消息服务,来实现两台PC之间的通信,求具体细节,思路什么的
- 6、短信接口调用的时候报错
我的MNS登陆不了 出现以下提示窗口 是怎么解决?
MSN吧你的电脑上"日期/时间属性"是否设置正确:双击时间,检查日期和时间是否正确设置。很多时候是因为时间没有同步,双击日期,选择Internet时间,同步即可。
如果你的帐号和密码没有在MSN中保存,你需要确认你输入的帐号和密码是正确的(请注意大小写字母及帐号的后缀)。
禁用您浏览器中的“自动检测”设置。对于 Internet Explorer 用户,请单击 IE“工具”菜单、单击“Internet 选项”、单击“连接”选项卡、单击“局域网设置”按钮、然后清除“自动检测设置”框。
清除IE cache和Cookies:打开Internet Explorer浏览器,按工具菜单,然后选择“Internet 选项”,点击“删除文件”按钮和“删除 Cookies”按钮。
检查 IE 安全设定:打开Internet Explorer浏览器,按工具菜单,选择“Internet 选项”,选择“高级”,拖动滚动条到安全选区,证实“检查服务器证书吊销”没有被选中,同时证实“使用 SSL 2.0”和“使用 SSL 3.0”被选中。然后按“确定”。
点击“开始”--“运行”,依次键入:regsvr32 softpub.dll,regsvr32 mssip32.dll,regsvr32 initpki.dll(这一次时间比较长)。
检查错误的代理服务器设置。在 MSN Messenger“工具”菜单上,单击“选项”。在“连接”选项卡上,确保您清除了“我使用代理服务器”复选框。
防火墙和第三方应用程序可能会影响连接到 MSN Messenger。您可以禁用应用程序、防火墙或打开防火墙相应端口,然后尝试连接到 .Net MessengerService。
如果您为局域网使用 ICS 或路由器,则可能需要调整一些设置或更新硬件/固件驱动程序。
如果您的 Passport 未被识别,请登录 Passport 站点 ,并确认在该处可被识别。如果在该处可被识别,但仍不能登录到 .NET Messenger Service,则可能是消息服务器暂时关闭正在维护或达到了 Internet 的最大通流量(使用率高峰期间)。请稍后再试。也可以检查服务器状态页以查看服务器的最新信息。
如果在Passport 站点仍然不可识别,请到这里:memberservicesnet.passport.com/memberservice.srf ,然后选择:“我忘记了密码”。
C:\Documents and Settings\[用户名]\Application Data\Microsoft\MSN Messenger 下会为每个登录过MSN Messenger的用户创建一个文件夹,把该文件夹删除,然后重新登陆成功。(其中的用户名是指你登陆操作系统的用户名)
阿里云消息中间件(MQ)探秘
阅读字数: 2513 | 5分钟阅读
获取嘉宾演讲视频及PPT ,请点击:
阿里巴巴中间技术专家不铭从功能特性、技术架构、最佳实践、案例分析四个方面进行了《Aliware-MQ消息队列》的分享。
Aliware-MQ是阿里云提供的企业级互联网架构的核心产品,基于高可用分布式集群技术,支持海量高并发和万亿级消息流转,支持海量的消息堆积,支持高可靠/高可用方案,提供了运维、监控等一系列完整的配套服务。
如上图所示,从消息的维度来看分为普通消息、顺序消息、定时消息和事务消息等四种消息,无论是发送哪种消息客户端都支持熔断机制,即如果发现发送目标节点有性能问题,客户端会自动进行熔断,把有问题的节点排出去,保证消息发往可靠性最高的机器。管理方面已经支持消息的查询、消息回溯、消息全链路轨迹和监控报警机制。性能上MQ已经达到了百亿级的堆积能力,毫秒级的投递延迟,支持万级节点高并发,集群水平热扩缩。消息消费方面,支持失败后的消息重投机制,失败的消息会重新投递到队列中去,现在最多支持16次重投。
上图是Aliware-MQ的功能架构。左边是控制台的管理,可以在上面做发布订阅管理。右边目前的接入方式是SDK支持TCP协议,同时也支持HTTP接口,以及面向手机终端的MQTT协议。
OpenAPI是MQ提供给用户的管控方式,用于实现一系列资源管理和运维功能,用户可以通过Open API查询所需要的任何东西。
上图中是我们今年推出的一个MQ移动物联网套件。之前的客户端,不管是上游还是下游收发都是用各自的服务器。但是今年我们有了移动物联网套件,可以直接面向终端设备。比如手机、汽车等移动设备利用移动物联网套件,通过一个网关就可以直接和消息系统打通。
Aliware-MQ的消息系统是基于队列。队列要保证数据安全,是支持高并发和高性能读写的最基本元素。
如上图所示,Producer是消息发送集群,下游的Consumer是消费者集群,都依赖于MQ的SDK。Broker是消息服务器,所有的消息都发送到Broker上面;Name Server和ZK功能类似,用来做服务发现。Producer要从Name Server获取到Topic在哪个节点上,订阅Topic时需要知道Topic从哪里取,同样需要Name Server。Broker上的Topic信息会定时在Name Server上注册,Producer和Consumer在交互之前会从Name Server上获取目标。
图中的master是主机,slave是备机,主备之间会做数据同步,有异步和同步两种方式。一个master可以布多个节点,这个根据自己的成本来决定。如果扩容的话,只要直接布一台master即可,它会定时地将Topic注册到Name Server上,发送方和订阅方也会定时地感知这个过程,整个扩容的过程对于用户来说大概30秒就能完成。
Aliware-MQ所有数据存储在Commit Log里,它在实现上就相当于一个文件夹,每次会生成一个1G的文件。不管哪个Topic写过来的消息都会直接写入这个文件中,这个文件写满后再直接写下一个。
针对每一个Topic,要在业务层面对它进行区分,所以我们做了一层索引。例如在上图中有5个队列,每个队列都会生成定长的索引文件,通过索引,可以找到这条消息当前处于哪个CommitLog文件的某个具体位置中。
这样存储结构,保证了无论多少个topic,CommitLog的写是顺序的,能较大的保证MQ的写入性能。
Aliware-MQ的负载均衡是按照队列维度来做的,消费的时候会把topic的队列平均分配给消费实例。比如有2个消费实例,topic队列是4个,那么每个消费实例就消费2个;而如果共有5个队列,那么就是是1个消费2个,另1个消费3个。一个队列同一时间只会被一个消费实例消费,所以当出现队列数量小于消费实例数量的情况时,就会有消费实例出现空闲,这个时候可以根据业务实际情况手动通过工具将队列数量调大。
消息写进来都是先放在Java堆里,然后再落盘。如果用户要消费的消息都在内存里,那么就可以很快的读取到。但是如果用户消息堆积比较久,消息已经不在内存里而是存储在了磁盘中,这个时候就需要去磁盘里取数据,然后加载到内存里面读取出来。
Aliware-MQ的刷盘策略有异步和同步两种。异步到内存就返回成功,同步写则一定是消息刷到磁盘中才会返回成功。这种刷盘方式可以根据业务的具体需求进行配置,从写入的性能来看,异步写的性能肯定是会比同步的好。
从发消息的角度来看,如果发送失败,会有补偿机制。MQ的客户端会做三次重发,一台机器发送失败之后会默认往另外两台机器再尝试,如果三次都失败了才会把最终的失败结果传回,这个时候用户需要自己对发送异常进行相关处理。
有幂等要求的业务,Consumer在使用的时候需要自己做去重操作,在一些场景下,如客户端本地等待超时等,是无法保证消息完全不重复的,因此用户在进行系统设计时需要考虑到这一点。
Aliware-MQ目前支持的消息最大是4M,消息越小,性能越高。定时消息是支持消息的定时投递,可以自行设置要投递的时间,最长是40天。事务消息通过两阶段的提交的方式,来解决分布式事务问题。顺序消息可以采用全局顺序、分区顺序,严格保证消息的顺序。
Aliware-MQ的使用场景主要有系统间异步解耦、分布式事务、异构数据复制与分发、双十一大促的削峰填谷、大规模机器的Cache同步、日志服务和IM实时通信以及实时计算分析。
MQ顺序消息分为全局有序和队列有序。全局有序是从指所有消息发出开始,下游的接收方都是按照顺序接收;队列有序则是将消息进行区块分区,同一个分区内的消息按照先入先出的顺序进行顺序消费,保证一个队列只会被一个进程消费。
当一个交易系统下单之后,会发一条消息到MQ,购物车接收消息把购物车里的状态清空。如果这时交易消息发送失败,购物车就无法清空,对于数据来说这就是一个脏数据。面对这种情况我们有事务消息可以解决这个问题,在交易开始时先发送一条半事务消息,然后交易系统开始下单,所有事情做完之后再提交半事务,这时只有主动提交成功,消息队列才会将这条消息实际发送给用户。如果交易下单过程失败,则可以主动回滚这条消息,购物车和交易系统之间可以做到没有脏数据。
双十一大促时,各个分会场会有玲琅满目的商品,每件商品的价格都会实时变化。使用缓存技术也无法满足对商品价格的访问需求,缓存服务器网卡跑满。访问较多次商品价格查询影响会场页面的打开速度。于是MQ提供了一种广播机制,本来一条消息只会被集群的一台机器消费。如果使用广播模式,那么这条消息会被集群下的所有节点消费一次,相当于把价格信息同步到需要的每台机器上,可以取代缓存的作用。
实时计算功能主要是做一个消息总线,业务系统自动采集数据,把消息分发达下游的实时计算系统里,根据实时计算结果来给业务方做服务。
我今天的分享就到这里,谢谢大家!
简谈阿里云MQ消息队列云服务的计费模式
文章摘要:在阿里云上,就创建了一个消息队列的Topic,其他啥也没干,过了一天就欠阿里云2元了,消息队列这项云服务也太能吸金了吧?
最简单地说,消息队列就是消息在传输过程中用于保存消息的容器,在一次发送接收的通信过程中,其主要充当了“中转站”的角色,内部提供路由并保证消息的可靠传递。如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。
消息队列目前已经逐渐成为企业IT系统内部通信的核心手段之一,可以说当前绝大部分的大型分布式互联网业务系统都基于消息队列来构建的。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列的功能,成为异步通信的主要手段之一。
近几年,随着云计算技术的飞速发展,在IAAS产品已经相对成熟后,其他越来越多的产品也逐步推向了云端(很多中间件产品再用以前liences授权计费的方式已经不再受用)。MQ消息队列是中间件产品中比较重要的产品之一,其云化方案对于云计算平台能力的拓展与丰富有着重要的意义。
MQ(Message Queue)消息队列云服务是构成云计算核心能力不可或缺的一项产品,可以为云端的用户提供一种定义未来云端的应用开发和未来企业的技术架构方案的新方式。对于云端的消息队列服务,如果无法采用传统的liences授权方式计费,那么它又是如何计费的呢?今天我就向大家介绍下消息队列中间件这项云服务在阿里云上是怎么来计费的。
目前,阿里云上主要提供如下两种云化商用版MQ的计费模式:
(1) 预付费(包年包月,MQ 铂金版) :即为业界常说的包周期云服务计费模式,云端客户根据自己的预算以几个月或者一年作为租赁使用周期进行预先付款结算。根据阿里云官方文档的说明:该种计费方式订购的MQ是:“专享实例,独占物理节点”;诸如“专家尊享通道 保价护航”、“SQL 属性过滤”、“数据传输加密”、“多路访问方式”、“VPC SingleTunnel 访问”和“消息轨迹”几个重要的功能特性方面都比(2)中的按量付费版要支持的更加全面和完善一些。其实,从性价比上面来说更加适合一些土豪级的企业级大客户来用了。对于这类用户,可能本身不会去过多的研究MQ的一些关键技术,可以完全依托于阿里云的MQ产品 研发团队核心成员直接为自己的云端系统的构建,提供较为全面的MQ技术支持。
(2) 后付费(按量计费) :即为按量后付费的云服务计费模式,阿里云按照客户端的使用情况(一般,按照“Topic占用时长”+“API的调用次数”来计费的,具体的计费方法后面还会再讲)。各方面的功能都弱于(1)中的预付费版本。这种方式比较适合对MQ关键技术有一定了解的初中级使用者,完全可以按照自己的需求来构建适合云端业务系统的MQ。
解读:从上面这段阿里云官网上的计费项目说明中,可以得出以下几点关键信息:
(1) Topic资源占用费 :这部分费用可能往往会被用户忽略。使用MQ消息队列云服务的费用实际是包含两部分的,也就是说像我一样虽然没有用阿里云的MQ消息队列进行消息的发送和消费,但是因为创建并占用着一个Topic一天( Topic也是MQ消息队列资源的一部分 ),因此也会对我的账户进行扣费。所以,这里也提醒各位使用阿里云MQ消息队列云服务的各位童鞋要注意下,对于自己不用的Topic尽快删除,否则也会产生资费;
(2) API调用次数 :这部分的第一点应该比较好理解,对于MQ消息队列的使用(即为消息的发送和接收),需要按照调用Client端的API发送消息或者消费消息的次数来进行累计产生资费。但是,对于第二点没有实际使用过RocketMQ的童鞋可能不太好理解。在RocketMQ中,在Push的消费模式中有长轮询机制,如果Consumer端第一次发送Pull消息的请求至Broker,此时Broker端尚无可消费的消息时,会先hold住该Pull消息的请求,通过Broker端的两个后台线程服务—PullRequestHoldService和ReputMessageService来重新尝试Pull消息和二次处理。这里,默认长轮询的RPC通信的超时时间为30s,而Broker端挂起Pull消息请求的最长时间即为15s。从这里来看,第一次hold住Pull请求的15s是不计费长轮询次数的(即为不计费的,我认为因为hold住Pull请求是broker端来完成的本身就不会带来PRC远程通信的一次调用),倘若第二次从consumer端再发起长轮询请求则会进行计费,我个人想想觉得也合理的,因为毕竟会耗费一次RPC的远程通信访问。
这里列出下阿里云MQ消息队列云服务两种计费项目的列表展示:
对于上面的计费说明,从中可以看出关键信息有如下几点:
(1)阿里云MQ消息队列云服务是支持ACL权限分配的,可以将主账号创建的Topic分配给子帐号使用,子帐号产生的计费将会算到主账号上;
(2)MQ的后付费产品的结算方式应该是采用了根据出MQ云服务资源计量文件以后次日(T+1日来根据资源计量文件生成账单从账户扣费),这种方式就会存在余额不足的小风险(ps:欠费72小时后阿里云会自动清理该用户下面的Topic及其未消费而积压的存量消息);
(3)计费中比较关键的一点是“每 4 KB 发布或订阅数据以 1 次请求计费”,我认为这一点倒也合乎情理,消息发送或者接收本质上来说是一次RPC通信(基于TCP连接),那么按照消息大小来合理设置请求计费次数,即为对占用TCP带宽大小和吞吐量的计费。这一点在用户使用时候可能会忽略;
(4)事务消息、顺序消息和定时消息均比普通消息的计费价格来得更贵更高,所以使用的童鞋要好好考虑下发送和订阅这三类消息产生的资费问题;
本文主要根据自己在阿里云上使用MQ消息队列云服务的一些经验展开叙述,从技术开发者的视角来看MQ消息队列云服务的产品概念和定义,并对阿里云MQ消息队列云服务的计费模式和方法进行深入分析。限于笔者的才疏学浅,对本文内容可能还有理解不到位的地方,如有阐述不合理之处还望留言一起探讨。
阿里云的消息服务怎么集成spring boot
如何使用Spring Boot/Spring Cloud 实现微服务应用
spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud与Dubbo对比
提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB:
ESB(企业数据总线),一般采用集中式转发请求,适合大量异构系统集成,侧重任务的编排,性能问题可通过异构的方式来进行规避,无法支持特别大的并发。
Dubbo(服务注册管理),采用的是分布式调用,注册中心只记录地址信息,然后直连调用,适合并发及压力比较大的情况;其侧重服务的治理,将各个服务颗粒化,各个子业务系统在程序逻辑上完成业务的编排。
回归主题,Spring Cloud和Dubbo又有什么不同那,首先,我们看下有什么相同之处,它们两都具备分布式服务治理相关的功能,都能够提供服务注册、发现、路由、负载均衡等。说到这,Dubbo的功能好像也就这么多了,但是Spring Cloud是提供了一整套企业级分布式云应用的完美解决方案,能够结合Spring Boot,Docker实现快速开发的目的,所以说Dubbo只有Spring Cloud的一部分RPC功能,而且也谈不上谁好谁坏。不过,Dubbo项目现已停止了更新,淘宝内部由hsf替代dubbo,我想这会有更多人倾向Spring Cloud了。
从开发角度上说,Dubbo常与Spring、zookeeper结合,而且实现只是通过xml来配置服务地址、名称、端口,代码的侵入性是很小的,相对Spring Cloud,它的实现需要类注解等,多少具有一定侵入性。
如何用阿里云的消息服务,来实现两台PC之间的通信,求具体细节,思路什么的
之气我们也尝试过,不过用的是腾讯信鸽。其实很简单,两台PC之间通讯单纯靠第三方服务是不行的,你要有一个作为中转的软件,利用广播的功能收发消息到另外一台电脑上。阿里云消息到电脑上,电脑上的中转软件也收到,收到之后触发广播命令转给另外一台准备接受信息的中转软件上。
短信接口调用的时候报错
sp.RAM_PERMISSION_DENY RAM权限DENY 当提示RAM权限不足时,就需要给当前使用的AK对应子账号进行授权:AliyunDysmsFullAccess(权限名称)。具体权限授权详见:
isv.OUT_OF_SERVICE 业务停机 请先查看账户余额,若余额大于零,则请通过创建工单联系工程师处理
isv.PRODUCT_UN_SUBSCRIPT 未开通云通信产品的阿里云客户 未开通云通信产品的阿里云客户(该AK所属的账号尚未开通云通信的服务,包括短信、语音、流量等服务)注:阿里云短信服务包含:1、消息服务 2、云通信短信服务 3、云市场短信接口,账号和短信接口不可混用。当出现此类提示报错需要检查当前AK是否已经开通阿里云云通信短信服务,如已开通消息服务,则参照消息服务文档调用接口。
isv.PRODUCT_UNSUBSCRIBE 产品未开通 产品未订购(该AK所属的账号尚未开通当前接口的产品,如仅开通了短信服务的用户调用语音接口。),检查AK对应账号是否已开通调用接口对应的服务。短信服务开通链接:
isv.ACCOUNT_NOT_EXISTS 账户不存在 请确认使用的账号是否与申请的账号一致
isv.ACCOUNT_ABNORMAL 账户异常 请确认使用的账号是否与申请的账号一致
isv.SMS_TEMPLATE_ILLEGAL 短信模板不合法 TemplateCode参数请传入审核通过的模板ID,模板见:见:
isv.SMS_SIGNATURE_ILLEGAL 短信签名不合法 SignName请传入审核通过的签名内容,签名见:
isv.INVALID_PARAMETERS 参数异常 对照文档,检查参数格式。例:短信查询接口SendDate日期格式yyyyMMdd,错误:2017-01-01正确:20170101
isp.SYSTEM_ERROR isp.SYSTEM_ERROR 请重试接口调用,如仍存在此情况请创建工单反馈工程师查看
isv.MOBILE_NUMBER_ILLEGAL 非法手机号 PhoneNumbers参数请传入11位国内号段的手机号码
isv.MOBILE_COUNT_OVER_LIMIT 手机号码数量超过限制 短信接收号码,支持以英文逗号分隔的形式进行批量调用,批量上限为1000个手机号码,PhoneNumbers参数单次调用不传入过多接收号码
isv.TEMPLATE_MISSING_PARAMETERS 模板缺少变量 TemplateParam中需要以json格式字符串给使用的模板中出现的所有变量进行赋值。例:模板为:您好${name},验证码${code} TemplateParam={“name”:”Tom”,”code”:”123”}
isv.BUSINESS_LIMIT_CONTROL 业务限流 将短信发送频率限制在正常的业务流控范围内,默认流控:短信验证码 :使用同一个签名,对同一个手机号码发送短信验证码,支持1条/分钟,5条/小时 ,累计10条/天。
isv.INVALID_JSON_PARAM JSON参数不合法,只接受字符串值 TemplateParam入参以Json格式字符串形式传入。例:正确{“code”:”123”}
isv.BLACK_KEY_CONTROL_LIMIT 黑名单管控 黑名单管控是指变量内容含有限制发送的内容,变量不支持透传url,同时检查通过变量是否透传了一些敏感信息触发关键字
isv.PARAM_LENGTH_LIMIT 参数超出长度限制 单个变量长度限制在20字符内。
isv.PARAM_NOT_SUPPORT_URL 不支持URL 变量不支持透传url,同时检查通过变量是否透传了一些敏感信息触发关键字
isv.AMOUNT_NOT_ENOUGH 账户余额不足 转入金额不足以发送当前信息,确保余额足够发送当前短信
isv.TEMPLATE_PARAMS_ILLEGAL 模板变量里包含非法关键字 变量不支持透传url,同时检查通过变量是否透传了一些敏感信息触发关键字
SignatureDoesNotMatch Specified signature is not matched with our calculation. Signature加密错误,如为SDK调用,则需要注意accessKeyId和accessKeySecret字符串赋值正确无误;如自行加密的Signature,则需要检查加密逻辑,对照文档:
InvalidTimeStamp.Expired Specified time stamp or date value is expired. 时间戳错误,发出请求的时间和服务器接收到请求的时间不在15分钟内。经常出现该错误的原因是时区原因造成的,目前网关使用的时间是GMT时间
SignatureNonceUsed Specified signature nonce was used already. 唯一随机数重复,SignatureNonce为唯一随机数,用于防止网络重放攻击。不同请求间要使用不同的随机数值。
InvalidVersion Specified parameter Version is not valid. 版本号错误,需要确认接口的版本号,如云通信短信、语音、流量服务的Version=2017-05-25
InvalidAction.NotFound Specified api is not found, please check your url and method 接口名错误,需要确认接口地址和接口名,如云通信短信服务短信发送:dysmsapi.aliyuncs.com,接口名Action=SendSms
发表评论
暂时没有评论,来抢沙发吧~