`
cocos
  • 浏览: 401478 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

微服务web开发-统一域名解决方案

阅读更多

一、问题背景

在之前的项目开发中,因为团队和技术限制,服务以小服务(微服务)的模式进行开发,各自服务的web端使用独立的访问域名;从用于测看,一个产品用户会点击出大量的不同域名,在统一认证和用户体验上都是一个比较糟糕的实现。基于此问题,团队考虑一个透明的将多个web站点集成在一个域名下的解决方案。

 

目前的域名示例:

  • 课程:http://webfront-course.sdp.101.com/ndu/course/11600ebe-3314-4c73-93db-5c2f4583a345
  • 培训:http://webfront-train.sdp.101.com/ndu/train/b89672d7-ab6d-4b58-9bdf-c8e69fd83017
  • 线下课程:http://business-course-gateway.sdp.101.com/ndu/course/06e9301a-0438-479e-92a6-c79b8ccfb72c
  • 测评:http://elearning-onlineexam-gateway.sdp.101.com/ndu/online_exam/prepare?online_exam_id=b6c627aa-ec06-48c6-bda9-514fae4580b

 以上仅为举例,实际一个产品中涉及域名约有50+

 

二、解决方案

在技术选型上,前期考虑对portal项目做定制开发,即由已给产品测小团队进行portal项目定制开发。按照产品进行web端二次开发,有该团队按产品需求进行定制开发,对后端各功能服务的页面、api进行二次开发封装。考虑到成本和公司现状,工作量是一个巨大挑战。而且,通常同类产品的页面表现是趋同的。鉴于实际问题,本方案被否决。

 

目前团队,应用接入层,主要是7层接入(nginx、kong);由此在考虑是否可在应用上层有没有一个透明解决方案。能够达到产品测对用户表现始终是一个访问域名,对服务的开发团队不引入额外的开发工作。

 

考虑在L7接入层,制定后端服务的代理规范、产品域名规范 、服务的友好别名规范,在L7 透明使用http proxy,将产品的域名的一级目录,代理至后端各服务实例。

 

涉及到的具体约定和规范

  • 新增一组用于产品册的通配域名(如 *.e.101.com);有需求的情况,也可以绑定产品自有域名(www.hbeducloud.com)
  • 制定工程院内的统一域名服务别名规范,将产品域名下uri的第一级目录(path)定义为服务的友好别名(如,course 标识webfront-course服务),并将规范持久存储为一个字典,全局唯一。

大致流程:

用户请求到达L7接入层后,在接入层通过胶水胶水代码,读取服务的友好别名字典,将用户请求代理到实际后端服务。

 

三、方案优点

  • 相对透明的解决产品需求,不增加服务开发团队工作量
  • 重新规范web用户认证技术方案,可以使用cookie票据等简单方案解决web测用户认证工作
  • url 更亲民易识别

四、落地效果

使用统一域名方案后,产品用户访问到的所有请求均可在一个域名下,如 xuexi.101.com; xuexi.101.com/course/   xuexi.101.com/exam/

分享到:
评论

相关推荐

    SpringCloud微服务架构-海量数据商用短链平台项目 视频教程 百度网盘链接2.zip

    ─71.短链平台整合SkyWalking链路追踪实战(4节) │ 71.1-AlibabaCloud微服务整合SkyWalkingAgent实战.mp4 │ 71.2-微服务打包...│ 79.3-前后端联调-前端不能识别雪花算法id解决方案.mp4 │ 79.4-短链平台

    SpringCloud微服务架构-海量数据商用短链平台项目 视频教程 百度网盘链接4.zip

    ─71.短链平台整合SkyWalking链路追踪实战(4节) │ 71.1-AlibabaCloud微服务整合SkyWalkingAgent实战.mp4 │ 71.2-微服务打包...│ 79.3-前后端联调-前端不能识别雪花算法id解决方案.mp4 │ 79.4-短链平台

    SpringCloud微服务架构-海量数据商用短链平台项目 视频教程 百度网盘链接1.zip

    ─71.短链平台整合SkyWalking链路追踪实战(4节) │ 71.1-AlibabaCloud微服务整合SkyWalkingAgent实战.mp4 │ 71.2-微服务打包...│ 79.3-前后端联调-前端不能识别雪花算法id解决方案.mp4 │ 79.4-短链平台

    SpringCloud微服务架构-海量数据商用短链平台项目 视频教程 百度网盘链接3.zip

    ─71.短链平台整合SkyWalking链路追踪实战(4节) │ 71.1-AlibabaCloud微服务整合SkyWalkingAgent实战.mp4 │ 71.2-微服务打包...│ 79.3-前后端联调-前端不能识别雪花算法id解决方案.mp4 │ 79.4-短链平台

    Laravel开发-cors-laravel

    标题中的"Laravel开发-cors-laravel"指的是在Laravel项目中解决跨域问题的一个解决方案。描述中提到的"Laravel/Lumen提供轻量级CORS中间件"是指专门为Laravel和Lumen这两个PHP微服务框架设计的一套轻量级中间件,...

    Laravel开发-lumen-cors

    **Laravel 开发 - Lumen CORS 模块详解** 在 Web 应用程序开发中,跨源资源共享(CORS...理解并正确使用 CORS 是现代 Web 开发中的重要一环,而 `dusterio/lumen-cors` 为 Lumen 开发者提供了一种简单易用的解决方案。

    JS跨域访问解决方案的总结.doc

    为了解决这个问题,Web开发者需要采用各种跨域访问的解决方案。 同源策略是一种安全机制,旨在保护用户数据,防止恶意网站通过脚本获取并操作其他网站的信息。但有时,我们需要打破这种限制,例如实现API调用、数据...

    java的JWT令牌和微服务网关使用.docx

    总结来说,Java中的JWT令牌结合微服务网关,为微服务架构提供了安全、高效和灵活的解决方案。JWT用于认证,而微服务网关则作为系统的核心组件,处理了诸如安全、监控、认证和路由等复杂任务,使得微服务架构更加稳定...

    深入微服务架构的身份认证「分享版」

    ### 微服务架构下的身份认证与鉴权方案详解 #### 引言 随着软件开发模式的不断演进,从最初的单体应用发展到分布式架构,再到现今流行的微服务架构,安全性和灵活性的需求变得愈发重要。在这样的背景下,如何在复杂...

    Tedu的五阶段微服务组件sentinel

    #### 一、微服务架构中的跨域问题与解决方案 在微服务架构下,不同的服务可能会部署在不同的域名或端口上,这就会引发跨域问题。跨域是指从一个域(domain)的网页去请求另一个域的资源。当客户端尝试请求不同源...

    单点登录源码

    - 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。 - 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统...

    详解k8s组件Ingress边缘路由器并落地到微服务-kubernetes

    在Kubernetes(k8s)集群中,Ingress是一个关键组件,它作为外部网络流量进入集群的入口,扮演着边缘路由器或集群网关的角色。...正确配置和选择合适的Ingress解决方案对于k8s集群的高效运行至关重要。

    Amazon云计算服务与解决方案全面深入介绍

    根据提供的文件信息,我们可以深入探讨Amazon的云计算服务与基于AWS的解决方案。Amazon Web Services (AWS) 是全球领先的云服务平台之一,提供了丰富的工具和服务来支持企业的数字化转型和创新。接下来,我们将详细...

    spring cloud gateway请求跨域问题解决方案

    Spring Cloud Gateway 请求跨域问题解决方案 Spring Cloud Gateway 作为一种基于微服务架构的API Gateway,提供了许多有用的特性,如路由、负载均衡、熔断器等。但是,在使用 Spring Cloud Gateway 时,经常会遇到...

    Web应用软件架构的优化与演进.pdf

    《Web应用软件架构的优化与演进》这篇文档主要探讨了随着Web应用访问量增长,其架构...这一过程涉及到服务器资源管理、负载均衡策略、Session一致性解决方案以及数据库优化等多个方面,是Web开发技术的重要研究领域。

    多租户代码 根据域名切换

    在IT行业中,多租户(Multitenancy)是一种软件架构模式,它允许单个应用...这样的系统设计能够提供高效且灵活的多租户解决方案,满足SaaS应用的需求,为每个租户提供独立的服务体验,同时保证了数据安全和性能效率。

    泛微协同办公平台E-cology Mobile服务端设置手册.docx

    接着,打开`ecology\WEB-INF\web.xml`文件,在第一次出现`<servlet-mapping>`之前添加以下内容: ```xml <servlet-name>MobileXmlRpcServlet</servlet-name> <servlet-class>org.apache.xmlrpc.webserver....

    kisso-dev.zip

    它是一款专注于Web登录系统的工具,特别适用于需要快速构建SSO解决方案的Java开发者。通过在客户端使用Cookie存储认证信息,Kisso能够在多个应用程序之间实现无缝切换,提高用户体验,同时减轻服务器端的负担。 二...

    SpringCloudAlibaba技术文档.docx

    Spring Cloud Alibaba 是一套基于 Spring Boot 和 Spring Cloud 的微服务解决方案,旨在简化开发人员在构建分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、...

    Nginx:构建高效Web架构的利器.pdf

    随着互联网技术的不断发展,Nginx将继续发挥其优势,适应新的挑战,为用户提供更加强大和高效的Web服务解决方案。未来,Nginx将在云计算、容器化技术等方面发挥更大的作用,进一步推动Web服务的发展。

Global site tag (gtag.js) - Google Analytics