☀️手把手教你camel环境搭建☀️《❤️记得收藏❤️》(代码片段)

苏州程序大白 苏州程序大白     2022-12-21     338

关键词:

☀️手把手教你Camel 环境搭建☀️《❤️记得收藏❤️》

目录

😊开讲啦!!!!🏳️‍🌈

🤺1、Vagrant 环境

😀1.1、Vagrant 是什么

Vagrant是一款用来构建虚拟开发环境的工具,它底层支持 VirtualBox、VMware 甚至 AWS 作为虚拟机系统,提供易于配置,重复性好,便携式的工作环境。也可以和 puppet,chef 结合,实现虚拟机管理的自动化。

😃1.2、Vagrant 能做什么

统一开发环境。一次配置打包,统一分发给团队成员,统一团队开发环境,解决诸如“编码问题”,“缺少模块”,“配置文件不同”带来的问题;

避免重复搭建开发环境。新员工加入,不用浪费时间搭建开发环境,快速加入开发,减少时间成本的浪费;

多个相互隔离开发环境。可以在不用box里跑不同的语言,或者编译安装同一语言不同版本,搭建多个相互隔离的开发环境,卸载清除时也很快捷轻松。

😄 1.3、Vagrant 相关软件下载

注意:以下以安装在 Windows 上为例,VirtualBox 和 Vagrant 不要装在同一分区里,Vagrant 默认选项安装到C盘。

😁1.4、Vagrant 配置环境变量(Windows)

🍇1.4.1、VirtualBox

VirtualBox:将 %VirtualBox_homt% 添加到 Path 中,这样 Vagrant 才能被识别:

  • 变量名:VBOX_MSI_INSTALL_PATH

  • 变量值:D:\\软件\\VirtualBox(根据自己安装目录)




🍈1.4.2、Vagrant

Vagrant:安装成功后,自动在 Path 中添加 %Vagrant_home%/bin,检查一下。

  • 变量名:Path

  • 变量值:…;C:\\HashiCorp\\Vagrant\\bin



😆1.5、启动 Vagrant

🍇1.5.1、创建 vagrant 环境目录

进入运行命令模式,创建测试文件夹(vagrant 环境所在目录)

进创建 vagrantdemo 目录

C:\\Users\\Administrator>md vagrantdemo
C:\\Users\\Administrator>cd vagrantdemo

🍈1.5.2、vagrant box 下载

box 是一个zip包,包含了 vagrant 的配置信息和 VirtualBox 的虚拟机镜像文件。

下载 box

🍉1.5.3、使用 box 方式安装系统

命令格式

vagrant box add "box_name" remoteUrl or localFile

box_name 可以是任意字符,用于标识 box。
使用 remoteUrl(远程地址)添加 box。

vagrant box add "centos7" https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

这种方式需要即时下载,较慢,建议下载下来 box,在本地添加。

或是使用 localFile(本地 box 文件)添加 box。

后面加绝对路径或进入同层目录。

agrant box add "centos7" CentOS-7.1.1503-x86_64-netboot.box

🍊1.5.4、初始化和 Vagrantfile

vagrant init "box_name"

初始化后会在当前目录(C:\\Users\\Administrator\\vagrantdemo)生成以一个 Vagrantfile 文件

Vagrantfile 详细使用请自行查阅资料或官方文档。

这里环境使用的 Vagrantfile,可以复制使用。

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define :admin do |admin|
admin.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "admin", "--memory", "1024"]
end
admin.vm.box = "centos7"
admin.vm.hostname = "camel-admin"
admin.vm.network "public_network"
end
config.vm.define :agent1 do |agent1|
agent1.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "agent1", "--memory", "512"]
end
agent1.vm.box = "centos7"
agent1.vm.hostname = "agent1"
agent1.vm.network "public_network"
end
config.vm.define :agent2 do |agent2|
agent2.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "agent2", "--memory", "512"]
end
agent2.vm.box = "centos7"
agent2.vm.hostname = "agent2"
agent2.vm.network "public_network"
end
end

🍋1.5.5、public_network 配置

配置 Virtualbox 网络,使 vagrant 虚拟机获得本地 dhcp 分发的 ip。


添加 nat 网络

编辑 nat 网络

🍌1.5.6、启动虚拟机

vagrant up


启动后会打开 3 台虚拟机 admin,agent1,agent2。

对应 127.0.0.1 的 2222、2200、2201 端口。

并获得本地 ip 地址。

😅1.6、使用 ssh 登录到虚拟机

windows 默认没有 ssh 命令,可以安装 babun 或 cmder

使用如下命令连接

C:\\Users\\Administrator\\vagrantdemo>vagrant ssh

下面使用xshell连接,初始账号密码都是vagrant

连接 camel-admin

ssh 127.0.0.1 2222

连接后使用 sudo passwd root 修改 root 密码

使用 ip a 查看获取到的局域网 dhcp ip


再次登录

ssh 192.168.1.210 连接 admin

连接 agent1

ssh 127.0.0.1 2200


连接agent2

ssh 127.0.0.1 2201

🏇2、camel 环境

admin 端需要安装 camel-admin 和 Dengine

agent 端需要安装 camel-agent 和 Dengine

🤣2.1、admin 端

🍇2.1.1、系统初始化和下载 camel

清除 vagrant 默认防火墙策略

chmod 755 /etc/rc.d/rc.local
echo "/usr/sbin/iptables -F" >> /etc/rc.local
iptables -F

关闭也可以

systemctl stop firewalld
systemctl disable firewalld

依赖包安装

yum install -y vim unzip maven net-tools git gcc gcc-c++ automake autoconf 
libtool make ncurses-devel zlib zlib-devel libtermcap-devel libevent-devel readline-devel patch

下载 camel-master.zip 项目地址

nzip camel-master.zip

🍈2.1.2、安装 mariadb

yum -y install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb

mariadb 初始化

mysql -uroot
MariaDB [(none)]> grant all on *.* to root@localhost identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> create database camel;
MariaDB [(none)]> use camel;
MariaDB [(none)]>
source /root/camel-master/camel-admin/src/main/resources/init-data/create_table.sql

🍉2.1.3、安装 mongodb

下载 mongodb

注意:下载 3.0.7 版本,3.0.7 以上版本有问题最新 3.4.1 启动报错

mongodb 初始化

tar zxvf mongodb-linux-x86_64-rhel70-3.0.7.tgz
mv mongodb-linux-x86_64-rhel70-3.0.7 mongodb
cd mongodb
mkdir db logs

cd bin
vim mongodb.conf
dbpath=/root/mongodb/db
logpath=/root/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true


启动 mongodb

/root/mongodb/bin/mongod --bind_ip localhost -f /root/mongodb/bin/mongodb.conf


mongodb 建库

/root/mongodb/bin/mongo
> use camel_runtime
switched to db camel_runtime
> db.movie.insert("name":"tutorials yiibai")
WriteResult( "nInserted" : 1 )
> use camel_nginx_log
switched to db camel_nginx_log
> db.movie.insert("name":"tutorials yiibai")
WriteResult( "nInserted" : 1 )
> use camel_config
switched to db camel_config
> db.movie.insert("name":"tutorials yiibai")
WriteResult( "nInserted" : 1 )
> show dbs
admin 0.000GB
camel_config 0.000GB
camel_nginx_log 0.000GB
camel_runtime 0.000GB
local 0.000GB
> exit

🍊2.1.4、配置 camel-admin 和生成 camel-admin 的 war 包

camel-admin 配置文件修改

grep -r "/data/appdatas/camel/" ./*
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/jdbc-mysql.properties</value>
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/mongo.properties</value>
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/camel.properties</value>

mkdir -p /data/appdatas/camel/
cp /root/camel-master/camel-admin/src/main/resources/init-data/camel.properties /data/appdatas/camel/
vim camel.properties
# threshold of local nginx config check
local.nginx.config.check=true
cp /root/camel-master/camel-admin/src/main/resources/init-data/jdbc-mysql.properties /data/appdatas/camel/
vim /data/appdatas/camel/jdbc-mysql.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123456
jdbc.maxPoolSize=50
jdbc.minPoolSize=1
jdbc.initialPoolSize=1
jdbc.idleConnectionTestPeriod=1800
jdbc.maxIdleTime=3600
jdbc.checkoutTimeout=5000
jdbc.url=jdbc:mysql://127.0.0.1:3306/camel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&noAccessToProcedureBodies=true&socketTimeout=5000&connectTimeout=5000

红色camel为之前mariadb新建的数据库名

cp src/main/resources/init-data/mongo.properties /data/appdatas/camel/
vim /data/appdatas/camel/mongo.properties
mongodb.url=127.0.0.1:27017
mongodb.dbname_config=camel_config
mongodb.dbname_nginx_log=camel_nginx_log
mongodb.dbname_runtime=camel_runtime
isCluster=false
connections-per-host=1800
slave-ok=false

添加 dns

否则后面下载无法解析

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

构建 camel-admin

cd /root/camel-master/camel-admin/
mvn clean compile

时间较长,最后看到 BUILD SUCCESS 构建成功

生成 camel-admin 的 war 包

cd /root/camel-master/camel-admin/
mvn install package -Dmaven.test.skip=true

在 /root/camel-master/camel-admin/target/ 目录下生成 war 包

🍋2.1.5、安装 tomcat

这里使用 tomcat7,jdk 在之前 camel-admin 构建过程中已安装,为 openjdk将之前生成的 camel-admin 的 war 包放到 tomcat 项目目录。

cp camel-admin-1.0.0.war /opt/apache-tomcat-7.0.59/webapps/

🍌2.1.6、安装 Dengine

注意:Dengine 默认安装到 /usr/loca/nginx,安装 Dengine 之前,删除系统中安装在 /usr/loca/nginx 目录的 nginx,其他 nginx 不要安装到 /usr/loca/nginx 目录

cd /root/camel-master/Dengine/
./install_dengine

权限确认,/usr/local/nginx/conf/phoenix-slb/ 权限 777

chmod 777 /usr/local/nginx/conf/phoenix-slb/

访问策略配置

vim /usr/local/nginx/conf/nginx_status.conf
req_status_zone server "$host:$server_addr:$server_port" 10M;
check_shm_size 50M;
req_status server;
server 
  listen 6666;
  server_name aaabbbccc;
  location /status 
    check_status;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location /degrade
    upstream_degrade_interface;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location / 
    return 444;
  

server 
  listen 80 default_server;
  server_name aaabbbccc;
  location /status 
    echo "ok";
    default_type text/plain;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location /reqstatus 
    req_status_show;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location / 
    return 444;
  
  error_page 404 403 =444 @static;
  location @static
    return 444;
  

🍍2.1.7、启动 Dengine 和 tomcat

启动 Dengine

/usr/local/nginx/sbin/nginx

开机自启动

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

启动 tomcat

cd /opt/apache-tomcat-7.0.59/bin/
./startup.sh

开机自启动

echo "/opt/apache-tomcat-7.0.59/bin/startup.sh" >> /etc/rc.local

🥭2.1.8、访问管理端首页

http://192.168.0.210:8080/camel-admin-1.0.0/

😂2.2、agent 端(agent1/agent2)

🍇2.2.1、系统初始化

清除 vagrant 默认防火墙策略

chmod 755 /etc/rc.d/rc.local
echo "/usr/sbin/iptables -F" >> /etc/rc.local
iptables -F

关闭也可以

systemctl stop firewalld
systemctl disable firewalld

🍈2.2.2、安装依赖包

yum -y install maven git gcc gcc-c++ automake autoconf libtool make ncurses-devel 
zlib zlib-devel libtermcap-devel libevent-devel readline-devel patch

🍉2.2.3、安装 JDK

yum search java | grep -i --color JDK

yum install java-1.7.0-openjdk

🍊2.2.4、添加 dns

vim /etc/resolv.conf
nameserver 8.8.8.8

🍋2.2.5、运行 camel-agent

cd /root/camel-master/camel-agent

运行 agent

mvn spring-boot:run > /root/camel-agent.out 2>&1 &

生成 war 包(可选)

mvn clean package

可以将 /root/camel-master/camel-agent/target 目录下生成的 war 包放到 tomcat 工程目录运行

🍌2.2.6、安装 tomcat(可选)

注意:如果已经使用 mvn spring-boot:run 方式启动 agent,跳过此步

这里使用 tomcat7,jdk 为 java-1.7.0-openjdk

将之前生成的 camel-admin 的 war 包放到 tomcat 项目目录

cp /root/camel-master/camel-agent/target/camel-agent-1.0.0.war /opt/apache-tomcat-7.0.59/webapps/
cd /opt/apache-tomcat-7.0.59/bin
./startup.sh

🍍2.2.7、安装 Dengine

注意:Dengine 默认安装到 /usr/loca/nginx,安装 Dengine 之前,删除系统中安装在 /usr/loca/nginx 目录的 nginx,其他 nginx 不要安装到 /usr/loca/nginx 目录。

cd /root/camel-master/Dengine/
./install_dengine

权限确认,/usr/local/nginx/conf/phoenix-slb/ 权限 777

chmod 777 /usr/local/nginx/conf/phoenix-slb/

访问策略配置

vim /usr/local/nginx/conf/nginx_status.conf
req_status_zone server "$host:$server_addr:$server_port" 10M;
check_shm_size 50M;
req_status server;
server 
  listen 6666;
  server_name aaabbbccc;
  location /status 
    check_status;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location /degrade
    upstream_degrade_interface;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location / 
    return 444;
  

server 
  listen 80 default_server;
  server_name aaabbbccc;
  location /status 
    echo "ok";
    default_type text/plain;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location /reqstatus 
    req_status_show;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  
  location / 
    return 444;
  
  error_page 404 403 =444 @static;
  location @static
    return 444;
  

cd /root/camel-master/Dengine/
./install_dengine

🥭2.2.8、启动 Dengine

启动 Dengine

/usr/local/nginx/sbin/nginx

开机自启动

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

开机自启动 camel-agent

echo " mvn spring-boot:run > /root/camel-agent.out 2>&1 &" >> /etc/rc.local

🤾‍♀3、camel 使用

😀3.1、创建 nginx 集群

😃3.2、nginx 集群重命名

😄3.3、nginx 集群添加节点


😁3.4、新增集群

😅3.5、集群重命名



😆3.6、新增站点

🤣3.7、站点命名


😂3.8、映射规则

编辑



详细

添加新指令



保存

🙂3.9、预览




🙃3.10、创建发布版本


😉3.11、发布


选择发布版本

😊3.12、最终发布页面


🏳️‍🌈关注苏州程序大白,持续更新技术分享。谢谢大家支持🏳️‍🌈

🏳️‍🌈关注苏州程序大白,持续更新技术分享。谢谢大家支持🏳️‍🌈

☀️手把手教你用c#下载文件的十八般武艺☀️《❤️记得收藏❤️》

☀️手把手教你用C#下载文件的十八般武艺☀️《❤️记得收藏❤️》目录 查看详情

☀️苏州程序大白一文从基础手把手教你python数据可视化大佬☀️《❤️记得收藏❤️》(代码片段)

☀️苏州程序大白一文从基础手把手教你Python数据可视化大佬☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈🌟博主介绍前言数据关系可视... 查看详情

☀️手把手教你python+matplotlib模拟锁相放大器的原理以及工作过程☀️《❤️记得收藏❤️》(代码片段)

☀️手把手教你Python+matplotlib模拟锁相放大器的原理以及工作过程☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈🌟博主介绍前言python实... 查看详情

肝魂一晚上总结:全网最全最细手把手教你pyqt5安装与使用☀️《❤️记得收藏❤️》(代码片段)

【肝魂一晚上总结:全网最全最细】手把手教你PyQt5安装与使用☀️《❤️记得收藏❤️》🏳️‍🌈目录🏳️‍🌈开讲啦!!!!🏳️‍🌈⌛前言⏳安装⌚配置⏰使用🌡️入门&#x... 查看详情

opencv教程之4.1.0版与visualstudio2015环境搭建☀️《❤️记得收藏❤️》(代码片段)

OpenCV教程之4.1.0版与VisualStudio2015环境搭建☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈🗾1、下载所需软件🏔️2、安装软件⛰️3、新建工程🌋4、工程环境配置&#x... 查看详情

☀️苏州程序大白一文教你学会微信小程序开发☀️《❤️记得收藏❤️》(代码片段)

☀️苏州程序大白一文教你学会微信小程序开发☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈🌟博主介绍🌠前言🌠讲讲专享小程... 查看详情

肝魂一晚上总结:全网只有我手把手教python检测抖音关注账号是否封号☀️《❤️记得收藏❤️》(代码片段)

【肝魂一晚上总结:全网只有我手把手教】Python检测抖音关注账号是否封号☀️《❤️记得收藏❤️》🏳️‍🌈目录🏳️‍🌈开讲啦!!!!🏳️‍🌈🏳️‍🌈关注苏州程... 查看详情

肝魂一晚上总结:2021年全网最全最面的让你java从零教你变大佬思维图☀️《❤️记得收藏❤️》

...魂一晚上总结:2021年全网最全最面的】让你Java从零教你变大佬思维图☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈😀前言😃JAVA... 查看详情

实战篇:手把手教你如何快速安全的升级oracle数据库,包学包会!❤️2021最新升级秘籍⭐️建议收藏❤️(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维开发&#... 查看详情

两万字实战:手把手教你linux7安装oracle19crac,看完不会我来打你!❤️全网最细⭐️建议收藏❤️(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前主要从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维... 查看详情

两万字实战:手把手教你linux7安装oracle19crac,看完不会我来打你!❤️全网最细⭐️建议收藏❤️(代码片段)

作者简介作者:LuciferLiu,中国DBA联盟(ACDU)成员。目前主要从事OracleDBA工作,曾从事Oracle数据库开发工作,主要服务于生产制造,汽车金融等行业。现拥有OracleOCP,OceanBaseOBCA认证,擅长Oracle数据库运维... 查看详情

❤️手把手教你用androidstudio做一个超好玩的拼图游戏,0基础android小白也能包你学会,附送超详细注释的源码,建议收藏!❤️(代码片段)

文章目录一、项目概述二、开发环境三、需求分析四、实现过程1、拼图游戏布局绘制2、拼图游戏时间计时3、拼图游戏打乱显示4、拼图游戏碎片位置切换5、拼图游戏成功的条件6、拼图游戏重新开始五、运行效果六、项目总结七... 查看详情

☀️pycharm+opencv中图像读取显示及保存☀️《❤️记得收藏❤️》

☀️PyCharm+OpenCV中图像读取显示及保存☀️《❤️记得收藏❤️》目录 查看详情

☀️c#中构建字典:dictionarybase类和sortedlist类☀️《❤️记得收藏❤️》

☀️C#中构建字典:DictionaryBase类和SortedList类☀️《❤️记得收藏❤️》目录 查看详情

☀️个人推荐开源c++qt控件库及项目系列☀️《❤️记得收藏❤️》

☀️个人推荐开源C++Qt控件库及项目系列☀️《❤️记得收藏❤️》目录 查看详情

苏州程序大白总结vue零基础到高阶第一节☀️《❤️记得收藏❤️》

【苏州程序大白总结】Vue基础学习☀️《❤️记得收藏❤️》目录苏程序大白介绍 查看详情

苏州程序大白总结vue零基础到高阶第二节☀️《❤️记得收藏❤️》

【苏州程序大白总结】Vue零基础到高阶第二节☀️《❤️记得收藏❤️》目录苏程序大白介绍 查看详情

☀️苏州程序大白一文解析java多线程☀️《❤️记得收藏❤️》(代码片段)

☀️苏州程序大白一文解析Java多线程☀️《❤️记得收藏❤️》目录🏳️‍🌈开讲啦!!!!🏳️‍🌈苏州程序大白🏳️‍🌈🌟博主介绍基本概念线程的相关Api多线程和单线程线程... 查看详情