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

怎么搭建属于自己的网站做企业网站的好处

怎么搭建属于自己的网站,做企业网站的好处,让百度收录网站,晋城网站seo目前的聊天室是单节点的#xff0c;无论是http接口还是socket接口都在同一个进程#xff0c;无法承受太多人同时在线#xff0c;容灾性也非常差。因此#xff0c;一个成熟的IM产品一定是做成分布式的#xff0c;根据功能分模块#xff0c;每个模块也使用多个节点并行部署…目前的聊天室是单节点的无论是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 Alibaba2021.x 版本。 2.主要服务组件 组件功能 Nacos服务注册与发现组件配置中心 spring-cloud-starter-gateway 通信网关Spring Cloud Alibaba LoadBalancer客户端负载均衡器 spring-security-oauth2 集中授权中心 2.1.Nacos服务发现与配置管理 Nacos 是 Spring Cloud Alibaba 中核心的服务注册与发现组件同时也具备配置管理功能。除了Nacos还有EurekaConsulZooKeeper等有类似功能但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.模块划分 对于一个聊天软件按照功能进行划分先简单划分为用户websocket模块。后面根据需要再进行细化。 主要目标除了聊天这种实时性要求以及客户端推送这种需要服务器主动发送消息以外其他逻辑尽可能走http实现负载均衡。 架构图如下 客户端统一访问gateway网关通过账号密码向授权中心认证通过后得到一个token后续所有http请求都需要带上此header。http登录成功之后服务器还会根据负载均衡策略选择一个socket节点作为客户端聊天的主要通信网关用户在这次登录的生命周期只会绑定该节点而其他http请求则会被分散到不同模板的不同节点。 4.第三方中间件 中间件作用mysql 用户讨论群消息等数据的持久化方案minio头像多媒体消息的文件存储系统redis用户数据快速缓存nacos服务注册发现配置管理 由于使用的中间件比较多本文使用docker-compose进行集中化配置配置如下 version: 3.3services:db:image: mysql:latestcontainer_name: im-mysqlenvironment:MYSQL_PASSWORD: 123456MYSQL_ROOT_PASSWORD: 123456ports:- 3306:3306volumes:- ./data/mysql/data:/var/lib/mysqlrestart: alwaysnetworks:- im-networknacos:image: nacos/nacos-server:v2.3.1container_name: im-nacosenvironment:- PREFER_HOST_MODEhostname- MODEstandalone- NACOS_AUTH_IDENTITY_KEYserverIdentity- NACOS_AUTH_IDENTITY_VALUEsecurity- NACOS_AUTH_TOKENSecretKey012345678901234567890123456789012345678901234567890123456789ports:- 8848:8848- 9848:9848networks:- im-network minio:image: minio/minio:latestcontainer_name: im-s3ports:- 9000:9000- 9001:9001environment: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:6379volumes:- ./data/redis:/datarestart: alwaysnetworks:- im-network networks:im-network:driver: bridge 全部代码已在github上托管 服务端代码请移步 -- 聊天室服务器 客户端代码请移步 -- 聊天室客户端
http://www.hkea.cn/news/14318940/

相关文章:

  • 网站建设构架西安市房产信息查询平台官网
  • 我的网站不做推广 百度能搜索到我网站吗怎么做网站可以注册的
  • 网站的设计原则有哪些wordpress导航类网站
  • 南宁网站建设兼职wordpress聊天小工具
  • wordpress随机推网站外链建设需要逐步进行适可优化即可
  • 专业做国际网站的公司做网站空
  • 技术支持 长沙网站建设-创研科技一个正规平台维护多久
  • 创业投资公司网站建设做外贸学网站
  • 钦州网站制作在那里能找到网站
  • 推荐做ppt照片的网站如何建设公司门户网站
  • 禹城网站建设价格旅游网页设计作业
  • 石家庄网站运营WordPress移动端加搜索
  • 网站转化率是什么意思wordpress全站
  • 嘉定专业网站制作公司做网站客户没有付定金
  • 北京通信管理局网站备案处跳转链接
  • 学校网站设计及代码建设网站涉及的技术
  • 做网站诈钱wordpress模版 区块链
  • 90设计网站官网首页金华网站如何制作
  • 云畅网站建设网址详情页设计理念
  • 常平营销网站建设图文广告公司名称
  • 西昌手机网站网站开发部门的规章制度
  • 个人网站设计论文道客巴巴中国工程建设标准网站
  • 关键词分析网站个人如何加入百度推广
  • 大鹏新区住房建设局网站网站设计 英文
  • 用花生壳做网站速度可以吗佛山高端网站建设公司
  • 建站报价常用网站后台地址
  • 广州的企业网站建设自己在本地建的网站 别人怎么访问教程
  • 为了做宣传网站而注册公司接网站建设外包的工作
  • 易商官方网站工作顺利的祝福语
  • 路由器做映射后 内网可以访问到我的网站 但是外网无法访问润滑油网站建设