开源版Resin4服务器的集群部署

TOMCAT、JETTY、RESIN之间的差别 这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 TOMCAT、JETTY、RESIN之间的差别】 今天给大家分享一下,修真院官网task2任务中可能会使用到的知识点: TOMCAT、JETTY、RESIN之间的差别: TOMCAT,JET... 阅读详情

Resin开源版(GPL)下载地址:http://caucho.com/products/resin/download/gpl

以最新版4.0.40(date:2014-08-02)为例。部署环境为Ubuntu,其他发行版本类似(我在公司部署过RedHat6)。

下载tar.gz包(http://www.caucho.com/download/resin-4.0.40.tar.gz)或zip包(http://www.caucho.com/download/resin-4.0.40.zip),不要下载deb包,因为我们需要将Resin安装到指定目录(deb包应该也可以,不过我linux没学到家,不会解这个包)。

等待下载的过程中请先确认你的linux环境安装了必要的编译安装工具。Ubuntu下可以通过apt-get命令安装

sudo apt-get install build-essential automake

下载完成之后,解压压缩包得到文件夹。

进入文件夹,执行

./configure --prefix=/home/liufl/temp/resin-install
其中 --prefix参数指定要安装的路径,具体参数使用,可自行百度,linux下源码编译安装软件。

configure命令会告诉我们当前是否满足编译条件。

你可能会见到最后输出以下两行

 OPENSSL     : No OpenSSL has been found
    *** OpenSSL libraries cannot be compiled ***

这两行输出告诉我们当前没有SSL的类库可用,SSL功能将不会编译。如果你需要SSL功能支持的话可以执行

sudo apt-get install libssl-dev

之后再次执行configure操作,输出如下,说明可以正常编译了

Resin Configuration Summary:

  RESIN       : 4.0.40
    home      : /home/liufl/temp/resin-install
    root      : /home/liufl/temp/resin-install
    conf      : /home/liufl/temp/resin-install/conf
    log       : /home/liufl/temp/resin-install/log
    plugins   : common resin_os 
    init      : /etc/init.d/resin

  JAVA_HOME   : /usr/local/java/jdk_default

  JNI         : 64-bit
    include       : -I/usr/local/java/jdk_default/include -I/usr/local/java/jdk_default/include/linux
    CFLAGS        : 
    cflags_shlib  : -fpic
    ld_shlib      : gcc
    ldflags_shlib : -shared -fPIC -m64
    libs_shlib    : 
    epoll() for keepalives

编译安装,执行

make;make install

适用于你的linux环境的resin就编译且安装好了。到安装目录看一下

liufl@liufl-virtual-machine:~/temp/resin-install$ ll
总用量 56
drwxrwxr-x 14 liufl liufl 4096  8月  3 20:00 ./
drwxrwxr-x  6 liufl liufl 4096  8月  3 20:00 ../
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 app-inf/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 bin/
drwxrwxr-x  4 liufl liufl 4096  8月  3 20:00 conf/
drwxrwxr-x  5 liufl liufl 4096  8月  3 20:00 doc/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 endorsed/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 lib/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 libexec64/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 log/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 project-jars/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 resin-inf/
drwxrwxr-x  2 liufl liufl 4096  8月  3 20:00 webapp-jars/
drwxrwxr-x  3 liufl liufl 4096  8月  3 20:00 webapps/

其中,我们只要关心下面几个目录就可以了:

bin:这里放置了resin的控制脚本文件,其中只有resin.sh这一个文件需要保留,其他文件用不到,为保证不会误操作,删除之。

conf:resin的配置文件都在这里。其中我们一会需要修改的文件有三个:cluster-default.xml、resin.properties、resin.xml

webapps:默认的webapp加载目录。通常生产环境下我们需要把其中的ROOT项目删除。

其他目录暂时不用关心,需要了解的话请参考官方文档或自行百度谷歌。

至此,resin已可运行,你可以把这个文件夹拷贝到你这台机器的任意目录去运行了。但是因为这是GPL开源版,开发方作了限制:不能运行集群,只能以1watchdog+1app方式执行。即使你像处理Tomcat一样改了不同路径下resin的端口号,你也没办法启动第二个resin实例。因为resin watchdog监听端口冲突,而官方文档中根本没有提及如何修改watchdog端口号(反正我没找到)。但是,这个难不倒广大的劳动人民啊,经过一番百度谷歌,还是找到的设置方法。

我们进入conf目录下,首先修改下resin.properties文件,这里我们主要修改resin的各端口号。找到下面一行:

app_servers      : 127.0.0.1:6800

这一行指明了我们的webapp控制端口号,修改并增加一行如下

app_servers      : 127.0.0.1:2800
watchdog_port    : 2600

上述修改,我们将webapp控制端口改到了2800,第二行是新增了watchdog的控制端口(默认为6600),值为2600。注意!此时启动服务器watchdog端口还是6600,我们还需要修改resin.xml才行。resin.properties中的配置需要生效都需要EL表达式的方式在resin.xml中注入才会生效,所以我们直接修改resin.xml对应配置也是可以的。不过为了方便管理,我们还是修改resin.properties吧。

再之后找到行:

app.http          : 8080

这个就是对外服务端口号了,一样修改成2080。你可能注意到了,我改过的端口号千位数是相同的(原来的是6800、6600、8080),这样做是为了将不同实例的端口号分别设置在不同的端口号段里了(每一千个端口号分成一个号段),方便记忆。

其他修改:

dev_mode      : true #这里生产环境请改成false

resin_doc      : true #这里通常可以写成false。服务器文档可以去官网或下载离线看,不必要浪费服务器资源。

web.http          : 8080 #这个可以注释掉。因为是开源版,这个配置不会生效。

# jvm_args  : -Xmx2048m -XX:MaxPermSize=256m #请根据服务器状态和需要修改。这个配置只会影响到app实例,不会对watchdog实例生效。

port_thread_max   : 256
accept_thread_max : 32
accept_thread_min : 4
# keepalive_max   : 512

...等请参考文档和机器性能酌情处理。

PS:SSL配置请自行研究吧,我没研究这个,本文就不提了。

修改完resin.properties之后,我们还需要修改resin.xml才能使配置完全生效。

找到这一行:

<server-multi id-prefix="app-" address-list="${app_servers}" port="6800"/>

注意到${app_servers}了?对这就是在resin.properties文件中配置的服务控制端口号。不用在意后面的port="6800",只有找不到app_servers值的时候它才会等效(直接的说就是默认值)。我们把这一行做如下修改:

    <server-multi id-prefix="app-" address-list="${app_servers}" port="6800">
      <watchdog-port>${watchdog_port?:6600}</watchdog-port>
    </server-multi>

恩,这下你知道watchdog端口号是怎么改的了。官方就是没提这句,都写了这功能了,提一下会掉块肉吗?(呃,确实会掉不少肉……pro版会少卖出去多少份啊)

其他配置都可以参考文档修改了,webapp加载配置、jndi注入一类的文档和百度上说的都比较清楚,大家可以自行查找,我这里只给出一份Apache Solr的配置示例,不做具体解释了

<web-app id="/" root-directory="webapps/ROOT"/>
替换为

      <web-app id="/solr" root-directory="/webapp/search-solr">
        <env-entry>
          <env-entry-name>solr/home</env-entry-name>
          <env-entry-type>java.lang.String</env-entry-type>
          <env-entry-value>/io-drive/search-solr/solr-master</env-entry-value>
        </env-entry>
      </web-app>

说一下日志的问题,resin是原生支持日志滚动输出的。找到下面一行

  <logger name="com.caucho.loader" level="config"/>

之后加入

  <stdout-log archive-format="jvm-console-%Y%m%d.log.zip"
              path="log/jvm-console.log"
              rollover-count="30"
              rollover-period="1D"/>
  <stderr-log path="log/jvm-console.log"/>

就可以让后台日志每天滚动输出,一天一文件,保留30天,过期自动清除。

另外还有访问日志access-log的设置,默认配置是1周一个文件不压缩不清除,为防止磁盘占用增长过快,需要修改cluster-default.xml文件,将如下行

      <access-log path="log/access.log" 
                 format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                 rollover-period="1W"/>

替换为

      <access-log path="log/access.log" 
                 format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                 archive-format="access-%Y%m%d.log.zip"
                 rollover-period="1D"
                 rollover-count="14"/>

至此,resin(GPL)配置修改完成。之后就可以像Tomcat集群一样制作Resin集群了。



Resin 4.0.65高性能Java应用服务器实战详解 Resin是一款高性能、轻量级的Java应用服务器,由Caucho Technology开发,支持Java EE 6/7规范,广泛应用于高并发Web系统部署。其核心优势在于卓越的请求处理效率和低资源消耗,得益于内置的HTTP服务器与Servlet容器深度集成,避免了外部Web服务器的额外开销。Resin采用异步I/O和线程池优化技术,具备出色的多核CPU利用率,在静态资源服务和动态内容渲染场景下均表现优异。</cluster></resin>上述resin.xml。 阅读详情

相关推荐

项目运行的服务器Resin-4.0.58

名称:Resin本:4.0.58,系统:Windows,位数:64 项目运行的服务器Resin-4.0.58

Linux部署Resin4.0.44

一、Resin简介    Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼apache server。许多站点都是使用该WEB服务器构建的。    Resin也可以和许多其他的WEB服务器一起工作,比如Apache ser...

weixin_34417814的博客 543

OA安装Resin服务

OA安装Resin服务

泛微的resin出错(2)

我电脑系统不知道为什么老是出错,很多人劝我换系统! 我不听,不听,王八念经。咳咳咳,进入正题。 事情是这样子的,六月十九号参加了公司的考核,然后时隔半月至七月四号,一起服务就闪退,一起服务就闪退,点resin服务下哪个起服务都没有用,重新解压安装也没有用,给你们展示整个WEAVER9文件夹(看下图),我的本长什么样子。 大家可能知道,泛微的系统,像我这样的安装本,有这个配置应用程序文件, 需要右键,以管理员身份运行,以我的为例就是第一层的Weaver文件夹需要运行这个应用程序,解压压缩包,解压出来的

weixin_41576827的博客 3476

idea 在resin4.0部署项目,出现server ‘default‘ 错误

resin4.0上面部署了应用,出现下面的错误 com.caucho.config.ConfigException: -server 'default' is an unknown server in the configuration file. at com.caucho.server.resin.Resin.initTopology(Resin.java:1101) at com.caucho.server.resin.Resin.initServletSystem(Res...

qq_36417351的博客 2030

resin 服务器学习 配置 单点和 集群

使用的 resin 4 服务器。 参考文档: http://caucho.com/resin-4.0/ 使用 rpm 进行安装 : resin 是有收费本的。使用的是开源本。(不带 Pro 的本) 下载地址: htt...

chuozhi7142的博客 188

resin4下载

resin4下载

resin-4.0.42

resin 4.0.42 本之前一直在用tomcat 没用过resin 刚下载使用,以备以后使用!

resin如何部署java项目_Resin4-0配置及项目部署学习笔记.doc

常见的网络服务器软件综合比较介绍Apache1、开源、免费商用2、超稳定3、效率非常高1、仅提供html静态页面功能,不支持jsp、javaservlet、asp等Tomcat开源免费支持servlet/jsp,能处理html页面运行时占用的系统资源小扩展性好运行不够稳定,支持的并发连接数不够高处理html时的效率不如apache,不能处理EJBJboss开源使用LGPL免费运行时占用的系统资源小...

weixin_39897746的博客 660

JETTY,RESIN,TOMCAT的差别在哪里,在线上服务应该选择哪一种WEB服务器

非原创,转自https://blog.csdn.net/qq_42008387/article/details/80659891 1.背景介绍 Tomcat服务器 TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性...

weixin_42581112的博客 494

四大Java EE容器(Tomcat、JBoss、Resin、Glassfish)之简单比较

现在流行的Java EE容器有很多:Tomcat、JBoss、Resin、Glassfish等等。下面对这四种Java EE容器进行了一番简单的比对。 1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到...

chuyihuan7890的博客 167

什么是应用服务器,常用的应用服务器有哪些?

什么是应用服务器,常用的应用服务器有哪些?

lsh8886的博客 1907

linux resin4 安装 启动,搭建运行resin4的docker

关于我,邯郸人。对这类话题感兴趣?欢迎发送邮件至donlianli@126.com请支持原创http://donlianli.iteye.com/blog/2232858本人的目的就是在docker中运行resin。本人也是初次接触docker,在网上搜了好久,没有找到这样的教程,于是打算亲手写一个。为后续的兄弟提供一个借鉴。因为本人在之前稍微了解了一下docker,所以,docker的基本安装知...

weixin_31865183的博客 642

resin4 + JDK7环境部署记录

1. 安装jdk7与resin4 jdk7安装方式与6相同,解压并配置环境变量即可。 resin4resin3略有区别,解压之后需要编译安装。 ./configure --prefix=/opt/hermes/resin-4.0.40 --with-java-home=/opt/hermes/jdk1.7.0_67/ --enable-64bit make makeinstall

雷雨中的双桅船 6580

resin4 配置

                                                  resin4 配置 转载:https://www.xuebuyuan.com/3199310.html https://www.cnblogs.com/happy-coder/p/6407122.html   1. Resin4配置文件发生了较大变化,分为: app-default.xml ...

stay hungry ! stay foolish! 1694

resin的安装与配置

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34149796的博客 1277
上一篇: maven jdk版本设置
下一篇: 利用CountDownLatch同步辅助类进行线程同步
DowenLiu
博客等级 码龄17年 9粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值