node
nodemanager 是节点管理器,可以启动该节点上的服务器(server,包括domainAdminServer),添加节点的时候,节点类型有两种,一种是ssh类型,可以通过ssh来启动服务;另一种是java类型,说的就是nodemanager,默认listen 7730端口
domain
UPAS的最大管理单位,是一个逻辑概念
每个domain对应一个adminServer进程,一个节点上可以部署多个adminServer进程,相当于多个domain,每个域名字可以相同,ID一定不同;
同一个域中可以包含多个不同节点上的adminServer,他们之间靠组播进行同行,靠什么标识为同一个域的?
ID?: 每个adminServer按说应该有一个唯一的ID或者名字(但是文档说名字可以不唯一)
组播地址: 组播地址=组播IP+端口号
不同节点上的同一个domain的adminServer是如何身份验证的?
domain之间靠(虚拟)组播进行通信;组播就是真实意义上的组播,虚拟组播应该是类型组播功能的自己实现的一种通信方式吧。
- UPAS一般在域里的服务器之间通过组播共享相互的状态,因此需要IP地址和端口号。域脱离子网,不能通过组播共享信息时,用TCP代替Multicase。它在UPAS里被称为虚拟组播,创建域时可以声明要使用虚拟组播。
- 此时利用服务器的默认监听IP地址、端口号,会在服务器之间共享信息。因此在脱离子网的域里所有服务器必须声明监听IP地址、端口号。此外还要声明不能使用组播。
server
其实就是定义到某个节点上的一个upas进程,可以配置jvm选项、监听器等
application
组的概念
webadmin
是管理某个特定域的管理界面,upas中好像不存在一个可以创建、删除、修改domain的web控制台;创建、删除域是通过setup/ant 或upasadmin 来完成的,webadmin只用于当前域的配置。
webadmin中可以添加节点,节点设置只能在webadmin的首页找到
upasadmin
可以连接das和可以不连接das,二者能用的命令是不一样的,执行help时,就会只显示可用的命令的列表。
关于license
license过期只影响进程启动,不影响服务提供,只是记录证书过期日志而已。至于服务器时间不能正常,只是因为他们测试需要而已。
upas请求分发机制
- htl进程负责端口监听,请求进来后(即accept操作返回后),得到一个新的fd,通过unix socket将fd传送到hth进程
- hth进程还listen了一个端口,真实处理请求的进程会连接到这个端口,等着被分配任务,hth从htl接到fd后,读取请求,通过一定的分发规则,安排到某个任务处理者(就是webadmin中定义的server)
- 由于htl和hth之间是通过unix socket通信的,所以,二者只能在同一台机器上。也因为二者传递的是fd,也只能通过unix socket传递
- 由于hth和任务处理者通过tcp通信,所以,二者是可以在不同的机器上的
upws/bin/wswebadmin
这个并不是一个web管理界面,而是一个命令行接口,需要制定upws 安装目录才能正常启动,因为需要找配置文件:
1 |
UPWSDIR=/home/upas/upws /home/upas/upws/bin/wswebadmin |
不带任何参数时进入交互式命令行界面,通过 -C 选项可以直接执行命令,但是,返回的是json的数据;
wsadmin 和wswebadmin类似,除了输出的不是json; strace发现,二者都是通过访问 /home/upas/upws/path/wsmd 这个socket来工作的,这个socket是wsm listen的。
/home/upas/upas7/webserver 和 /home/upas/upws 居然是相同的东西,而且不是软连接
/home/upas/upas7/domains/upas_domain/config/domain.xml 这里记录了application connector等所有的东西。
server和upws之间是通过注册号来分发请求的,类似于nginx中的upstream名字