jboss单机环境搭建
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
2 启动wildfly
3 添加postgresql支持到wildfly
4 增加wildfly数据源
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单机环境搭建的更多相关文章
- windows7 spark单机环境搭建及pycharm访问spark
windows7 spark单机环境搭建 follow this link how to run apache spark on windows7 pycharm 访问本机 spark 安装py4j ...
- [转载] Hadoop和Hive单机环境搭建
转载自http://blog.csdn.net/yfkiss/article/details/7715476和http://blog.csdn.net/yfkiss/article/details/7 ...
- Kafka 0.7.2 单机环境搭建
Kafka 0.7.2 单机环境搭建当下载完Kafka后,进行解压,其目录结构如下: bin config contrib core DISCLAIMER examples lib lib_manag ...
- kafka单机环境搭建及其基本使用
最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...
- HBase单机环境搭建
在搭建HBase单机环境之前,首先你要保证你已经搭建好Java环境: $ java -version java version "1.8.0_51" Java(TM) SE Run ...
- Hadoop —— 单机环境搭建
一.前置条件 Hadoop的运行依赖JDK,需要预先安装,安装步骤见: Linux下JDK的安装 二.配置免密登录 Hadoop组件之间需要基于SSH进行通讯. 2.1 配置映射 配置ip地址和主机名 ...
- 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 ...
- Linux服务器Jboss运行环境搭建步骤和开机自动启动脚本编写运行
Jboss运行环境:Linux+Jdk+Jboss+jsp系统 Jboss软件说明:类似于Tomcat,就是一个跑Jsp系统的环境,他的站点路径跟Tomcat类似,Tomcat存放站点文件到webap ...
- Solr单机环境搭建及部署
一.定义 官网的定义: Solr是基于Lucene构建的流行,快速,开放源代码的企业搜索平台.它具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自动故障转移和恢复,集中式配 ...
- hadoop单机环境搭建
[在此处输入文章标题] Hadoop单机搭建 1. 工具准备 1) Hadoop Linux安装包 2) VMware虚拟机 3) Java Linux安装包 4) Window 电脑一台 2. 开始 ...
随机推荐
- Android面试-字节一面
距离上次跳槽已经过了3年多,突然看到字节的HR来捞.想着自己好久没面了,就打算去试试看. 0. 准备 视频面试,不用去现场真的太赞了.由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备.面试当天看了 ...
- SQL性能优化的47个小技巧,你了解多少?
大家好,我是哪吒. 1.先了解MySQL的执行过程 了解了MySQL的执行过程,我们才知道如何进行sql优化. 客户端发送一条查询语句到服务器: 服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中 ...
- shrio
Shrio 页面报错 <link rel="shortcut icon" href="#"/> 简单的安全框架 官网:https://shiro.a ...
- 第24周SDAI缓解能否预测远期RA骨破坏受抑制
第24周SDAI缓解能否预测远期RA骨破坏受抑制 Hirano F, et al. EULAR 2015. Present ID:THU0085. 原文 译文 THU0085 SDAI REMISSI ...
- vue的两种服务器端渲染方案
作者:京东零售 姜欣 关于服务器端渲染方案,之前只接触了基于react的Next.js,最近业务开发vue用的比较多,所以调研了一下vue的服务器端渲染方案. 首先:长文预警,下文包括了两种方案的实践 ...
- 周练7(ssti)
{7*7} ->49 -> smarty {{7*'7'}} -> 49 -> twig {{7*'7'}} -> 7777777 -> jinjia2 1. [B ...
- html添加公共文件
html添加公共文件 记录添加公共头尾文件的方法 thymeleaf模板引擎 common.html index.html
- 利用socket以及多线程、文件流等方法实现通信,互发文本信息以及文件
服务器端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...
- LP1-5:WEB应用测试技巧
一.静态页面 静态文字 1) 检查一个页面或者一组中多个页面的字体.size.颜色.位置等因素是否符合需求: 2)检查页面文字图标的间距.行距是否统一,对齐方式是否统一: 3)静态文字的含义是否符号需 ...
- linux安装datax +datax-web踩坑总结
一丶安装datax 环境:JDK8+ py2.7+ 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz ...