当前位置: 首页 > news >正文

网站开发整体流程图互联网创业项目创意

网站开发整体流程图,互联网创业项目创意,广州开发网站哪家专业,5000元做百度推广效果怎么样1、时代背景 5G应用#xff0c;多终端应用#xff0c;物联网应用#xff0c;小程序#xff0c;工业互联#xff0c;大数据应用等等大前端时代的到来#xff0c;程序员不能只关注crud#xff0c;因为以后的服务并发量只会越来越多。 高并发架构师、大数据架构师或者说j…1、时代背景 5G应用多终端应用物联网应用小程序工业互联大数据应用等等大前端时代的到来程序员不能只关注crud因为以后的服务并发量只会越来越多。 高并发架构师、大数据架构师或者说java高级工程师现在才能找到一份好工作。 NettyT-ioRedis、zookeeper、高性能http组件Nginx、java并发编程组件JUC包工作两年以后必须熟练掌握。 2、netty框架 Netty是Jboss提供的一个Java开源网络编程框架基于NIO的客户端、服务端编程框架既能快速开发高并发、高可用、高可靠的网络服务器也能开发客户端程序。 KafkaRocketMQes搜索引擎大数据处理Hadoop框架还有RPC框架Dubbo都是用了Netty框架。 Netty火热的原因提供了异步的、事件驱动的网络应用程序框架和工具。Netty的所有IO操作都是异步非阻塞的。和JDK提供的NIO相比Netty提供了更加丰富的api。 1api简单开发门槛低 2功能强大支持很多主流协议和自定义协议 3性能高和其他主流的NIO框架比Netty性能更高 4成熟生态好社区活跃并且修复了JDK当中Nio中所有已发现的bug 5面试加分巨加分几乎所有的中间件的高性能通信与传输都和Netty有关。 3高并发im项目 学习价值高并发的im系统具有相当大的挑战性对于传统的web开发者Springboot来说相当于进入了一个全新的天地。一个企业级的web的qps可能在1000以内大厂在上万而且基本上按照常用的调优思路多线程加缓存解耦优化sql就可以搞定秒杀场景除外而且大部分都是在干crud没啥意思。一个分布式的。高并发的IM系统的面临的QPS峰值可能在十万百万千万甚至上亿级别。如何规划项目架构如何规划服务器资源如果规划版本迭代如果设置操作系统参数来能够容纳更多的socket连接都非常考验程序员的基础知识。 4IO读写的基本原理 一个原则操作系统将内存划分为两部分一个是内核空间一个是用户空间。在linux操作系统中内核模块运行在内核空间相应的进程处在内核态用户程序运行在用户态对应的进程处于用户态。 内核态的进程可以访问内核空间也可以访问硬件设备磁盘网卡等调用系统的一切资源用户态的进程没有这样的权限也不能直接调用内核代码定义的函数。并且每个用户态的进程都有一个单独的用户空间他要想拿到内存或磁盘中的数据只有将进程切换到内核态然后向内核发出指令完成调用系统资源之类的操作。 用户态的进程进行系统调用后也不是直接就从硬件里把这些数据读出来了。从硬件里读数据是由操作系统来干的。 缓冲区的概念两个缓冲区内核缓冲区应用程序缓冲区。缓冲区的目的就是为了减少硬件之间频繁的物理交换。操作系统会对内核缓冲区进行监控等待缓冲区达到一定大小后再进行实际的物理设备的交换实际的io处理 io操作其实就是两个缓冲区之间的复制。 5io模型 服务端高并发IO编程往往要求的性能都非常高一般情况下需要选用高性能的IO模型。 四种io模型 同步阻塞io默认情况下在Java应用程序进程中所有对socket连接进行的IO操作都是同步阻塞IO。 简单的说就是在内核缓冲区获取数据的这个时间用户态进程得阻塞着什么也干不了。 在即时通讯项目里不会采用这种模型因为一般情况下是一个socket连接对应一个独立的线程如果用这种模型在高并发项目中需要很多的线程来维护大量的socet连接内存线程之间的切换开销会很大性能很低。 优点应用程序开发简单在阻塞等待数据的区间用户线程挂起基本不会占用太多的cpu资源。 同步非阻塞io 1在内核数据没有准备好的阶段用户线程发起IO请求时立即返回。所以为了读取最终的数据用户进程或者线程需要不断地发起IO系统调用 2内核数据到达后用户进程或者线程发起系统调用用户进程或者线程阻塞。内核开始复制数据它会将数据从内核缓冲区复制到用户缓冲区然后内核返回结果 3用户进程或者线程读到数据后才会解除阻塞状态重新运行起来。也就是说用户空间需要经过多次尝试才能保证最终真正读到数据而后继续执行。 同步非阻塞IO的优点是每次发起的IO系统调用在内核等待数据过程中可以立即返回用户线程不会阻塞实时性较好。 同步非阻塞IO的缺点是不断地轮询内核并且还会不断的进行用户态和系统态之间的切换这将占用大量的CPU时间效率低下。总体来说在高并发应用场景中同步非阻塞IO是性能很低的也是基本不可用的一般Web服务器都不使用这种IO模型。在Java的实际开发中不会涉及这种IO模型但是此模型还是有价值的其作用在于其他IO模型中可以使用非阻塞IO模型作为基础以实现其高性能。 IO多路复用 1选择器注册。首先将需要read操作的目标文件描述符socket连接提前注册到Linux的select/epoll选择器中在Java中所对应的选择器类是Selector类。然后开启整个IO多路复用模型的轮询流程。 2就绪状态的轮询。通过选择器的查询方法查询所有提前注册过的目标文件描述符socket连接的IO就绪状态。通过查询的系统调用内核会返回一个就绪的socket列表。当任何一个注册过的socket中的数据准备好或者就绪了就说明内核缓冲区有数据了内核将该socket加入就绪的列表中并且返回就绪事件。 3用户线程获得了就绪状态的列表后根据其中的socket连接发起read系统调用用户线程阻塞。内核开始复制数据将数据从内核缓冲区复制到用户缓冲区。 4复制完成后内核返回结果用户线程才会解除阻塞的状态用户线程读取到了数据继续执行。 IO多路复用模型的优点是一个选择器查询线程可以同时处理成千上万的网络连接所以用户程序不必创建大量的线程也不必维护这些线程从而大大减少了系统的开销。与一个线程维护一个连接的阻塞IO模式相比这一点是IO多路复用模型的最大优势。 异步io 增加了一个回调操作但是因为出现的晚jdk对于他的支持并不完善所以用的不多。 异步io模型是性能最高的一个模型。 目前高并发网络应用程序都是采用的io多路复用。 6即时通讯程序可能遇到的问题 1操作系统的限制 linux操作系统对文件的句柄数有限制是1024也就是说一个线程最多处理1024个socket连接这是远远不够的 2socket虽然是长链接但是他能一直保持连接吗 理论上是但是实际上不是所以我们在架构设计的时候就要考虑这种情况。 比如说服务器防火墙会关闭不活跃的连接最常见比如说由于网络丢包或者网络波动等等都可能造成socket的不正常关闭。 理论上讲关闭socket连接会有一个按钮比如说下线这个是正常关闭socket连接但是也百分之99的人不会点下线而是直接关闭整个app这个时候socket就是不正常关闭了不正常关闭会造成什么问题呢 socket不正常关闭会造成网络连接假死。 网络连接假死 如果底层的socket已经断开但是服务端并没有正常关闭服务端认为这条TCP连接仍然是存在的则该连接处于“假死”状态。连接假死的会造成什么问题 服务端长时间运行后会面临大量假死连接得不到正常释放的情况。由于每个连接都会耗费CPU和内存资源因此大量假死的连接会逐渐耗光服务器的资源使得服务器越来越慢IO处理效率越来越低最终导致服务器崩溃。 怎么解决呢客户端定时发送心跳检测、服务端定时进行空闲检测。 3分布式IM系统会有哪些问题 4IM系统部署建议使用传统的jar包部署 5用户将客户端进程关闭还怎么实现消息推送 方法1流氓做法几年前的方案 ios系统假后台因为有自己的推送中心所以socket服务器直接像苹果推送平台推消息就行了但是安卓没有国内给禁了前几年基本上都是采用的流氓的做法后台偷偷唤醒app进程或者别的app启动时唤醒其他app的进程。 方法2采用推送平台比如说极光推送对接统一推送联盟 chatService架构 注意正常的socket服务的序列化协议应该采用ProtobufProtobuf是最高效的二进制序列化协议但是学习阶段先用json。json是最紧凑的文本协议。
http://www.dnsts.com.cn/news/188840.html

相关文章:

  • 不注册公司可以做网站吗网站前端开发培训资料
  • 网站代码502页面设计软件教程
  • 郑州企业网站价格外贸网站建设公司
  • 杭州利兴建设官方网站中国4台根服务器地点
  • 网站系统优点在线设计 网站源码
  • 上海网站排名优化怎么做商务网官网
  • wordpress网站扫描工具16种营销模式
  • 广东万泰建设有限公司网站南充网站建设服务
  • html5网站正在建设中上海网页设计学校
  • 一个空间能放几个网站自己开网站工作室
  • 西宁市建设网站公司湘潭做网站 i磐石网络
  • 做打鱼网站需要多少钱网站规划内容
  • 电商网站seo公司中企控股集团
  • 企业网站可以备案个人网站运营规划
  • 大气婚庆网站源码网页制作与设计的英文
  • 百度智能云windows系统服务器建站谷歌网站怎么设置才能打开网站
  • hui怎么做网站搭建一个视频网站多少钱
  • 湖南禹班建设集团网站开公司要多少钱才能注册
  • 做外贸的网站要多少钱网站关键词怎么布局
  • 南京做网站品牌单页主题 wordpress
  • 简述建设一个网站的基本步骤wordpress怎么分类分栏
  • 设计最好的网站做软件开发的人厉害吗
  • 网站运营与管理的内容包括智慧团建电脑版登录入口
  • 网站建设天猫店建设学院实验室网站的作用
  • 大名专业做网站青岛app软件开发公司
  • 广州网站建设公司小程序个人网站设计论文的结论
  • wordpress 全站搜索广州智能模板建站
  • 海兴县网站建设网站目录结构说明
  • 全媒体网站的建设佳木斯做网站
  • 黄村网站开发公司电话seo推广教程seo高级教程