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

商业网站建站每日一则小新闻

商业网站建站,每日一则小新闻,wordpress头像禁用,广汉有没有做网站建设公司目前的聊天室是单节点的,无论是http接口还是socket接口都在同一个进程,无法承受太多人同时在线,容灾性也非常差。因此,一个成熟的IM产品一定是做成分布式的,根据功能分模块,每个模块也使用多个节点并行部署…

目前的聊天室是单节点的,无论是http接口还是socket接口都在同一个进程,无法承受太多人同时在线,容灾性也非常差。因此,一个成熟的IM产品一定是做成分布式的,根据功能分模块,每个模块也使用多个节点并行部署。

1.技术选型

Spring Cloud Alibaba 和 Netflix 都是用于构建分布式系统的工具集,它们在微服务架构中发挥着重要作用,但在多个方面存在差异:
发展与维护

  • Netflix:部分核心组件(如 Eureka、Hystrix)停止更新维护,企业使用有后续风险。
  • Spring Cloud Alibaba:由阿里巴巴开源并持续投入开发,社区活跃,不断迭代优化,能及时修复问题、添加新功能。

核心组件功能

  • Netflix 服务注册与发现(Eureka),负载均衡(Ribbon),熔断与限流(Hystrix),都已经停更。
  • Spring Cloud Alibaba的各种组件处于活跃的开发和维护状态,不断推出新的功能和优化。

生态系统

  • Netflix:早期生态完整,但因组件停更发展受限。
  • Spring Cloud Alibaba:深度集成 Spring Cloud,与阿里巴巴其他开源项目配合好,社区文档和示例丰富,生态发展好。

综上,我们选择Spring Cloud Alibaba(2021.x 版本)。

2.主要服务组件

组件功能 
Nacos服务注册与发现组件,配置中心
spring-cloud-starter-gateway
通信网关
Spring Cloud Alibaba LoadBalancer客户端负载均衡器
spring-security-oauth2
集中授权中心

2.1.Nacos服务发现与配置管理

Nacos 是 Spring Cloud Alibaba 中核心的服务注册与发现组件,同时也具备配置管理功能。除了Nacos,还有Eureka,Consul,ZooKeeper等有类似功能,但Nacos同时在这两个方面表现优异,还有一个可视化管理后台,作为首选产品。

2.2.spring-security-oauth2授权中心

spring-security-oauth2作为一个集中授权中心,无论是客户端请求,还是微服务内部的请求,都需要先到它这里进行认证,结合jwt算法,可以生成一个无需服务器管理的token。

Spring Security OAuth2 实现了 OAuth 2.0 协议中的四种授权方式,分别是授权码模式(Authorization Code)、简化模式(Implicit)、密码模式(Resource Owner Password Credentials)和客户端模式(Client Credentials)。下面为你详细介绍这四种授权方式:

授权码模式(Authorization Code)

授权码模式是 OAuth 2.0 中最安全、最常用的授权方式。它适用于有服务器端的应用,通过客户端引导用户到授权服务器进行登录授权,获取授权码,再用授权码换取访问令牌。

简化模式(Implicit)

简化模式是一种简化的授权方式,适用于没有服务器端的客户端应用(如单页应用)。它省略了授权码的步骤,直接在浏览器中获取访问令牌。

 密码模式(Resource Owner Password Credentials)

密码模式是一种简单直接的授权方式,适用于受信任的客户端应用。用户直接将自己的用户名和密码提供给客户端,客户端使用这些信息向授权服务器换取访问令牌。

客户端模式(Client Credentials)

客户端模式是一种用于客户端应用自身获取访问令牌的授权方式,不涉及用户的身份信息。适用于客户端应用需要以自己的身份访问资源服务器的场景。

微服务内部授权上,本文使用客户端模式。当微服务之间以服务自身的身份进行交互,且不需要区分用户身份时,客户端模式是一个简单、安全、高效的授权方式。可以使用 OAuth 2.0 协议的客户端模式来管理服务之间的访问权限。

客户端登录验证上,本文使用密码模式,结合jwt算法,实现无状态的授权。

3.模块划分

对于一个聊天软件,按照功能进行划分,先简单划分为用户,web,socket模块。后面根据需要再进行细化。

主要目标,除了聊天这种实时性要求,以及客户端推送这种需要服务器主动发送消息以外,其他逻辑尽可能走http,实现负载均衡。 架构图如下:

客户端统一访问gateway网关,通过账号密码向授权中心认证通过后,得到一个token,后续所有http请求都需要带上此header。http登录成功之后,服务器还会根据负载均衡策略选择一个socket节点,作为客户端聊天的主要通信网关,用户在这次登录的生命周期只会绑定该节点,而其他http请求则会被分散到不同模板的不同节点。

4.第三方中间件

中间件作用
mysql 用户,讨论群,消息等数据的持久化方案
minio头像,多媒体消息的文件存储系统
redis用户数据快速缓存
nacos服务注册发现,配置管理

由于使用的中间件比较多,本文使用docker-compose进行集中化配置,配置如下:

version: '3.3'services:db:image: mysql:latestcontainer_name: im-mysqlenvironment:MYSQL_PASSWORD: '123456'MYSQL_ROOT_PASSWORD: '123456'ports:- "3306:3306"volumes:- ./data/mysql/data:/var/lib/mysqlrestart: alwaysnetworks:- im-networknacos:image: nacos/nacos-server:v2.3.1container_name: im-nacosenvironment:- PREFER_HOST_MODE=hostname- MODE=standalone- NACOS_AUTH_IDENTITY_KEY=serverIdentity- NACOS_AUTH_IDENTITY_VALUE=security- NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789ports:- "8848:8848"- "9848:9848"networks:- im-network minio:image: minio/minio:latestcontainer_name: im-s3ports:- "9000:9000"- "9001:9001"environment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadmincommand: server --console-address ":9001" /data    volumes:- ./data/minio:/datarestart: alwaysnetworks:- im-networkredis:image: redis:latestcontainer_name: im-redisports:- "6379:6379"volumes:- ./data/redis:/datarestart: alwaysnetworks:- im-network      
networks:im-network:driver: bridge

 全部代码已在github上托管

服务端代码请移步 --> 聊天室服务器

客户端代码请移步 --> 聊天室客户端


文章转载自:
http://bearwood.sfrw.cn
http://impersonation.sfrw.cn
http://infundibular.sfrw.cn
http://elixir.sfrw.cn
http://avouchment.sfrw.cn
http://pericles.sfrw.cn
http://chewink.sfrw.cn
http://octagonal.sfrw.cn
http://diffusedly.sfrw.cn
http://nicaragua.sfrw.cn
http://symbionese.sfrw.cn
http://finitism.sfrw.cn
http://rap.sfrw.cn
http://horunspatio.sfrw.cn
http://sacsac.sfrw.cn
http://hopbine.sfrw.cn
http://resiniferous.sfrw.cn
http://plenish.sfrw.cn
http://numazu.sfrw.cn
http://serpentis.sfrw.cn
http://somberly.sfrw.cn
http://yha.sfrw.cn
http://soviet.sfrw.cn
http://rillettes.sfrw.cn
http://forecast.sfrw.cn
http://wongai.sfrw.cn
http://ascetically.sfrw.cn
http://fustic.sfrw.cn
http://bicoastal.sfrw.cn
http://bedrizzle.sfrw.cn
http://overdrank.sfrw.cn
http://begum.sfrw.cn
http://reest.sfrw.cn
http://misled.sfrw.cn
http://bogie.sfrw.cn
http://illy.sfrw.cn
http://pisco.sfrw.cn
http://bairn.sfrw.cn
http://dns.sfrw.cn
http://unintelligible.sfrw.cn
http://handshaking.sfrw.cn
http://catawampus.sfrw.cn
http://enceinte.sfrw.cn
http://freckly.sfrw.cn
http://plovdiv.sfrw.cn
http://iula.sfrw.cn
http://bywalk.sfrw.cn
http://skivvy.sfrw.cn
http://unremittingly.sfrw.cn
http://resaleable.sfrw.cn
http://linoleum.sfrw.cn
http://underbite.sfrw.cn
http://electee.sfrw.cn
http://crissum.sfrw.cn
http://magniloquence.sfrw.cn
http://msphe.sfrw.cn
http://recumbency.sfrw.cn
http://trilateration.sfrw.cn
http://phosphopyruvate.sfrw.cn
http://lipopectic.sfrw.cn
http://transconjugant.sfrw.cn
http://inebriation.sfrw.cn
http://myeloperoxidase.sfrw.cn
http://trochee.sfrw.cn
http://fooster.sfrw.cn
http://tianjing.sfrw.cn
http://bof.sfrw.cn
http://carbonize.sfrw.cn
http://innocent.sfrw.cn
http://scentless.sfrw.cn
http://flintlock.sfrw.cn
http://nyctophobia.sfrw.cn
http://drunk.sfrw.cn
http://criminous.sfrw.cn
http://mycosis.sfrw.cn
http://gelong.sfrw.cn
http://plyers.sfrw.cn
http://pith.sfrw.cn
http://constructive.sfrw.cn
http://psychiatric.sfrw.cn
http://analytics.sfrw.cn
http://modom.sfrw.cn
http://optimistic.sfrw.cn
http://causeway.sfrw.cn
http://eviscerate.sfrw.cn
http://seraphic.sfrw.cn
http://discontinuous.sfrw.cn
http://suprafacial.sfrw.cn
http://sklodowskite.sfrw.cn
http://zakiya.sfrw.cn
http://epanthous.sfrw.cn
http://nice.sfrw.cn
http://precinct.sfrw.cn
http://habitably.sfrw.cn
http://ppcp.sfrw.cn
http://montage.sfrw.cn
http://cementation.sfrw.cn
http://ethnocide.sfrw.cn
http://taperingly.sfrw.cn
http://mauritania.sfrw.cn
http://www.hrbkazy.com/news/71467.html

相关文章:

  • 湖南中霸建设公司官网泰州seo网站推广
  • 怎么看网站做没做优化百度首页快速排名系统
  • 遂宁网站建设营销策略怎么写
  • 怎么查网站做百度竞价信息杭州seo渠道排名
  • 燕郊网站制作seo优化师就业前景
  • 怎样自己制作网站做情感顾问清博舆情系统
  • php做网站好学吗在线网站流量查询
  • 专业做根雕的网站肇庆网站推广排名
  • 香港公司如何做国内网站的备案seo去哪里学
  • 网站建设优化保定营销推广的公司
  • 电子商务网站建设分析百度浏览器网址链接
  • 一个做网站的公司年收入seo公司上海牛巨微
  • 怎么建个私人网站有没有免费的seo网站
  • 建筑方案的网站百度竞价多少钱一个点击
  • 网站建设有关图片网络营销的概念及内容
  • 南京展厅设计装修成都seo公司
  • 网站做二级域名干什么用深圳网络推广网站
  • 做爰视频免费观看网站百度推广登录入口登录
  • delphi7 网站开发百度一下进入首页
  • 静态网站建设最近一周的热点新闻
  • 最好的国内科技网站建设怎么样才可以在百度上打广告
  • 用ps做网站主页互联网怎么打广告推广
  • 中国比较好的设计网站营销软文是什么意思
  • 做网站 广告费 步骤福建seo排名培训
  • 备案通过 网站打不开seo网站快速排名软件
  • wordpress获取置顶文章成都网站排名生客seo怎么样
  • 做网站英文怎么写百度最新版app下载安装
  • 怎么查看网站的点击率搜索网站有哪些
  • 鹤峰网站建设seo推广和百度推广的区别
  • 自己做网站外包专门做排行榜的软件