java技术圈 为您找到相关结果 19

长连接/websocket/SSE等主流服务器推送技术比较

最近做的某个项目有个需求,需要实时提醒client端有线上订单消息。所以保持客户端和服务器端的信息同步是关键要素,对此我们了解了可实现的方式。本文将介绍web常用的几种方式,希望给需要服务器端推送消息的同学在选型上有一点启发。一、推送技术常用的集中实现的实现方式1.1 短连接轮询:前端用定时器,每间隔一段时间发送请求来获取数据是否更新,这种方式可兼容ie和支持高级浏览器。通常采取setInterval或者setTimeout实现。(轮询示意图)通过递归的方法,在获取到数据后每隔一定时间再次发送请求,这样虽然无法保证两次请求间隔为指定时间,但是获取的数据顺序得到保证。 缺点:1、页面会出现‘假死’setTimeout在等到每次EventLoop时,都要判断是否到指定时间,直到时间到再执行函数,...阅读全文

博文 2020-05-15 07:26:05 知乎

Golang - 调度剖析【第二部分】 - Golang 攻略

回顾本系列的第一部分,重点讲述了操作系统调度器的各个方面,这些知识对于理解和分析 Go 调度器的语义是非常重要的。在本文中,我将从语义层面解析 Go 调度器是如何工作的,并重点介绍其高级特性。Go 调度器是一个非常复杂的系统,我们不会过分关注一些细节,而是侧重于剖析它的设计模型和工作方式。我们通过学习它的优点以便够做出更好的工程决策。 开始 当 Go 程序启动时,它会为主机上标识的每个虚拟核心提供一个逻辑处理器(P)。如果处理器每个物理核心可以提供多个硬件线程(超线程),那么每个硬件线程都将作为虚拟核心呈现给 Go 程序。为了更好地理解这一点,下面实验都基于如下配置的 MacBook Pro 的系统。 可以看到它是一个 4 核 8 线程的处理器。这将告诉 Go 程序有 8 个虚拟核心可用于并...阅读全文

博文 2019-06-18 07:15:00 SegmentFault 思否

SSE和WebSocket的用法和比较 - like2372

在我们日常开发中,会遇到服务端和客户端的通讯,今天我们就来比较一下HTML5新特性SSE和WebSocket的用法。 一,SSE 简介 SSE(Server-Sent Events,服务器发送事件)是围绕只读Comet 交互推出的API 或者模式。 SSE API允许网页获得来自服务器的更新(HTML5),用于创建到服务器的单向连接,服务器通过这个连接可以发送任意数量的数据。服务器响应的MIME类型必须是text/event-stream,而且是浏览器中的JavaScript API 能解析格式输出。SSE 支持短轮询、长轮询和HTTP 流,而且能在断开连接时自动确定何时重新连接。 客户端 //判断是否支持SSE if('EventSource' in window){ //初始化SSE v...阅读全文

梯度提升树(GBDT)原理小结 - 刘建平Pinard

在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)做一个总结。GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法,本文统一简称GBDT。GBDT在BAT大厂中也有广泛的应用,假如要选择3个最重要的机器学习算法的话,个人认为GBDT应该...阅读全文

博文 2020-03-24 03:41:00 博客园

如何理解BIO、NIO、AIO的区别?

很多文章在谈论到BIO、NIO、AIO的时候仅仅是抛出一堆定义,以及一些生动的例子。看似很好理解。但是并没有将最基础的本质原理显现出来,如果没有没有从IO的原理出发的话是很难理解这三者之间的区别的。所以本篇文章从Java是如何进行IO操作为开头进行分析。 Java中的IO原理 首先Java中的IO都是依赖操作系统内核进行的,我们程序中的IO读写其实调用的是操作系统内核中的read&write两大系统调用。 那内核是如何进行IO交互的呢? 网卡收到经过网线传来的网络数据,并将网络数据写到内存中。 当网卡把数据写入到内存后,网卡向cpu发出一个中断信号,操作系统便能得知有新数据到来,再通过网卡中断程序去处理数据。 将内存中的网络数据写入到对应socket的接收缓冲区中。 当接收缓冲区的数据写好之...阅读全文

博文 2021-08-16 03:05:31 juejin.cn

Netty 权威指南笔记(二):Java NIO 和 Netty 对比_albon arith

Netty 权威指南笔记二Java NIO 和 Netty 对比 Java NIO 开发Netty 开发 示例程序 Netty 权威指南笔记(二):Java NIO 和 Netty 对比 Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? API 使用简单,开发门槛低。功能强大,预置多种编解码功能,支持多种主流协议。定制能力强,可以通过 ChannelHandler 对通信框架灵活扩展。性能高。成熟稳定,社区活跃,已经修复了 Java NIO 所有的 Bug。经历了大规模商业应用的考验,质量有保证。 Java NIO 开发 我们看一看在 笔记(一)里面的 Jav...阅读全文

博文 2021-08-27 08:12:00 CSDN博客

负载均衡详解

本文分享自天翼云开发者社区《负载均衡详解》,作者:杨锦负载均衡(Load Balancing)是一种将网络流量或请求分发到多个服务器或资源的技术,以确保这些服务器或资源能够更均匀地处理负载,提高系统的性能、可用性和可伸缩性。负载均衡通常应用于Web服务、应用程序服务器、数据库服务器以及其他网络应用中。负载均衡的目标:均衡负载:主要目标是分配流量或请求,确保各个服务器或资源之间负载均匀,避免某一台服务器负载过高,而其他服务器处于低负载状态。提高性能:通过将流量分散到多个服务器上,可以提高整体性能。每个服务器只需处理一部分请求,从而降低了每台服务器的响应时间。提高可用性:如果一个服务器出现故障或不可用,负载均衡器可以将流量重定向到其他正常运行的服务器上,从而提高系统的可用性和容错性。实现扩展性:...阅读全文

天翼云CDN全站加速产品对websocket协议的支持

本文分享自天翼云开发者社区《天翼云CDN全站加速产品对websocket协议的支持》,作者:郭****迎1、背景介绍HTTP 协议有一个缺陷:通信只能由客户端发起。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就只能使用轮询的方案。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,显而易见,轮询不仅效率特别低,且特别浪费带宽资源,因为HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多带宽资源。因此,工程师们一直在思考,有没有更好的方法。websocket 就是这样发明的。websocket 协议诞生于2...阅读全文

博文 2023-05-19 09:40:06 Tianyiyun

提升网站性能的秘诀:为什么Nginx是高效服务器的代名词?

在这个信息爆炸的时代,每当你在浏览器中输入一个网址,背后都有一个强大的服务器在默默地工作。而在这些服务器中,有一个名字你可能听说过无数次——Nginx。今天,就让我们一起探索这个神奇的工具。 ### 一、Nginx是什么 Nginx(发音为“enginex”)是一个开源的高性能HTTP和反向代理服务器。它由伊戈尔·赛索耶夫(IgorSysoev)于2002年创建,自那时起,Nginx因其稳定性、丰富的功能集、简单的配置文件以及低资源消耗而受到广大开发者和企业的喜爱。 ![image.png](http://static.itsharecircle.com/240204/fe11b55476b02484be1a2cdfee81fbc4.png) Nginx是一款轻量级的Web服务器/反向代理服...阅读全文

博文 2024-02-04 10:46:10 YDYXCODE

DPDK简介和原理

本文分享自天翼云开发者社区《DPDK简介和原理》,作者:s****nDPDK是一种绕过内核直接在用户态收发包来解决内核性能的瓶颈技术。什么是中断了解DPDK之前,首先需要先了解什么是中断,其实中断就是电信号,中断分两种:硬中断和软中断。什么是硬中断?硬中断是由与系统相连的外设(比如网卡、硬盘)自动产生的,主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。什么是软中断?软中断为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。硬中断和软中断有...阅读全文

博文 2024-08-23 10:14:22 Tianyiyun

Java实现负载均衡算法--轮询和加权轮询 - 渊渟岳

Java实现负载均衡算法--轮询和加权轮询 1.普通轮询算法 轮询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结束,然后再开始新一轮的循环。这种算法简单,但是没有考虑到每台节点服务器的具体性能,请求分发往往不均衡。 代码实现: /** * 普通轮询算法 */ public class RoundRobin { private static Integer index = 0; private static List nodes = new ArrayList<>(); // 记录轮询输出结果 private static StringBuffer stringBuffer = new StringBuf...阅读全文

博文 2024-08-21 17:57:27 博客园

负载均衡重定向的验证方法

本文分享自天翼云开发者社区《负载均衡重定向的验证方法》,作者:y****n背景:为满足一些金融客户对于安全的需要,天翼混合云产品中的负载均衡支持重定向功能也就应运而生介绍:负载均衡的重定向功能的开启入口在添加监听器页面,且选择监听器协议为HTTP时,重定向开关才能打开,即当前支持HTTP重定向至HTTPS,详见下图:​验证方法:重定向功能是否真的能够将请求进行重定向则需要做进一步的深入验证,手段如下(以新租户为例):1、创建VPC,至少批量创建3个云主机A,B,C2、创建负载均衡证书3、创建负载均衡(内网即可,返回地址标注为lbip)与云主机所属同一个vpc4、添加HTTPS的监听器(端口标注为lbport1);创建云主机组且纳入云主机A和B设置相同的端口和权重;创建健康检查5、分别进入云主...阅读全文

博文 2025-01-06 16:57:35 Tianyiyun

直播预告 | 连播2天!DeepSeek爆红密码+对AI技术、职业与商业的影响

本文分享自魔乐社区公众号《直播预告 | 连播2天!DeepSeek爆红密码+对AI技术、职业与商业的影响》2 月 25 日至 2 月 26 日,魔乐Modelers Devtalk栏目重磅来袭! 同时带来 DeepSeek 系列直播,解析 DeepSeek 爆火背后的效率革命以及对AI技术、职业与商业的影响,带你深度思考DeepSeek背后的关键问题,更有直播福利可领!1.直播介绍直播时间2 月 25 日、2月26日 每天19:30-21:00直播主题【前沿分享】DeepSeek 爆红密码:技术背后的效率革命【多元对话】聊聊DeepSeek如何颠覆AI技术、职业与商业直播参与嘉宾王伟印博士 --中国电信天翼云技术总监祝海林 --Auto-Coder/Byzer-SQL作者、Kyligence...阅读全文

博文 2025-02-24 11:11:39 Tianyiyun

RocketMQ vs Kafka:深度解析两大消息队列的架构差异与选型指南

## RocketMQ vs Kafka:深度解析两大消息队列的架构差异与选型指南 ### 引言 在分布式系统中,消息队列是实现异步通信、流量削峰和系统解耦的核心组件。Apache RocketMQ 和 Apache Kafka 作为业界最主流的两种消息中间件,常被开发者拿来比较。两者虽同属Apache顶级项目,但在设计哲学、性能表现和适用场景上存在显著差异。本文将从技术架构、性能数据、功能特性等维度全面对比,并提供选型建议。 --- ### 一、核心定位与设计哲学 #### 1. **Kafka:大数据领域的“日志高速公路”** - **诞生背景**:LinkedIn为应对日志流处理需求设计。 - **核心目标**: - 海量数据的高吞吐传输(如用户行为日志、指标数据)。 - 构建实时流处...阅读全文

博文 2025-03-03 20:01:04 zhidiantech

高并发-负载均衡

在处理高并发场景时,负载均衡是确保系统稳定性和性能的关键技术之一。通过合理配置和使用负载均衡策略,可以有效分散服务器压力,提高系统的可用性和响应速度。以下是关于如何实现高并发下的负载均衡的详细介绍。​获课:keyouit.xyz/13983/获取ZY↑↑方打开链接↑↑负载均衡的基本概念负载均衡(Load Balancing)是指将工作负载均匀地分配到多个计算资源上,如Web服务器、数据库服务器等,以优化资源利用、最大化吞吐量、减少延迟,并确保系统可靠性。实现负载均衡的技术和方法1. 硬件负载均衡器代表产品:F5 BIG-IP, Citrix NetScaler。优点:高性能、高可靠性,提供丰富的功能集如SSL卸载、内容交换等。缺点:成本较高,维护复杂。2. 软件负载均衡器Nginx:常用于反...阅读全文

高并发系统设计之负载均衡 1

在设计高并发系统时,负载均衡是确保系统能够高效、稳定处理大量请求的关键组件之一。它不仅有助于提高系统的可用性和响应速度,还能通过优化资源利用来降低成本。以下是关于高并发系统中负载均衡设计的详细探讨。​获课:keyouit.xyz/13983/获取ZY↑↑方打开链接↑↑负载均衡的作用提升性能:通过将请求分发到多个服务器上,可以有效减少单个服务器的压力,从而加快响应速度。增强可靠性:当某个服务器出现故障时,负载均衡器可以自动将流量导向其他健康的服务器,保证服务不中断。支持扩展性:便于向系统中添加更多服务器以应对不断增长的用户需求,实现水平扩展。实现负载均衡的技术方案1. 硬件负载均衡优点:高性能和稳定性,适合大规模部署。缺点:成本较高,配置复杂。示例产品:F5 BIG-IP, Citrix Ne...阅读全文

动力节点SpringSecurity视频教程,springsecurity,jwt实战精讲

https://97it.top/13581/ 摘要 随着网络安全问题的日益严重,数据加密技术成为了保护用户隐私和信息安全的重要手段。Bcrypt编码器作为一种广泛应用于密码哈希处理的加密算法,在许多现代系统中得到广泛的应用。本文旨在探讨Bcrypt编码器的工作原理、优势以及在实际应用中的潜力,分析其在密码保护和安全性保障中的重要作用。 1. 引言 在现代互联网中,用户密码的安全性是保护个人信息和系统安全的核心问题之一。密码哈希算法作为密码存储与验证的一部分,承载着保证密码不被泄露的重要功能。Bcrypt作为一种流行的密码哈希算法,由于其强大的安全性和抗暴力破解能力,成为许多网站和应用程序的密码处理方案。Bcrypt的设计理念是通过在密码哈希过程中引入“盐值”(salt)和增加计算复杂度,极...阅读全文

朝夕教育 vue3.2 vite vant企业阅读app

朝夕教育-vue3.2+vite+vant企业实战-阅读app”是一门专注于Vue3.2、Vite和Vant技术栈的企业级实战课程,旨在帮助学员掌握现代前端开发的核心技能。获课:keyouit.xyz/13836/获取ZY↑↑方打开链接↑↑课程通过开发一个完整的阅读类App项目,深入讲解Vue3.2、Vite和Vant的使用技巧,适合有一定前端基础并希望提升实战能力的开发者。课程内容 基础准备:包括Vue3.2核心特性与Composition API、Vite的配置与使用、Vant UI组件库的引入与使用。项目搭建:使用Vite初始化Vue3项目、配置路由(Vue Router)、状态管理(Pinia/Vuex)。阅读App核心功能开发:涵盖首页设计与实现(轮播图、推荐列表)、书籍分类与搜索...阅读全文

博文 2025-03-08 10:26:24 huo1234567

朝夕 vue3.2 vite vant企业开发阅读

朝夕 vue3.2+vite+vant企业实战开发阅读app”是一门专注于Vue3.2、Vite和Vant技术栈的企业级实战课程,旨在帮助学员掌握现代前端开发的核心技能。获课:keyouit.xyz/13836/获取ZY↑↑方打开链接↑↑以下是其详细介绍: 课程内容 基础准备:包括Vue3.2核心特性与Composition API、Vite的配置与使用、Vant UI组件库的引入与使用。项目搭建:使用Vite初始化Vue3项目、配置路由(Vue Router)、状态管理(Pinia/Vuex)。阅读App核心功能开发:涵盖首页设计与实现(轮播图、推荐列表)、书籍分类与搜索功能、书籍详情页(目录、简介、评论)、阅读器功能开发(翻页、字体调整、夜间模式)、用户中心(登录、注册、书架管理)。高级...阅读全文

博文 2025-03-08 10:24:55 huo1234567