ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

(51)uniGUI 高大上的HyperServer-单集群部署多个应用

2022-01-16 13:33:43  阅读:295  来源: 互联网

标签:uniGUI 部署 51 HyperServer 应用 max accounting nodes


(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,已购书的读者请加入QQ群876403118,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步)

【阅读倡议】

1、有问题请留言;

2、没问题请点赞;

3、看连载请加群;

4、下源码请加群;

【开发工具】

1、C++Builder and Delphi 10.3.3

2、FMSoft_uniGUI_Complete_Professional_1.70.0.1555(正版)

本人主笔的国内第一本《UniGUI入门到精通》《移动开发指南》和《Flexcel开发EXCEL入门到精通》教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943、876403118给我(群主)留言。资料简介:

https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
————————————————

HyperServer多应用部署是UniGUI HyperServer另一个有用的功能,它允许在同一个HyperServer实例下运行多个WEB应用程序,这个特性和单机部署多个软集群不同,单机部署多个软集群时每个集群需要使用不同的端口,本节讲的单集群部署多个应用是指在一个实例端口里提供多个应用服务。我们知道HyperServer实例通过binary_name参数配置一个默认的应用程序,如果你想在同一个服务实例里部署多个应用程序你就可以向配置文件里添加多个应用配置段。这样子用户就可以通过访问带目录的URL访问你添加的每一个应用程序,比如你的主URL是Domains for sale! - GoldNames.com,如果你新增配置了两个应用程序分别叫做accounting和stock,你就可以通过下面的URL或域名访问它们:

  1. URL方式

http://mywebserver.com/accounting

http://mywebserver.com/stock

  1. 域名方式

http://accounting.mywebserver.com

http://stock.mywebserver.com

         这是一个十分方便的功能,在服务器农场集群里,每个应用程序可以只部署在某个服务器节点上也可以部署在多个服务器节点上,当客户端发起请求时,HyperServer会先确认哪些服务器节点部署了客户需要的服务然后将客户端请求转发分配给它们。

  1. 如何在HyperServer里部署多个应用

单实例里的多应用部署十分简单,在配置文件里添加应用配置段即可,如下所示:

[application-0]
enabled=1
alias=fishfacts
binary_name=fishfacts.exe
max_nodes=4

  1. [application-0]

每个新应用都需要添加一个应用配置段,配置段的名称为“application-”加一个唯一的顺序数字构成,因此,如果你需要配置三个应用,配置段的名称则分别为“application-0”、“application-1”、“application-2”。

  1. enabled=0

应用启动开关,1-启用、0-停用。

  1. alias=

应用昵称,客户端通过这个昵称(目录)访问这个应用,这个昵称需要具有唯一性,比如前面提到的accounting、stock等:

http://mywebserver.com/accounting

   http://accounting.mywebserver.com

  1. binary_name=

应用程序的执行文件,需要和HyperServer在相同目录下,比如web_accounting.exe。

  1. max_nodes=0

这个应用程序的最大服务节点数,如果设置为0,HyperServer将会根据HyperServer的max_nodes和所有应用的max_nodes自动计算和设定。

为了更清晰一些,根配置文件里的max_nodes代表所有应用(包括默认应用)的最大节点数,如果你把所有应用段的max_nodes设置为0,HyperServer将会在所有应用中平均分派应用节点数,每个应用享有的服务节点数是“单应用max_nodes/总应用max_nodes数”,因此如果你的HyperServer的max_nodes设置为32,你新增配置了3个应用,那么加上默认的应用,每个应用能享有的节点数为32/(3+1)=8个。这样我们就可以根据每个应用程序的客户数和并发访问量合理配置每个应用的max_nodes,很少使用的应用的max_nodes可以配置小一点,用户数多的应用的max_nodes应该配置的大一点。

  1. HyperServer多应用部署和HyperServer Farm的关系

HyperServer多应用部署功能完全适用于HyperServer农场服务器集群,在HyperServer服务器农场集群里不需要做额外的配置就可以支持多应用部署。根据你的实际需要,你可以选择在主服务器节点或任何一个从服务器节点部署你想要部署的应用。比如,你可以拿出一个服务器节点专门部署某个特殊应用,你也可以按照你想要的方式在不同服务器节点上部署你想要的应用。当客户端需要访问某个应用时,HyperServer能够自动识别哪些服务器节点可以提供客户需要的服务并自动转发和分配流量到那些服务器节点。实际上,只要你拥有足够强大的服务器资源,服务器农场集群就能满足你多样化的多应用部署需要。

  1. 搭建一个多应用部署演示案例

为了演示这个功能我们先开发三个演示程序,其中demo.exe是原来的基本程序,demo_accounting和demo_stock是另外两个应用程序,把他们三个和hyper_server.exe和hyper_server.cfg都放置在D:\MultiApplication目录里,如下图所示:

然后,修改hyper_server.cfg配置文件,增加两个应用程序配置段,分别对应accounting和stock两个应用程序:

[transport]

pool_size=0

command_timeout=20000

request_timeout=300000

connect_timeout=20000

[http_transport]

start_port=16384

[hyper_server]

binary_name=demo.exe     基本的服务程序

initial_nodes=2

max_nodes=32

max_sessions=0

sessions_per_nodes=0

prompt_login=1

persistent_node_zero=0

port=8077                公共的服务端口

url_path=

[login-0]

user_name=admin

password=111111

admin=1

。。。

[application-0]

enabled=1

alias=accounting

binary_name=demo_accounting.exe

max_nodes=4

[application-1]

enabled=1

alias=stock

binary_name=demo_stock.exe

max_nodes=4

         启动D:\MultiApplication\hyper_server.exe程序后打开浏览器,如果你访问http://127.0.0.1:8077/将访问默认的demo项目,如果你访问http://127.0.0.1:8077/accounting将访问你的demo_accounting项目,如果你访问http://127.0.0.1:8077/stock将访问你的demo_stock项目。

 

标签:uniGUI,部署,51,HyperServer,应用,max,accounting,nodes
来源: https://blog.csdn.net/dlboy2018/article/details/122522099

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有