内蒙古建设住房与城乡厅官方网站,在线查网站的ip地址,企业微信app下载安装官网,淘宝上那些做网站seo的管用吗一、背景
大型软件系统的开发现在往往需要多人的协助#xff0c;特别是前后端分离的情况下下#xff0c;分工越来越细#xff0c;那么一个人是否也能快速搭建一套微服务系统呢#xff1f; 答案是能的。看我是怎么操作的吧。
二、搭建过程
1、首先需要一套逆向代码生成工…一、背景
大型软件系统的开发现在往往需要多人的协助特别是前后端分离的情况下下分工越来越细那么一个人是否也能快速搭建一套微服务系统呢 答案是能的。看我是怎么操作的吧。
二、搭建过程
1、首先需要一套逆向代码生成工具只需要设计好数据库表就能生成微服务该源码已经上传到我的资源分享里面
1、修改dbConfig.xml文件配置数据源信息。 2、修改project.xml文件配置微服务信息。 2.0、修改name为对应数据库支持mysql、oracle、postgresql 2.1、修改schema为据库名称 2.2、修改table为表名多个表以逗号分隔 2.3、修改version版本号 2.4、修改author为自己的OA名称 2.5、修改service为服务名称 2.6、修改module为模块名称 2.7、修改rootPackage为根包名称 2.8、修改application为启动类名称 2.9、其他内容无需修改 3、运行Run.java生成代码路径为out目录下 。 2.相关的yml文件需要准备好
application.yml
#数据库配置信息
spring:datasource:url: ${member-plat.jdbc.member-sys.url}driver-class-name: ${member-plat.jdbc.member-sys.driver-class-name}username: ${member-plat.jdbc.member-sys.username}password: ${member-plat.jdbc.member-sys.password}#hikari数据源特性配置hikari:maximum-pool-size: 100 #最大连接数,默认值10.minimum-idle: 20 #最小空闲连接默认值10.connection-timeout: 60000 #连接超时时间(毫秒),默认值30秒.#空闲连接超时时间默认值600000(10分钟),只有空闲连接数大于最大连接数且空闲时间超过该值才会被释放#如果大于等于 max-lifetime 且 max-lifetime0,则会被重置为0.idle-timeout: 600000max-lifetime: 3000000 #连接最大存活时间,默认值30分钟.设置应该比mysql设置的超时时间短connection-test-query: select 1 #连接测试查询 bootstrap.yml
#应用ID
app:id: member-plat#应用端口
server:port: 8305#服务名称
spring:application:name: cdj-projectservlet:multipart:max-file-size: 1024MB #指定上传文件允许的最大大小。 默认值为1MBmax-request-size: 10240MB #指定multipart/form-data请求允许的最大大小。 默认值为10MB。#配置注册中心
eureka:instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}client:service-url:defaultZone: ${eureka.defaultZone} #服务注册到的地址fetch-registry: true#阿波罗配置信息
apollo:bootstrap:enabled: truenamespaces: application,txyunjdbc.yml,redis.yml,weixin.yml,oss.yml,member.yml,txrocketMq.ymlmeta: http://member-config:8080mybatis:#mapper配置文件mapper-locations: classpath:mapper/*.xml#开启驼峰命名法configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplmybatis-plus:configuration:# 这个配置会将执行的sql打印出来在开发或测试的时候可以用log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: ASSIGN_UUID#日志级别配置信息
logging:level:root: INFOcn.member.dao: DEBUG 3、注册中心准备好 eureka 源码已经上传的自研共享 4、apollo配置组件准备好开源下载就行
5、准备一份部署文档安装jdk 安装docker安装nginx这些编写好微服务启动脚本这些 三、部署文档 1.1服务器资源
操作系统版本Linux CentOS 7.6
JAVA环境openjdk version 1.8.0_312
数据库MYSQL8.0 或PostgreSQL 12.8
1.2 yum准备
1.2.1 更新yum
yum update yum
1.2.2 安装yum工具
yum -y install yum-utils
1.2.3查看yum版本
yum –version
版本为3.4.3或之后的最新版本即可
1.3 JAVA部署
JAVA安装命令:
yum install java-1.8.0-openjdk.x86_64
查看JAVA版本: java -version 1.4 docker环境及部署
1.4.1版本
Client: Docker Engine – Community version: 20.10.12
Server: Docker Engine – Community version: 20.10.12
1.4.2 部署
1.用yum拉取阿里云镜像:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2. yum安装:
yum install docker-ce
3.查看docker版本:
docker version
4.启动docker:
systemctl start docker
5.设置docker开机自启
systemctl enable docker
1.4.3 文件夹
1.在系统的/home路径下创建一个命名为“docker”的文件夹用于存放docker相关文件。
2.在/home/docker路径下创建两个文件夹“script”和“apps”用于存放脚本文件与镜像文件。
1.4.4 docker常用命令
1.查看docker镜像: docker images
2.查看docker正在运行容器: docker ps
3.查看docker里的容器: docker ps -a
1.5 nginx部署
端口需要:80
1.5.1 docker部署nginx
docker pull nginx:latest
1.5.2 脚本文件
在/home/docker/script路径下创建一个脚本文件“nginx.sh”,内容为:
docker run -d \ --name nginx \ --nethost \ -v /home/docker/apps/nginx/www:/usr/share/nginx/html \ -v /home/docker/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/docker/apps/nginx/logs:/var/log/nginx \ -v /home/docker/apps/nginx/conf.d:/etc/nginx/conf.d \ -v /home/docker/apps/nginx/cert:/etc/nginx/cert \ nginx (注意以上内容需注意linux中的特殊字符可用vim编辑文件去掉特殊字符否则运行脚本文件时会报错cert为安全证书相关不需要时可以去掉)
1.5.3 nginx文件
1.在/home/docker/apps路径下创建“nginx”文件夹
2.在/home/docker/apps/nginx路径下分别创建“www”、 “logs”、 “conf”、 “conf.d”四个文件夹”www”文件夹用于存放前端代码“logs”文件夹用于存放日志“conf”文件夹用于存放nginx总配置文件“conf.d”用于存放项目配置文件如需安全证书相关还要创建“cert”文件夹。
3.nginx总配置文件:
在/home/docker/apps/nginx/conf路径下创建“nginx.conf”文件作为nginx的总配置文件内容为:
user nginx;
worker_processes auto; error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid; events { worker_connections 1024;
} http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; client_max_body_size 1024m; include /etc/nginx/conf.d/*.conf;
}
4.项目配置分文件
在/home/dokcer/apps/nginx/conf.d路径下创建“xxx.conf”文件“xxx”为项目名内容为
#server
#{ ## 80端口是http正常访问的接口 #listen 80; #server_name XXX.com; ## 在这里我做了https全加密处理在访问http的时候自动跳转到https #rewrite ^(.*) https://${server_name}$1 permanent;
#} server {
# listen 自定义监听端口 listen 80;
#定义使用 访问域名 server_name localhost;
# 如需域名则配置如下
# 侦听443端口这个是ssl访问端口
# listen 443 ssl;
# ssl_certificate /etc/nginx/cert/xxx.crt; # ssl_certificate_key /etc/nginx/cert/安全私钥文件名; location / { root /var/nginx/html/xxx; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location /404.html { root error; } } 1.5.4 运行nginx
1.通过脚本文件nginx.sh运行脚本文件的运行需授予权限在文件目录下命令
chmod 755 nginx.sh
2.运行脚本命令./nginx.sh
1.5.4 nginx常用命令
1.启动: docker start nginx
2.重启: docker restart nginx
3.停止: docker stop nginx 1.6 注册中心eureka部署非必要
端口需要:8761
1.6.1 准备
部署注册中心eureka使用docker部署。在/home/docker/apps路径下创建“eureka”文件夹并存放一个ctg-eureka.jar的镜像文件和构建镜像的Dockerfile文本文件。eureka.jar文件可使用别的服务器同目录下的ctg-eureka.jar文件。
Dockerfile文件的内容:
FROM java:8
VOLUME /tmp
ADD ctg-eureka.jar ctg-eureka.jar
EXPOSE 8761
ENTRYPOINT [java,-Djava.security.egdfile:/dev/./urandom,-jar,/ctg-eureka.jar]
1.6.2 脚本文件
在/home/docker/script路径下创建一个脚本文件“eureka.sh”,内容为:
docker run --name ctg-eureka -d -p 8761:8761 ctg-eureka
1.6.3 运行eureka
1.通过脚本文件eureka.sh运行脚本文件的运行需授予权限在文件目录下命令
chmod 755 eureka.sh
2.运行脚本命令./ eureka.sh 1.6.4 eureka常用命令
1.启动: docker start ctg-eureka
2.重启: docker restart ctg-eureka
3.停止: docker stop ctg-eureka 1.7 配置中心Apollo部署非必要
端口需要: 8070,8080,8090
1.7.1 准备工作
Apllo的部署需要Mysql数据库需要5.6.5以上版本。
1.7.2 创建数据库
Apollo服务端共需要两个数据库ApolloPortalDB和ApolloConfigDB我们把数据库、表的创建和样例数据都分别准备了sql文件只需要导入数据库即可。
执行两个sql文件
sql/apolloportaldb.sql
sql/apolloconfigdb.sql
会创建两个数据库
sql文件可在官网Quick Start · apolloconfig/apollo Wiki · GitHub 下载 1.7.3 脚本文件
1.在/home/docker/script路径下创建“apollo”文件夹
2.在/home/docker/script/apollo路径下创建“apollo-portal.sh”脚本文件内容为
docker run -d \ --name apollo-portal \ --nethost \ -v /tmp/logs:/opt/logs \ -e SPRING_DATASOURCE_URL
jdbc:mysql://数据库地址/ctg_apollo_portal_test?characterEncodingutf8 \ -e SPRING_DATASOURCE_USERNAME数据库账号\ -e SPRING_DATASOURCE_PASSWORD数据库密码\ -e APOLLO_PORTAL_ENVStest \ -e TEST_METAhttp://服务器ip地址:8080 \ apolloconfig/apollo-portal:1.9.1 3.在/home/docker/script/apollo路径下创建“apollo-config.sh”脚本文件内容为
docker run -d \ --name apollo-configservice \ --nethost \ -v /tmp/logs:/opt/logs \ -e SPRING_DATASOURCE_URL
jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncodingutf8 \ -e SPRING_DATASOURCE_USERNAME数据库账号\ -e SPRING_DATASOURCE_PASSWORD数据库密码\ apolloconfig/apollo-configservice:1.9.1 4. 在/home/docker/script/apollo路径下创建“apollo-admin.sh”脚本文件内容为
docker run -d \ --name apollo-adminservice \ --nethost \ -v /tmp/logs:/opt/logs \ -e SPRING_DATASOURCE_URL
jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncodingutf8 \ -e SPRING_DATASOURCE_USERNAME数据库账号\ -e SPRING_DATASOURCE_PASSWORD数据库密码\ apolloconfig/apollo-adminservice:1.9.1
1.7.4 docker拉取apollo
命令
docker pull apolloconfig/apollo-configservice:1.9.1docker pull apolloconfig/apollo-adminservice:1.9.1docker pull apolloconfig/apollo-portal:1.9.1
1.7.5 运行apollo
在/home/docker/script/apollo路径下运行指令
1. chmod 755 apollo-portal.sh
2. chmod 755 apollo-config.sh
3. chmod 755 apollo-admin.sh 执行运行命令
1. ./ apollo-portal.sh
2. ./ apollo-config.sh
3. ./ apollo-admin.sh 1.7.6 使用Apollo配置中心
访问服务器IP:8070可以进行访问默认的用户名是apollo密码是admin。