微服务部署(一)架构简介

简介

金财项目是微服务构架,每个功能模块都是一个单独部署的服务,现有20个服务:AUTH、CUSTOMER、EHALL、CONFIG、EUREKA、GATEWAY、GATEWAY-UI、GENERATOR、JCCOLLEGE、NOTIFY、ORDER、PAY、PRODUCT、REPORT、SECURITY、SYSTEM、STORE、TASK、WECHAT、WECHAT-AUTH,整个系统服务,在不断增加中。

系统架构图

环境准备

操作系统:Centos 7.2 x64

应用环境:openresty-1.11.2.2(Nginx)、Mysql5.6.27、RabbitMQ3.6.9、JDK1.8.112、Redis3.2.5、svn1.6.11

环境部署

openresty安装

安装前准备:

  1. yum install pcre pcre-devel openssl openssl-devel gcc gcc-c++ zlib zlib-devel postgresql-devel

下载openresty:

  1. wget -P /usr/local/src http://192.168.200.141:8557/install/openresty-1.11.2.2.tar.gz

解压openresty:

  1. cd /usr/local/src
  2. tar zxf openresty-1.11.2.2.tar.gz

编译安装:

  1. ./configure --prefix=/usr/local/openresty \
  2. --with-luajit \
  3. --with-http_iconv_module \
  4. --with-http_postgres_module \
  5. --with-http_stub_status_module \
  6. --with-stream \
  7. --with-stream_ssl_module \
  8. make&&make install

nginx配置:

  1. vim /usr/local/openresty/nginx/conf/nginx.conf
  2. #打开nginx配置文件,在http区域添加 include /usr/local/openresty/nginx/conf/vhost/*.conf;

mysql安装

安装前准备:

  1. yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake

下载mysql:

  1. wget -P /usr/local/src http://192.168.200.141:8557/install/mysql-5.6.27.tar.gz

解压mysql:

  1. cd /usr/local/src
  2. tar zxf mysql-5.6.27.tar.gz

编译安装:

  1. cd mysql-5.6.27
  2. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  3. make && make install

创建mysql账号:

  1. useradd mysql -s /bin/nologin

mysql安装目录授权:

  1. chown -R mysql.mysql /usr/local/mysql
  2. chown -R mysql.mysql /data/mysql/

初始化mysqlDB:

  1. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/

设置系统服务开机启动:

  1. cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
  2. cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  3. chkconfig --add mysql && chkconfig mysql on
  4. service mysql start

添加PATH环境变量:

  1. echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  2. source /etc/profile

安装JDK

下载JDK至/usr/local/src:

  1. wget -P /usr/local/src http://192.168.200.141:8557/install/jdk-8u112-linux-x64.tar.gz

解压JDK:

  1. cd /usr/local/src
  2. tar zxf jdk-8u112-linux-x64.tar.gz
  3. mv jdk1.8.0_112 ../jdk

设置JDK环境变量:

  1. cat >> /etc/profile << ‘EOF‘
  2. export JAVA_HOME=/usr/local/jdk
  3. export CLASSPATH=$JAVA_HOME/lib
  4. export JRE_HOME=$JAVA_HOME/jre
  5. export PATH=$JAVA_HOME/bin:$PATH
  6. EOF

JDK环境变量生效:

  1. source /etc/profile

PS: http://192.168.200.141:8557/install/jdk-8u112-linux-x64.tar.gz此jdk包已经优化过,详情请看“微服务部署(五)JDK优化”

安装redis

安装前准备:

  1. yum -y install gcc

下载redis:

  1. wget -P /usr/local/src http://192.168.200.141:8557/install/redis-3.2.5.tar.gz

解压Rdedis:

  1. cd /usr/local/src
  2. tar zxf redis-3.2.5.tar.gz

编译安装redis:

  1. cd redis-3.2.5
  2. make MALLOC=libc
  3. cd src/
  4. make PREFIX=/usr/local/redis install

redis配置文件与命令路径:

  1. mkdir /etc/redis/
  2. cp redis.conf /etc/redis/
  3. cd /usr/local/redis/bin/
  4. cp redis-benchmark redis-cli redis-server /usr/bin/

redis以守护进程的方式运行:

  1. daemonize yes #修改配置文件daemonize参数

redis密码认证配置:

  1. #requirepass foobared

去掉行前的注释,并修改密码为所需的密码,保存文件

  1. requirepass mypasswd

redis内网访问配置:

  1. bind 192.168.1.101 #IP为实际环境内网IP

启动redis:

  1. redis-server /etc/redis/redis.conf

安装svn

svn配合configServer使用,用于存放、同步金财系统服务配置文件,配置文件放在trunk目录下

使用yum安装:

  1. yum - y install subversion

创建版本库目录:

  1. mkdir /data/svn #根据实际情况创建目录
  2. svnserve -d -r /data/svn #启动svn
  3. ···
  4. 创建版本库:
  5. ```shell
  6. svnadmin create /data/svn/config

SVN用户密码配置:

  1. cd /data/svn/config/conf
  2. vim svnserve.conf

去掉password-db和authz-db前面的#号

  1. vim passwd

在[users]段下
账户 = 密码 格式配置svn用户

svn权限配置:

  1. vim authz

[/]为访问路径,这里表示根目录
r为读权限,w为写权限

安装svn客户端tortoisesvn (windows)

  1. 下载地址,根据操作系统选择:

    1. https://tortoisesvn.net/downloads.html
  2. 桌面右键选择svn checkout:
    url of repository为svn路径,如svn://IP:PORT/config
    checkout directory为保存svn数据的目录
  3. 成功checkout后,进入目录创建trunk目录,把各项服务配置文件放入trunk目录
  4. 使用tortoisesvn增加trunk目录及配置文件,并提交:
    a. 右键点击trunk目录选择tortoiseSVN->add
    b. 右键点击trunk目录点击SVN commit

安装RabbitMQ

安装前准备:

  1. yum -y install erlang socat

下载RabbitMQ至/usr/local/src:

  1. wget -P /usr/local/src http://192.168.200.141:8557/install/rabbitmq-server-3.6.9-1.el6.noarch.rpm

rpm安装RabbitMQ:

  1. cd /usr/local/src
  2. rpm -ivh rabbitmq-server-3.6.9-1.el6.noarch.rpm

启动RabbitMQ:

  1. service rabbitmq-server start

创建RabbitMQ用户&&赋予用户administrator角色:

  1. rabbitmqctl add_user admin password
  2. rabbitmqctl set_user_tags admin administrator

删除多余用户:

  1. rabbitmqctl list_users #列出所有用户
  2. rabbitmqctl delete_user username #删除创建之外的用户

列出虚拟主机:

对账号进行vhost授权:

    1. rabbitmqctl set_permissions -p / admin ‘.*‘ ‘.*‘ ‘.*

后端部署

创建统一APP服务根目录:

  1. mkdir /data/services -p
  2. mkdir /data/logs

创建服务目录,所有服务目录均放在/data/services目录下,如:ehallServer为ehall服务的目录,bin为启动脚本的目录,lib为jar包存放目录,日志根据启动脚本放在logs目录或/data/logs下

  1. cd /data/services
  2. mkdir ehallServer/bin -p
  3. mkdir ehallServer/lib -p
  4. mkdir ehallServer/logs -p

在/data/services目录下,下载app环境变量脚本setEnv.sh,根据实际情况修改FTCSP_EUREKA_SERVER_URL和FTCSP_CONFIG_SERVER_URL的访问路径

  1. cd /data/services
  2. wget http://192.168.200.141:8557/script/setEnv.sh


安装各项服务

根据上文创建服务目录,并下载相应的app服务,下载地址:

  1. http://192.168.200.141:8557/program

启动脚本的下载地址,若没有安装玖维监控则删除start.sh脚本中的MONITOR_PATH和-javaagent:$MONITOR_PATH:

  1. wget http://192.168.200.141:8557/script/start.sh

启动app服务:

  1. /data/services/服务目录名/bin/start.sh
时间: 2024-08-27 08:32:30

微服务部署(一)架构简介的相关文章

spring cloud微服务分布式云架构简介

Spring Cloud将目前比较成熟.经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终整合出一套简单易懂.易部署和易维护的分布式系统架构平台. Spring Cloud的子项目,大致可分成两类:一类是对现有成熟框架Spring Boot的封装和抽象,也是数量最多的项目:第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream就是kafka, ActiveMQ这样的角色.开发人员进行微服务的实践,第一类

微服务实战(六):选择微服务部署策略

动机 部署一个单体式应用意味运行大型应用的多个副本,典型的提供若干个(N)服务器(物理或者虚拟),运行若干个(M)个应用实例.部署单体式应用不会很直接,但是肯定比部署微服务应用简单些. 一个微服务应用由上百个服务构成,服务可以采用不同语言和框架分别写就.每个服务都是一个单一应用,可以有自己的部署.资源.扩展和监控需求.例如,可以根据服务需求运行若干个服务实例,除此之外,每个实例必须有自己的CPU,内存和I/O资源.尽管很复杂,但是更挑战的是服务部署必须快速.可靠和性价比高. 有一些微服务部署的模

分布式、微服务、云架构

分布式.微服务.云架构 JAVA语言开发.跨平台.高性能.高可用.安全.服务化.模块化.組件化.驱动式开发模式 commonservice eurekaNetflix 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移. commonservice configSpring 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. Spring Cloud BusSpring 事件.消息总线,用于

微服务浅述---架构演进

微服务浅述---架构演进 提到架构演进,我们很容易想到'单体应用---分布式/SOA---微服务'的演进过程,那么为什么会有这个必然演进?演进的过程中遇到了哪些坑?是怎么解决这些坑的? 为什么会有这个必然的架构演进? 因为痛点驱动.因为互联网公司很容易突然爆发,今年的数据量可能比去年的数据量翻上N倍.那么刚开始的时候公司用的是单体架构,即一个业务逻辑一撸到底.比如电商公司,从前端商品展示,购物车,下单,订单生成,发货,物流等等这些业务逻辑 全部写在一个工程内,数据放在一个库内,部署在一个服务器上

docker微服务部署之:六、Rancher管理部署微服务

docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台. Rancher官网:https://rancher.com 二.Docker中下载Rancher镜像并运行 #Rancher镜像下载 $ sudo docker pul

Spring Cloud微服务分布式云架构技术点

spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: View: H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud:Zuul.Ribbon.Feign.Turbine.Hystrix.Oauthor2.Sleuth.API Gateway.Spri

spring cloud微服务分布式云架构 - 整合架构的技术点

spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: View: H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud:Zuul.Ribbon.Feign.Turbine.Hystrix.Oauthor2.Sleuth.API Gateway.Spri

Spring Cloud企业微服务分布式云架构技术点整合

摘要: View:  H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud: Zuul.Ribbon.Feign.Turbine.Hystrix.Oauthor2.Sleuth.API Gateway.Spring Cloud.Config Eureka.SSO.Spring Cloud. BUS.Turbine.Zipkin.Cache.Spring Cloud Admin.API Gateway.ELK Spring Cl

spring cloud微服务分布式云架构 - 整合企业架构的技术点

spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: View: H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud:Zuul.Ribbon.Feign.Turbine.Hystrix.Oauthor2.Sleuth.API Gateway.Spri