首页 文章 精选 留言 我的

精选列表

搜索[通信框架],共10000篇文章
优秀的个人博客,低调大师

ALink协议是最简单的通信协议

物联网全栈教程-从云端到设备(六) 关注零妖的微信公众号,获取第一手物联网的技术干货:LINGYAOIOT 一 物联网项目在开发初期,需要云端和设备端两个工种的工程师一起谈谈实现的技术细节。有一个叫作ALink协议的语言,成功解决了两个物种之间交流困难的世纪难题! ALink协议是针对物联网开发领域设计的一种数据交换规范。设备端按照这个简单的规范把数据组织一下发送给云端,云端工程师也懂这个简单的规范,可以直接拿这个数据进行处理。同时还解决了调试困难的痛点:云端工程师使用一个叫做MQTT客户端的电脑工具,就可以发送符合ALink协议的测试数据调试云端产品的代码;设备端工程师就可以在给单片机写代码的时候直接组织一个符合ALink协议的测试数据,从而不用依赖云端下发。 二 物联网将物理世界的万物接入网络并通过整合各类服务实现智能化。“物”(T

优秀的个人博客,低调大师

Spring Cloud微服务实战(五)-应用通信

订单服务源码https://github.com/Wasabi1234/SpringCloud_OrderDemo 商品服务源码https://github.com/Wasabi1234/SpringCloud_ProductDemo 1 HTTP vs RPC 5-2 RestTemplate的三种使用方式 3 负载均衡器:Ribbion 4 追踪源码自定义负载均衡策略 command+option+B进入其实现类 再跟进到 LoadBalancerClient 中 RibbonLoadBalancerClient#choose() RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer) ILoadBalancer RibbonLoadBalancerClient#getServer(ILoadBalancer loadBalancer) ILoadBalancer#getAllServers(),并进入 启动两个 Product 服务 product#1 product#2 再 debug 启动 Order 服务 三个服务成功注册 在此打断点,并 debug 运行 获取服务列表 再看看其负载均衡策略 可见默认即轮询 负载均衡请求 请求到2 请求到1 的确是轮询请求 通过启动日志也可看出具体使用的策略 为了检验是否为轮询,在此打断点 符合预期,确实为轮询 如果希望使用其他负载均衡规则该咋办呢,看官网文档 如希望用随机规则替代默认的轮询规则 配置全路径名 成功替换默认规则 5-5 Feign的使用Feign是一个声明式的Web服务客户端。这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters。Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端。 如何加入Feign 要在您的项目中包含Feign,请使用组org.springframework.cloud和工件ID spring-cloud-starter-feign的启动器 在启动类添加注解@EnableFeignClients 可以在@EnableFeignClients属性defaultConfiguration中以与上述相似的方式指定默认配置。不同之处在于,此配置将适用于所有feigh客户端。 调用商品服务的目标接口 声明调用的服务接口方法 @FeignClient name属性为某所需调用的某个服务的接口 在@FeignClient注释中,String值(以上“存储”)是一个任意的客户端名称,用于创建Ribbon负载平衡器,还可以使用url属性(绝对值或只是主机名)指定URL。应用程序上下文中的bean的名称是该接口的完全限定名称。要指定自己的别名值,可以使用@FeignClient注释的qualifier值。 添加@FeignClient注解 5-6 获取商品列表(Feign) 5-7 扣库存(Feign) 5-8 整合接口打通下单流程(Feign) 5-9 项目改造成多模块 5-10 同步or异步 5-11 RabbitMQ的安装 5-12 微服务,Docker和DevOps

优秀的个人博客,低调大师

新手练练----也做即时通信系统(2)

继续完善功能,后面的路还很长。。。 今天还用这个小示例程序给别人讲了次课,发现自己的演讲天赋还是不错的,讲完后闻及感受,说我讲的听通俗易懂的,例子比喻也很不错,开心,呵呵。。。 clientMain.java out.println(this.clientCmd); this.serverMsg = in.readLine(); strTmp = this.serverMsg.split(spliter); if(strTmp[0].equals(new String("getbuddys"))) { this.creatBuddyList(strTmp); //用服务器传过来的好友数据建列表 } private void creatBuddyList(String[] buddys) { DefaultMutableTreeNode buddy = null; for(int i=1;i<buddys.length;i++) { buddy = new DefaultMutableTreeNode(buddys[i]); root.add(buddy); } } JPanel jPanel1 = new JPanel(); DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的好友"); JTree buddyTree = new JTree(root); JScrollPane jScrollPane1 = new JScrollPane(buddyTree); SeverThread.java else if(msgTmp[0].equals(new String("getbuddys"))) {//获取好友列表 String clientID = msgTmp[1];//获取客户id号 String buddyName; com.vitamin.DataAccess.DBbase myDb = new DBbase(); this.sql = "select * from buddies where user = "+clientID; this.rs = myDb.executeQuery(this.sql); while(rs.next()) { buddyName = rs.getString("buddy"); this.serverMsg += buddyName; } this.out.println(this.serverMsg); } 运行结果: 6-22-2.GIF 本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/06/22/433350.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于jabber(XMPP)架设即时通信服务

Jabber 是著名的即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。 XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的技术来自于Jabber,其实它是 Jabber的核心协定,所以XMPP有时被误称为Jabber协议。Jabber是一个基于XMPP协议的IM应用,除Jabber之外,XMPP还支持很多应用。 下面就是如何架设内部即时通讯服务的步骤: 第一步:安装Jabber服务器软件 Jabber服务软件有很多,具体可以参考jabber官方网站的列表:其中最为方便安装搭建的无疑是Openfire(Wildfire),一款基于GPL协议开源软件,Openfire有linux、windows和MAC的不同版本,软件需要java环境支持,不过软件本身自带了环境包,你可以根据你的需要下载不同的版本。 下载地址: 最新版本:Openfire 3.3.2 1、Windows版本安装方法: 下载:openfire_3_3_2.exe带java环境版本 安装:直接运行安装文件,程序默认安装至c:"Program Files"Openfire 运行:"bin"openfire.exe 第二步:配置jabber服务器 Openfire(Wildfire)支持完全的web安装,如果你在本地按安装只需要在浏览器中输入(远程服务器为http://你的服务器地址:9090)即可开始即时通讯服务器配置。 (1)语言选择:中文简体 (2)服务期设置:选择域及端口,建议默认 (3)数据库设置:根据需要,这里选“标准数据库” (4)标准数据库设置:选择MySQL,数据库URL填入你的数据库地址,端口和数据库名称(请自行创建),用户名密码填入你的mysql的帐号密码,其他更具需要选择填写。继续之后会在你的mysql中创建表并初始化。 (5)特性设置:如果你不打算用LDAP,保留默认 (6)管理员帐户设置:填入系统管理员信息 7)安装完成 至此,Openfire安装完毕。你可以继续登录到管理控制台,进行更为详细的设置。 第三步:Jabber客户端安装配置 支 建议使用Spark,因为Spark和Openfire能够很好的相互支持,可说黄金组合。 (1)下载for windows的版本,安装比较简单。 (2)选择高级选项:服务器填入你的服务器地址,端口为5222 (3)注册一个新帐号:服务器参照前文填写 4)注册成功后,开始登录。 现在你就可以和局域网内其拥有jabber帐号的用户通讯了 第四步:Jabber连接与MSN、ICQ等IM通讯 Jabber最有优势的就是其通 信协议,可以和多种即时通讯对接。比如有第三方插件,能让jabber用户和MSN 、Yahoo Messager、ICQ等IM用户相互通讯。因为Google遵从jabber协议,并且Google已经将Gtalk的服务器开放给了其它的 Jabber服务器。所以PSI、Giam等Jabber客户端软件支持GTalk用户登陆。 使用Openfire+Spark的组合也可以实现这个功能,下面具体介绍 (1)下载Openfire网关插件IM Gateway,下载地址: 下载一个名为gateway.jar的文件,该文件为Openfire的插件,Openfire通过这个插件实现与其他IM的通讯。 (2)安装gateway Gateway的安装非常简单,你只需要把gateway.ja拷贝到openfire/plugins目录下,重启Openfire服务,即可安装成功。 (3)配置gatway 安装成功后,打开Openfire的后台管理(例如:),即可看到gateway的安装选项(目前没有中文版),如图: 在你需要激活的服务上打勾即可。 (4)重新用Spark登录Openfire,你会发现你的Spark多了一些选项。填入你的msn帐号和密码,就可登录MSN了。 本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/07/15/1243510.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

关于交换机网络通信故障排除

思科的catalyst交换机一般不容易产生故障,一但产生故障,对于CCNA认证标准的学员通常都不太好检测和排除,在本小节将总结在交换机使用过程中常出现的一些小故障,以帮助学员通过认证并适应简单的工作环境。 关于物理层线路连接的故障: 物理层线路连接是网络正常使用的提前,不得不指出,很多时候所谓的网络故障是因为物理层线路接连所导致,比如:连接相应桌面计算机的双绞线连接了错误的交换机接口、RJ45连接头松脱、没有连接物理线缆等。在这里需要特别提出的是思科的交换机连接交换机使用交叉双绞线、交换机与路由器或者计算机相连使用直通双绞线。如果您需要交换机在某个接口上进行自适应介质接口,就必须在相关的接口模式下启动auto-MDIX指令,auto-MDIX的全称叫做automatic medium-dependent interface crossover自动介质接口交叉,当启动这个功能后,无论接口连接的是哪种类型的线缆,交换机都能自动调节该接口使其保持正常的工作。启动auto-MDIX有一个要求:该接口必须能自动协商速率与双工模式。 关于双工模式的故障: 双式模式不匹配可能会产生相关的故障。以本书出版的时间为界线,现今网络市场上几乎所有的设备都支持全双工模式,当然除了传统的集线器(HUB)设备外,应该让所有的网络设备处于全双式的模式下。默认情况下,思科建议将交换机的接口配置成自动协商速度与双工模式,这样做的理由是:如果发生一个半双工的设备去连接思科的交换机,那么,思科的交换机将把自己的全双工降级成半双工模式以适应该设备的运行,如果管理员强制要求交换机接口工作在全双工模式下,将产生接口错误。排除的依据是使用show interfaces fastEthernet 0/1 counters errors查看接口上的错误。如图14.27所示。 关于接口出错的故障: 交换机的接口出错通常会导致大量的数据帧,比如:当用户发现基于TCP的应用变得非常缓慢时,从表面看上去TCP的应用变慢是乎与交换机接口故障无关,但是进一步思考,TCP变慢的更多原因是由于TCP慢启动所致,在TCP慢启动的状态下TCP的滑动窗口尺寸将变小,而这种现象往往是交换机丢包所致,在这种状况下,基于UDP的应用就更可怕,因为UDP根本不会重传,所以网络质量将严重下降。所以在排除这种故障时,我们需要知道,交换机为什么丢包,这往往与交换机的接口错误有关,必须查看交换机接口的错误统计消息,关于交换机接口的错误统计消息,可以通过show interface x/y counters errors来得到如上图14.27所示,现在来理解每个错误统计器的意义: nAlign-Err(对齐错误):如果数据帧不是以偶数个八位组结束就会出现对齐错误,指示是物理层差错,一般是由于布线、交换机接口故障所引发。 nFCS-Err(帧校验错误):帧校验错误,通常也发生在物理层,并伴随Align-Err现象。 nXmit-Err(发送错误):指示交换机的接口发送缓存溢出,这通常是入站和出站速率不匹配所造成的。 nRcv-Err(接收错误):指示交换机的接口接收缓存溢出,这通常是交换机的背板发生拥塞,导致接收缓存被堆满。在很多时候接收错误也暗示了双工模式不匹配。 nUnderSize(超短帧):指示校验和有效,但是帧尺寸小于64字节,这表示连接到该接口的主机正在发送无效的数据帧尺寸。 nSingle-Col(单一冲突):指示在该接口成功发送数据帧之前,产生了一次冲突时会发生单一冲突错误,产生这种错误的原因是链路的使用率过高或者双工不匹配。 nMulti-Col(多次冲突):指示在该接口成功发送数据帧之前,产生了多次冲突时会发生多次冲突错误,产生这种错误的原因是链路的使用率过高或者双工不匹配。 nLate-Col(后期冲突):指示转发数据帧以后,才检测到的冲突,产生这种错误的原因是物理介质(比如:线缆)过长、或者双工不匹配。 nExcess-Col(过载冲突):当数据帧连续遇到16次冲突后会被丢弃,此时就会出现过载冲突错误,产生这种错误的主要原因是链路的使用率过高、双工不匹配、网络中的设备特别是半双工设备太多。 nCarri-Sen(载波侦听):指示该接口工作在半双工状态,根据CSMA/CD的工作原理,在半双工状态下发送数据时,需要进行冲突检测这将增加carri-sen计数器,在全双工的模式下是不使用CSMA/CD。 nRunts(残帧):帧的尺寸小于64个字节,而且CRC错误,出现残帧的错误一般是由物理层故障或者双工模式不匹配所导致的。 nGiants(超长帧):帧的尺寸大于1518个字节,通常出现超长帧错误是主机NIC故障所导致。 关于交换机CPU的使用率过高的故障: 如图14.28所示的交换机架构,通常交换机的架构由两个层面组成:一个控制层面、一个转发层面。控制层面负责运行交换机的操作系统,STP、路由协议、维护路由表、执行ACL等,控制层面包括交换机的CPU和内存。转发层面包括交换机的转发逻辑和背板,交换机的转发逻辑是交换机用于做出转发决定的硬件,该硬件负责重写数据帧头;而交换机的背板负责物理连接到交换机的端口,它依赖于交换机的体系统架构,数据帧从交换机的入站接口进入,然后转发给交换机的背板,最后通过出站接口转发数据帧。注意在这个过程中控制平面并不直接参与数据帧的转发操作。所以在交换机正常工作的情况下,即便是流量转发的高峰期,交换机的CPU占用率也应该很低,因为它不直接参加流量转发。 图14.28交换机的架构 虽然控制层面不直接参与流量转发,但是由于转发层面中的转发逻辑却来自于控制层面,因为数据帧思转发与控制层面还是存在一定的间接关系的,这样的话,如果控制层面出现持续性的高负载,比如CPU占用率过高,这将影响交换机转发数据的速率。所以从交换机的架构来讲,控制层面不会影响交换机的性能,但是在故障排除时还必须考虑控制层面的因素。 交换机的转发逻辑以一个叫做TCAM的专用内存体现,TCAM与交换机的CEF功能相结合,数据转发的速度将非常快,但是一旦转发逻辑故障,比如:TCAM内存溢出,转发逻辑将无法转发流量,此时将由交换机的CPU来完成转发流量,这将增加交换机CPU的开销,转发能力也会被降低。或者换一句话来讲,如果交换机的CPU占用率过高,这表示交换机已经没有使用转发逻辑转发数据帧,需要及时排查故障。 本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1371766,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册