分类查看>[默认分类]
-
云服务实例迁移出现一点小意外导致数据库损毁,有需要过往内容的可以发邮件给我。
0最近迁移云服务器数据时误操作导致博客数据库所在实例格式化,之前的备份数据暂时没有时间解析转换,有需要的可以发邮件给我os7blue@163.com博客系统也是旧版本的,如果有bug,不要在意,后面会恢复新版本。也可以前往公众号寻找部分内容(多年未更新,不必关注)
May 1, 2023 12:00:06 PM 浏览:209 评论:0
阅读更多 -
docker 部署 nacos2.x(伪)集群,使用nginx做负载均衡
0一、前言 实际上,如果不使用nginx也可以正常使用nacos集群,但是有nginx这种方便快捷的东西为什么不用呢。以下,以nacos 2.x为例。 首先需要说明的是,nacos升级到2.0之后,新增了对gprc的支持,增加了两个端口,分别为偏移量1000和1001。因为这两个端口,nacos2.x版本的部署方式与以往有一些不同。 大致分为以下几个步骤:创建一个自定义docker网络。创建一个mysql容器。创建三个nacos容器。创建一个nginx容器做负载均衡。 二、创建自定义docker网络 这个其实也不算是必要的,还是要根据自己的网络扩扑来做,只不过我们这里是使用同一个docker来创建不同的容器来模拟实现nacos集群,所以创建一个单独的网络方便一些。 使用该命令创建docker自定义网络。 docker network create --driver bridge --subnet 172.7.7.0/16 --gateway 172.7.7.0 microserver 简单解析一下上面这个命令: --driver 驱动程序,我们这里使用的是bridge(桥接),其他设置请查看docker文档。 --subnet 表示网段的CIDR格式的子网 --gateway 用于主子网的IPv4或IPv6网关 最后那个microserver是自己给自定义网络起的名称,看心情随意。 三、创建mysql容器。 nacos支持使用mysql做持久化。 为了数据安全和方便,这里我们将mysql的配置和数据挂到自己定义的目录里。 创建两个文件夹,data和conf,并记住这两个文件夹的路径 其中conf文件夹中需要自己编写一下mysql的自定义文件my.cnf my.conf文件的编写有两种办法,一个是先创建一个mysql容器,从容器中把自带的my.conf文件拷贝出来。 另一个就是自己按照官方文档说明去编写。 这里给一个简单编写的配置: [mysqld]#Mysql服务的唯一编号 每个mysql服务Id需唯一server-id=1#服务端口号 默认3306port=3306#mysql安装根目录(default /usr)#basedir=/usr/local/mysql#mysql数据文件所在位置datadir=/var/lib/mysql#pidpid-file=/var/run/mysqld/mysqld.pid#设置socke文件所在目录socket=/var/lib/mysql/mysql.sock#设置临时目录#tmpdir=/tmp# 用户user=mysql# 允许访问的IP网段bind-address=0.0.0.0# 跳过密码登录#skip-grant-tables#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容#skip-external-locking#只能用IP地址检查客户端的登录,不用主机名#skip_name_resolve=1#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)#transaction_isolation=READ-COMMITTED#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)character-set-server=utf8mb4#数据库字符集对应一些排序等规则,注意要和character-set-server对应collation-server=utf8mb4_general_ci#设置client连接mysql时的字符集,防止乱码init_connect='SET NAMES utf8mb4'#是否对sql语句大小写敏感,1表示不敏感lower_case_table_names=1#最大连接数max_connections=400#最大错误连接数max_connect_errors=1000#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值explicit_defaults_for_timestamp=true#SQL数据包发送的大小,如果有BLOB对象建议修改成1Gmax_allowed_packet=128M#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效interactive_timeout=1800wait_timeout=1800#内部内存临时表的最大值 ,设置成128M。#比如大数据量的group by ,order by时可能用到临时表,#超过了这个值将写入磁盘,系统IO压力增大tmp_table_size=134217728max_heap_table_size=134217728#禁用mysql的缓存查询结果集功能#后期根据业务情况测试决定是否开启#大部分情况下关闭下面两项#query_cache_size = 0#query_cache_type = 0 #数据库错误日志文件#log-error=/var/log/mysqld.log#慢查询sql日志设置#slow_query_log=1#slow_query_log_file=/var/log/mysqld_slow.log#检查未使用到索引的sqllog_queries_not_using_indexes=1#针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数log_throttle_queries_not_using_indexes=5#作为从库时生效,从库复制中如何有慢sql也将被记录log_slow_slave_statements=1#慢查询执行的秒数,必须达到此值可被记录long_query_time=8#检索的行数必须达到此值才可被记为慢查询min_examined_row_limit=100#mysql binlog日志文件保存的过期时间,过期后自动删除#expire_logs_days=5binlog_expire_logs_seconds=604800 创建mysql容器(注释影响命令请自行删除):docker run -itd -p 3306:3306 \ #配置映射端口--name mysql \ --net microserver --ip 172.7.7.30 \ #加入我们之间自定义的网络并设置ip-v /Users/codecv/docker/mysql/conf/my.cnf:/etc/my.cnf \ #挂载my.cnf文件-v /Users/codecv/docker/mysql/data:/var/lib/mysql \ #挂载data文件--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=123123 \ #数据库密码-d mysql:latest #选择自己想要的版本 mysql数据库中需要创建一个nacos_config的数据库,.sql文件太长,这里补贴了,自行去官方网站/仓库寻找。 四、创建三个nacos容器 q:为什么是三个? a:官方文档中定义集群模式需要三个或三个以上实例。 我们这里一共创建三个节点,根据我们之前自定义的网络,分别设置ip为:172.7.7.11172.7.7.12172.7.7.13 创建第一个nacos容器(注释影响命令请自行删除):docker run -itd \-e PREFER_HOST_MODE=ip \-e MODE=cluster \ #集群模式-e NACOS_SERVERS="172.7.7.12:8848 172.7.7.13:8848" \ #其他集群节点的地址-e SPRING_DATASOURCE_PLATFORM=mysql \ #数据库-e MYSQL_SERVICE_HOST=172.7.7.30 \ #mysql url-e MYSQL_SERVICE_PORT=3306 \ #mysql端口-e MYSQL_SERVICE_DB_NAME=nacos_config \ #数据库名-e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123123 \-p 9010:8848 \ #这三个映射的端口就是前面所说的nacos2.x版本新增的-p 10010:9848 \-p 10011:9849 \--name nacos01 \--net microserver --ip 172.7.7.11 \ #加入之间自定义的网络并设置ip--restart=always \nacos/nacos-server:v2.1.0 创建第二个nacos容器(注释影响命令请自行删除):docker run -itd \-e PREFER_HOST_MODE=ip \-e MODE=cluster \ #集群模式-e NACOS_SERVERS="172.7.7.11:8848 172.7.7.13:8848" \ #其他集群节点的地址-e SPRING_DATASOURCE_PLATFORM=mysql \ #数据库-e MYSQL_SERVICE_HOST=172.7.7.30 \ #mysql url-e MYSQL_SERVICE_PORT=3306 \ #mysql端口-e MYSQL_SERVICE_DB_NAME=nacos_config \ #数据库名-e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123123 \-p 9020:8848 \ #这三个映射的端口就是前面所说的nacos2.x版本新增的-p 10020:9848 \-p 10021:9849 \--name nacos02 \--net microserver --ip 172.7.7.12 \ #加入之间自定义的网络并设置ip--restart=always \nacos/nacos-server:v2.1.0 创建第三个nacos容器(注释影响命令请自行删除):docker run -itd \-e PREFER_HOST_MODE=ip \-e MODE=cluster \ #集群模式-e NACOS_SERVERS="172.7.7.11:8848 172.7.7.12:8848" \ #其他集群节点的地址-e SPRING_DATASOURCE_PLATFORM=mysql \ #数据库-e MYSQL_SERVICE_HOST=172.7.7.30 \ #mysql url-e MYSQL_SERVICE_PORT=3306 \ #mysql端口-e MYSQL_SERVICE_DB_NAME=nacos_config \ #数据库名-e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123123 \-p 9030:8848 \ #这三个映射的端口就是前面所说的nacos2.x版本新增的-p 10030:9848 \-p 10031:9849 \--name nacos03 \--net microserver --ip 172.7.7.13 \ #加入之间自定义的网络并设置ip--restart=always \nacos/nacos-server:v2.1.0五、创建一个nginx容器做负载均衡: 同样的,创建nginx容器,建议将配置文件nginx.conf外置。 配置文件内容可以再官网获得,也可以先建立一个未挂载的nginx容器拷贝出默认配置文件使用。 docker run --name nginx -itd \-v /Users/codecv/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \ #挂载nginx.conf文件-p 9900:80 \-p 10900:10900 \nginx 配置nginx主要是两个方面,一个是控制台的转发,一个是nacos2.x版本新增端口的转发 配置大致如下,根据自己的习惯配置即可: 控制台:upstream nacoscluster{server 172.7.7.11:8848;server 172.7.7.12:8848;server 172.7.7.13:8848;}server {listen 8848; #自己指定nginx的监听端口server_name localhost;location / {proxy_pass http://nacoscluster; #“nacoscluster”和上面指定的名字nacoscluster要一致}} 2.x新增两个接口的转发:stream {upstream nacoscluster2{server 172.7.7.11:9848;server 172.7.7.12:9848;server 172.7.7.13:9848;}server {listen 9848; proxy_pass nacoscluster2;}upstream nacoscluster1{server 172.7.7.1:9849;server 172.7.7.12:9849;server 172.7.7.13:9849;}server {listen 9849; proxy_pass nacoscluster1;} 还有很重要的一点,将创建的nginx容器加入之前创建的docker网络中:docker network connect microserver nginx 六、结束 本文记录中是以单个docker创建多个容器来模拟nacos集群部署的,实际的运用,需要根据自己的网络拓扑去更改相应的设置。
Aug 16, 2022 8:01:05 PM 浏览:652 评论:0
阅读更多
站点信息
- 建站时间:2018-10-24
- 网站程序:java
- 文章统计:2
- 文章评论:0
- 统计数据:百度统计
- 微信公众号:扫描二维码,关注我们
