1、操作系统:centos7

2、需要的包:apache,wildfly,postgres(要初始化),activemq

3、安装流程:

一、安装依赖包并部署服务:httpd,wildfly,mq,postgres,然后启动各个服务
      二、mq和postgres之间的配置:需要postgres的jdbc驱动上传到mq的lib,并修改activemq.xml文件,登录postgres对mq授权
      三、postgres:执行createDatabaseRolesSchemasTablespaces.sql,创建用户表空间并授权
      四、postgres:导入数据库文件,最后重启postgres和mq
      五、wildfly和postgres的数据源配置:上传postgres的jdbc驱动(/u01/opt/prodclusterscb/modules/org/postgresql/main)通过命令添加postgres数据源;上传驱动,修改standalone-full.xml里面数据源配置,启动服务
      六、httpd配置对wildfy的监听(反向代理和负载均衡):用apache自带的mod_proxy_balancer.so多节点的集群代理方法

七、配置httpd的ssl证书并浏览器验证

4、配置:

一、apache和wildfly:

首先
##http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 去这个地方下载个 当前apache 同版本的 mod_jk.so 文件

然后将下载到的mod_jk.so 拷贝到 apache 的modules 目录下
在 apache 的配置文件中添加

Include "conf/mod_jk.conf"

在 apache 的conf 目录下

创建 mod_jk.conf

并写入内容:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMount /* jboss

创建:workers.properties

写入内容

worker.list=jboss
worker.jboss.type=ajp13
worker.jboss.host=localhost
worker.jboss.port=8009

worker.jboss.lbfactor=50
worker.jboss.cachesize=10
worker.jboss.cache_timeout=600
worker.jboss.socket_keepalive=1
worker.jboss.socket_timeout=300

其实有些配置项是可选的 可根据实际需要做适当的增减

写完这些之后 先启动 WildFly 打开WidFly控制台
依次找到并点击 Web>>HTTP>>View>>AJP listener Add

最后填写如下内容 点击 finnish

然后再重启 Apache 不出意外外的话

打开浏览器 直接访问 127.0.0.1 应该出现的是 wildfly 的默认首页

好了大功告成 !!

二、wildfly和postgres:

1 下载postgresql jdbc driver

我把postgresql jdbc driver放到了$HOME/devel/lib目录下,因此:
cd $HOME/devel/lib
wget http://jdbc.postgresql.org/download/postgresql-9.4.1212.jar
ln -s postgresql-9.4.1212.jar postgresql.jar

2 启动wildfly

cd $JBOSS_HOME/bin
./standalone.sh

3 添加postgresql支持到wildfly

执行以下命令(注意–name前面是两个短横杠):
cd $JBOSS_HOME/bin
$ ./jboss-cli.sh
[standalone@localhost:9990 /] module add –name=org.postgresql –slot=main –resources=/home/subaochen/devel/lib/postgresql.jar –dependencies=javax.api,javax.transaction.api
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=postgres:add(driver-name=”postgres”,driver-module-name=”org.postgresql”,driver-class-name=org.postgresql.Driver)

4 增加wildfly数据源

继续在jboss-cli命令行下执行(替换为你的数据源名称、用户名和密码即可):
[standalone@localhost:9990 /] data-source add –name=labDS –jndi-name=java:jboss/labDS –driver-name=postgres –connection-url=jdbc:postgresql://localhost:5432/lab –user-name=postgres –password=111111 –validate-on-match=true –background-validation=false –valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker –exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
列出当前wildfly的数据源:
[standalone@localhost:9990 /] /subsystem=datasources:installed-drivers-list
{
“outcome” => “success”,
“result” => [
{
“driver-name” => “postgres”,
“deployment-name” => undefined,
“driver-module-name” => “org.postgresql”,
“module-slot” => “main”,
“driver-datasource-class-name” => “”,
“driver-xa-datasource-class-name” => “”,
“driver-class-name” => “org.postgresql.Driver”,
“driver-major-version” => 9,
“driver-minor-version” => 4,
“jdbc-compliant” => false
},
{
“driver-name” => “h2”,
“deployment-name” => undefined,
“driver-module-name” => “com.h2database.h2”,
“module-slot” => “main”,
“driver-datasource-class-name” => “”,
“driver-xa-datasource-class-name” => “org.h2.jdbcx.JdbcDataSource”,
“driver-class-name” => “org.h2.Driver”,
“driver-

major-version” => 1,
“driver-minor-version” => 3,
“jdbc-compliant” => true
}
]
}
 
三、postgres和activemq:

http://activemq.apache.org/persistence.html

http://activemq.apache.org/jdbc-support.html

我并不是完全按照官网来的,

1,我备份了一份activemq.xml后就在上面改了,否则按官网的说法要每次启动ActiveMQ时都要指定配置文件,觉得这可能会是个坑

2,官网上用的是dbcp2+mysql,我用的是c3p0+postgresql,配置如下

<!--PostgreSQL DataSource By Qbit-->
<bean id="postgreSql-ds" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="org.postgresql.Driver"/>
<!-- jdbcUrl not jdbcurl -->
<property name="jdbcUrl" value="jdbc:postgresql://192.168.60.128:5432/activemq"/>
<property name="user" value="activemq"/>
<property name="password" value="mima"/>
<!-- the properties are the same with the default value -->
<property name="maxPoolSize" value="15"/>
<property name="minPoolSize" value="3"/>
<property name="initialPoolSize" value="3"/>
<property name="maxIdleTime" value="0"/>
<!-- invalid
<property name="maxIdleTime">0</property>
-->
<property name="checkoutTimeout" value="0"/>
<property name="acquireIncrement" value="3"/>
<property name="acquireRetryAttempts" value="0"/>
</bean>

后面几个完全是无聊配置的,参考的http://blog.csdn.net/caihaijiang/article/details/6843496
这里也有官方文档http://www.mchange.com/projects/c3p0/index.html

按照http://www.cnblogs.com/chenying99/articles/3172128.html上面的说法,可以使用高效日志

postgres=# create database activemq with owner = activemq encoding='UTF8' tablespace=pg_default lc_collate='zh_CN.UTF-8' connection limit=-1 template template0;
CREATE DATABASE
postgres=# grant connect on database activemq to activemq;
GRANT

activemq=# create schema activemq;
CREATE SCHEMA
activemq=# grant all privileges on schema activemq to activemq;
GRANT
activemq=# alter database activemq set search_path to activemq;
ALTER DATABASE
activemq=# alter role activemq set search_path=activemq;
ALTER ROLE
<span style="font-family:Arial;font-size:14px;line-height: 26px;">grant usage on schema activemq to activemq;</span>
<span style="font-family:Arial;font-size:14px;line-height: 26px;"><span style="font-family:Arial;font-size:14px;line-height: 26px;">grant create on schema activemq to activemq;</span>
</span>
貌似上面最后两句还是需要的,那个all privileges不好使.

activemq启动的时候会自动在postgresql里创建相应的三个数据库,到activemq的web控制台发条queue消息,勾上persistence,然后就会在数据库的msgs里看到一条记录,但是消息本身是什么内容是无法看到的,然后启动java程序消费掉那条消息后数据库的数据就没了.

最后附上java代码

import javax.jms.*;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.DeliveryMode;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;

/**
* Created by qbit on 12/8/16.
*/
public class PersistencedActiveMq implements Callable<Object>,Runnable,MessageListener{
public static final String user = ActiveMQConnection.DEFAULT_USER;

public static final String password = ActiveMQConnection.DEFAULT_PASSWORD;
public static final String SERVER_IP="192.168.60.128";
public static final String url ="failover://tcp://"+SERVER_IP+":61616";// ActiveMQConnection.DEFAULT_BROKER_URL;

public static final String subject = "Qbit_message";
private static final AtomicInteger counter=new AtomicInteger(0);
public static void main(String[] args) throws InterruptedException {
ExecutorService pool= Executors.newCachedThreadPool();
PersistencedActiveMq pam=new PersistencedActiveMq();
pool.submit((Callable)pam);
pool.shutdown();
}

@Override
public void run() {
try {
final int index=counter.getAndIncrement();
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
user, password, url);
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue destination = session.createQueue(subject);
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
connection.start();
for(int i=0;i<5;i++) {
final String message=subject+':'+index+':'+i;
TextMessage msg = session.createTextMessage(message);
System.out.println("Producer:->Sending message: " + message);
producer.send(msg);
System.out.println("Producer:->Message sent complete!");
}
if (producer != null)
producer.close();
if (session != null)
session.close();
if (connection != null)
connection.close();
}catch (Exception e){
e.printStackTrace();
}
}

@Override
public Object call() throws Exception {

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
user, password, url);
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue destination = session.createQueue(subject);
MessageConsumer consumer = session.createConsumer(destination);
connection.start();
System.out.println("Consumer:->Begin listening...");
consumer.setMessageListener(this);
Thread.sleep(9*1000);
if (consumer != null)
consumer.close();
if (session != null)
session.close();
if (connection != null)
connection.close();
return null;
}

@Override
public void onMessage(Message message) {
System.out.println("Consumer:->Received: " + message);
}
}

备注:

wildfly
wildfly启动:
./standalone.sh -bmanagement 0.0.0.0 -c=standalone-full.xml
端口:9260
访问地址:http://192.168.3.15:9260/console/index.html#deployments

部署方式:
一、命令部署:
1.进入wildfly控制台:/u01/opt/prodclusterscb/bin/jboss-cli.sh --connect controller=remote+http://192.168.3.15:9260
2.部署命令:deploy /u02/deploy_altadcb/activemq-rar.rar --force
3.先部署res.zip ,activemq-rar.rar包,然后依次部署: CDA.ear, DMS.ear, RMS.ear, POI.ear, CLS.ear, WFE.ear, SSE.ear, POM.ear, API.ear

二、控制台部署:

多节点集群思路:
1.was1(master)上面已经安装apache、jboss、postgresql、mq
2、was2(slave)上面只需要安装一个jboss就可以了,把postgres的jdbc的驱动上传到jboss的org目录(/u01/opt/prodclusterscb/modules/system/layers/base/org/postgresql/main)
3.按照部署文档和培训视频配置集群,was1:domain.xml,host.xml;was2:host_slave.xml
4.在was1的apache配置反向代理和负载均衡,把was1和was2都加进去
5.在was1的domaim.xml里面配置was1和was2的数据源(postgresql)

wildfly
wildfly启动:
./standalone.sh -bmanagement 0.0.0.0 -c=standalone-full.xml
端口:9260
访问地址:http://192.168.3.15:9260/console/index.html#deployments

部署方式:
一、命令部署:
1.进入wildfly控制台:/u01/opt/prodclusterscb/bin/jboss-cli.sh --connect controller=remote+http://192.168.3.15:9236
2.部署命令:
单机:deploy /u02/deploy_altadcb/activemq-rar.rar
集群:deploy /u02/deploy_altadcb/activemq-rar.rar --server-groups=other-server-group
3.先部署res.zip:解压到/opt/tmp_finshare/reports
4.activemq-rar.rar包,然后依次部署: CDA.ear, DMS.ear, RMS.ear, POI.ear, CLS.ear, WFE.ear, SSE.ear, POM.ear, API.ear

添加slave用户:<secret value="c2xhdmU=" />

jboss单机环境搭建的更多相关文章

  1. windows7 spark单机环境搭建及pycharm访问spark

    windows7 spark单机环境搭建 follow this link how to run apache spark on windows7 pycharm 访问本机 spark 安装py4j ...

  2. [转载] Hadoop和Hive单机环境搭建

    转载自http://blog.csdn.net/yfkiss/article/details/7715476和http://blog.csdn.net/yfkiss/article/details/7 ...

  3. Kafka 0.7.2 单机环境搭建

    Kafka 0.7.2 单机环境搭建当下载完Kafka后,进行解压,其目录结构如下: bin config contrib core DISCLAIMER examples lib lib_manag ...

  4. kafka单机环境搭建及其基本使用

    最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...

  5. HBase单机环境搭建

    在搭建HBase单机环境之前,首先你要保证你已经搭建好Java环境: $ java -version java version "1.8.0_51" Java(TM) SE Run ...

  6. Hadoop —— 单机环境搭建

    一.前置条件 Hadoop的运行依赖JDK,需要预先安装,安装步骤见: Linux下JDK的安装 二.配置免密登录 Hadoop组件之间需要基于SSH进行通讯. 2.1 配置映射 配置ip地址和主机名 ...

  7. win10+pyspark+pycharm+anaconda单机环境搭建

    一.工具准备 1. jdk1.8 2. scala 3. anaconda3 4. spark-2.3.1-bin-hadoop2.7 5. hadoop-2.8.3 6. winutils 7. p ...

  8. Linux服务器Jboss运行环境搭建步骤和开机自动启动脚本编写运行

    Jboss运行环境:Linux+Jdk+Jboss+jsp系统 Jboss软件说明:类似于Tomcat,就是一个跑Jsp系统的环境,他的站点路径跟Tomcat类似,Tomcat存放站点文件到webap ...

  9. Solr单机环境搭建及部署

    一.定义 官网的定义: Solr是基于Lucene构建的流行,快速,开放源代码的企业搜索平台.它具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自动故障转移和恢复,集中式配 ...

  10. hadoop单机环境搭建

    [在此处输入文章标题] Hadoop单机搭建 1. 工具准备 1) Hadoop Linux安装包 2) VMware虚拟机 3) Java Linux安装包 4) Window 电脑一台 2. 开始 ...

随机推荐

  1. Android面试-字节一面

    距离上次跳槽已经过了3年多,突然看到字节的HR来捞.想着自己好久没面了,就打算去试试看. 0. 准备 视频面试,不用去现场真的太赞了.由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备.面试当天看了 ...

  2. SQL性能优化的47个小技巧,你了解多少?

    大家好,我是哪吒. 1.先了解MySQL的执行过程 了解了MySQL的执行过程,我们才知道如何进行sql优化. 客户端发送一条查询语句到服务器: 服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中 ...

  3. shrio

    Shrio 页面报错 <link rel="shortcut icon" href="#"/> 简单的安全框架 官网:https://shiro.a ...

  4. 第24周SDAI缓解能否预测远期RA骨破坏受抑制

    第24周SDAI缓解能否预测远期RA骨破坏受抑制 Hirano F, et al. EULAR 2015. Present ID:THU0085. 原文 译文 THU0085 SDAI REMISSI ...

  5. vue的两种服务器端渲染方案

    作者:京东零售 姜欣 关于服务器端渲染方案,之前只接触了基于react的Next.js,最近业务开发vue用的比较多,所以调研了一下vue的服务器端渲染方案. 首先:长文预警,下文包括了两种方案的实践 ...

  6. 周练7(ssti)

    {7*7} ->49 -> smarty {{7*'7'}} -> 49 -> twig {{7*'7'}} -> 7777777 -> jinjia2 1. [B ...

  7. html添加公共文件

    html添加公共文件 记录添加公共头尾文件的方法 thymeleaf模板引擎 common.html index.html

  8. 利用socket以及多线程、文件流等方法实现通信,互发文本信息以及文件

    服务器端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...

  9. LP1-5:WEB应用测试技巧

    一.静态页面 静态文字 1) 检查一个页面或者一组中多个页面的字体.size.颜色.位置等因素是否符合需求: 2)检查页面文字图标的间距.行距是否统一,对齐方式是否统一: 3)静态文字的含义是否符号需 ...

  10. linux安装datax +datax-web踩坑总结

    一丶安装datax 环境:JDK8+     py2.7+ 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz ...