高并发集群饿了么后端的登录模块

news2024/11/19 0:35:36

高并发集群饿了么后端的登录模块

1.数据库

非交互式python:

非交互式:

2.数据库的负载均衡:阿里巴巴的mycat

修改配置文件

/usr/local/mycat/conf/server.xml   :对外的账号 密码 数据库

/usr/local/mycat/conf/schema.xml   

如果出现启动异常,8066端口没有打开,可以检查两个日志文件

vim  /usr/local/mycat/logs/wrapper.log

vim   /usr/local/mycat/logs/mycat.log

3.后端服务器

java|python|php

使用jar包启动服务: java -jar  ...

一.配置一主二从mysql57

配置基于gtids事务复制

二.配置mycat读写分离负载均衡

使用mycat为三台数据库设置负载均衡(读写分离)

1.前期环境部署

  [root@mycat ~]# ls
  anaconda-ks.cfg             Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
  jdk-8u192-linux-x64.tar.gz
  [root@mycat ~]# tar -xf jdk-8u192-linux-x64.tar.gz 
  [root@mycat ~]# tar -xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 
  [root@mycat ~]# cp -r jdk1.8.0_192/ /usr/local/jdk
  [root@mycat ~]# cp -r mycat/ /usr/local/mycat
  [root@mycat ~]# sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile
  [root@mycat ~]# source /etc/profile
  [root@mycat ~]# sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profile
  [root@mycat ~]# source /etc/profile
  [root@mycat ~]# javac -version
  javac 1.8.0_192
  [root@mycat ~]#  /usr/local/mycat/bin/mycat console

2.修改server.xml配置文件

  [root@mycat ~]# vim /usr/local/mycat/conf/server.xml
  ​
   93         <user name="haha" defaultAccount="true">
   94                 <property name="password">haha</property>
   95                 <property name="schemas">eleme</property>
  ​
  # 注释
  ​
  107 <!--
  108         <user name="user">
  109                 <property name="password">user</property>
  110                 <property name="schemas">TESTDB</property>
  111                 <property name="readOnly">true</property>
  112         </user>
  113 -->

3.修改schema.xml配置文件

     1.设置schema标签 添加dataNode="xxx" name=eleme

     2.修改dataHost标签

 [root@mycat ~]# vim /usr/local/mycat/conf/schema.xml 
   
    1 <?xml version="1.0"?>
    2 <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    3 <mycat:schema xmlns:mycat="http://io.mycat/">
    4 
    5         <schema name="eleme" dataNode="dn1" checkSQLschema="false" sqlMaxLimit="10    0"> 
    6         </schema>
    7         <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
    8                 /> -->
    9         <dataNode name="dn1" dataHost="localhost1" database="eleme" />
   10 <!--    <dataNode name="dn2" dataHost="localhost1" database="db2" />
   11         <dataNode name="dn3" dataHost="localhost1" database="db3" />-->
   12         <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
   13          <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
   14         <dataNode       name="jdbc_dn2" dataHost="jdbchost" database="db2" />
   15         <dataNode name="jdbc_dn3"       dataHost="jdbchost" database="db3" /> -->
   16         <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" 17                           writeType="0" dbType="mysql" dbDriver="native" switchTyp    e="1"  slaveThreshold="100">
   18                 <heartbeat>select user()</heartbeat>
   19                 <!-- can have multi write hosts -->
   20                 <writeHost host="hostM1" url="192.168.2.57:3306" user="haha"
   21                                    password="haha">
   22                         <!-- can have multi read hosts --> 23                         <readHost host="hostS2" url="192.168.2.58:3306" user="haha    " password="haha" /> 24                         <readHost host="hostS3" url="192.168.2.59:3306" user="haha    " password="haha" />
   25                 </writeHost>
   26 <!--
   27                 <writeHost host="hostS1" url="localhost:3316" user="root"
   28                                    password="123456" />
   29 -->          30                 <!-- <writeHost host="hostM2" url="localhost:3316" user="root" pas    sword="123456"/> -->
   31         </dataHost>

4.启动服务

[root@mycat ~]# /usr/local/mycat/bin/mycat start
Starting Mycat-server...
[root@mycat ~]# netstat -lntup | grep 8066
tcp6 0 0 :::8066 :::* LISTEN 1916/j
5.测试mycat是否读写分离三台mysql服务器

三.部署Java17环境

部署两台Java,两台操作一样:

 [root@java01 ~]# ls
  anaconda-ks.cfg  jdk-17_linux-x64_bin.tar.gz 
  [root@java01 ~]# tar -xf jdk-17_linux-x64_bin.tar.gz 
  [root@java01 ~]# ls
  anaconda-ks.cfg  jdk-17.0.12  jdk-17_linux-x64_bin.tar.gz 
  [root@java01 ~]# cp -r jdk-17.0.12/ /usr/local/jdk
  [root@java01 ~]# vim /etc/profile
  export JAVA_HOME=/usr/local/jdk
  export PATH=$PATH:$JAVA_HOME/bin
  [root@java01 ~]# source /etc/profile
  ​
  [root@java01 ~]# javac --version
  javac 17.0.12
  ​
  [root@java01 ~]# firewall-cmd --add-port=8080/tcp --permanent
  success
  [root@java01 ~]# firewall-cmd --reload
  success
  ​
  [root@java01 ~]# ls
  anaconda-ks.cfg  application_(1).yml  eleme_server-0.0.1-SNAPSHOT.jar  jdk-17.0.12  jdk-17_linux-x64_bin.tar.gz
  ​
  [root@java01 ~]# mv application_\(1\).yml application.yml 
  [root@java01 ~]# ls
  anaconda-ks.cfg  application.yml  eleme_server-0.0.1-SNAPSHOT.jar  jdk-17.0.12  jdk-17_linux-x64_bin.tar.gz
  ​
  ​
  [root@java01 ~]# vim application.yml 
  ​
  server:
    port: 8080
  spring:
    datasource:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://192.168.2.19:8066/eleme
      username: haha
      password: haha
  ​
  [root@java01 ~]# java -jar eleme_server-0.0.1-SNAPSHOT.jar 
  

浏览器访问:Java的ip:8080,出现登录页面

四.部署LVS-DR模式

lvs负载均衡两台后端服务器Java

lvs:

  [root@lvs ~]# ifconfig ens33:0 192.168.2.150 broadcast 192.168.2.121 netmask 255.255.255.255 up
  [root@lvs ~]# route add -host 192.168.2.150 dev ens33:0
  [root@lvs ~]# yum -y install ipvsadm
  [root@lvs ~]# ipvsadm -C
  [root@lvs ~]# ipvsadm -A -t 192.168.2.150:8080 -s rr
  [root@lvs ~]# ipvsadm -a -t 192.168.2.150:8080 -r 192.168.2.11 -g
  [root@lvs ~]# ipvsadm -a -t 192.168.2.150:8080 -r 192.168.2.12 -g
  [root@lvs ~]# systemctl stop firewalld
  [root@lvs ~]# systemctl disable firewalld
  Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
  Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  [root@lvs ~]# setenforce 0
  [root@lvs ~]# systemctl stop firewalld
  [root@lvs ~]# ipvsadm -Ln
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  TCP  192.168.2.150:8080 rr
    -> 192.168.2.11:8080            Route   1      0          1         
    -> 192.168.2.12:8080            Route   1      0          1         

两台java:

  [root@java01 ~]# ifconfig lo:0 192.168.2.150 broadcast 192.168.2.150 netmask 255.255.255.255 up
  [root@java01 ~]# route add -host 192.168.2.150 dev lo:0
  [root@java01 ~]# vim arp.sh
  [root@java01 ~]# source arp.sh

访问:访问lvs的vip地址:8080,出现登录页

五.nginx代理端口

在lvs上下载nginx,代理8080端口

/etc/nginx/nginx.conf

server localhost:8080

server  java服务器ip:8080

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建自己的金融数据源和量化分析平台(七):定时更新上市公司所属行业门类及大类

0x00 前言 由于此前从深交所下载的股票信息中只有行业门类信息&#xff0c;没有行业大类信息&#xff0c;导致后续解析三大报表和量化选股的时候无法进行&#xff1a; 可以看到深交所的股票是没有大类信息的。 再看看上交所的保险股&#xff1a; 因此需要将深交所股票的所属…

关于 IoTDB 的疑问,我们这次有奖征集!

新的社区活动来啦&#xff01; 你是否对 IoTDB 的技术/操作还有疑问&#xff0c;并需要得到原厂研发团队的解答&#xff1f; 你是否希望在踊跃提出疑问的同时&#xff0c;收获一份精美小礼物&#xff1f; 为回馈新老朋友对 Apache IoTDB 开源社区的活跃贡献&#xff0c;最新社区…

数据结构day01(数据结构、算法基础知识)

目录 【1】数据结构基础知识 1》什么是数据结构 2》数据 3》逻辑结构 1>线性关系 2>层次关系 3>网状关系 4》存储结构 1>顺序存储 2>链式存储 3>索引存储结构 4>散列存储 5》操作 【2】算法基础知识 1> 什么是算法 2> 算法设计 3> 算…

8金收官!仿真工程师为你揭秘中国跳水梦之队的“水花消失术”

巴黎奥运会上&#xff0c;中国跳水梦之队再一次上演“水花消失术”&#xff0c;不仅赢得了裁判的高分&#xff0c;也令全球观众惊叹不已。 发挥出色的运动员入水如同“牛奶入水”&#xff0c;顺滑得仿佛不带一丝涟漪&#xff1b;而发挥失误的运动员仿佛“炸鱼队”来袭&#xf…

.Net Linux平台下System.Drawing.Imaging替代方案

文章目录 前言一、ImageSharp库二、SkiaSharp库三、System.Drawing.Common库总结 前言 在.NET Standard中&#xff0c;System.Drawing.Imaging 命名空间并不直接支持&#xff0c;因为 System.Drawing 命名空间主要是为了Windows Forms&#xff08;WinForms&#xff09;和GDI设计…

FPGA第 5 篇,FPGA技术优略势,FPGA学习方向,FPGA学习路线,FPGA专业知识的学习方向(FPGA现场可编程门阵列学习路线和方向)

前言 前几篇讲了一下FPGA的发展和应用&#xff0c;以及未来前景。具体详细&#xff0c;请看 FPGA发展和应用&#xff0c;以及未来前景https://blog.csdn.net/weixin_65793170/category_12665249.html 这里我们来&#xff0c;记录一下&#xff0c;FPGA专业知识的学习路线 一.…

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] P1-P2

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] 永恒之眼&#xff08;蓝龙&#xff09; 第一阶段 第二阶段 第三阶段 载具1-6技能介绍 World of Warcraft [CLASSIC] the Eye of Eternity [EOE]_永恒之眼 eoe-CSDN博客 永恒之眼怎么出副本呢&#xff0c;战斗结束&am…

泛微E9如何更新缓存

泛微E9如何更新缓存 在E9中&#xff0c;是默认开启了数据缓存的&#xff0c;如果直接操作数据库是会存在缓存不更新的问题&#xff0c;E9系统提供以下几种方式进行缓存清空的方式。 注&#xff1a;原则上禁止通过非程序渠道直接修改OA数据库数据&#xff0c;可以直接在页面进行…

LCR 162. 数字 1 的个数 题解

189轮转数组 189. 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 时间复杂度o&#xff08;n&#xff09;&#xff0c;空间复杂度 o&#xff08;1&#xff09; class Solution {public void rotate(int[] nums, i…

Python 如何使用 functools 模块

functools 模块是 Python 标准库中的一个重要模块&#xff0c;它提供了一些有用的高阶函数和工具&#xff0c;帮助开发者更轻松地操作和处理函数。functools 中的工具主要用于函数的缓存、包装、偏函数等功能。 1. functools 模块概述 functools 模块的设计目的是为了简化和增…

无人机+消防车:高楼灭火系统技术详解

“无人机消防车”高楼灭火系统技术是一种创新的消防解决方案&#xff0c;旨在解决高层建筑灭火难题。以下是对该技术的详细解析&#xff1a; 一、技术背景与需求 高层建筑数量多&#xff0c;火灾隐患多发。根据国家消防救援局发布的数据&#xff0c;高层建筑火灾频发&#xf…

MyBatis核心机制

实现MyBatis核心机制环境搭建 1.核心框架示意图 2.模块搭建 1.创建maven项目 2.引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSc…

超维机器人在工业与能源领域的具身智能探索和应用

具身智能&#xff08;Embodied AI&#xff09;是指机器人能够通过其物理形态与环境的交互&#xff0c;进行感知、学习、决策和执行&#xff0c;从而完成复杂任务的能力。具身智能强调机器人不仅要具备感知环境和分析数据的能力&#xff0c;还要能够通过身体的行为和物理互动来适…

zabbix5.0与7.0版本区别 切换建议

Zabbix5.0和Zabbix7.0的区别 1. 性能和扩展性优化 1.1 高效的数据处理和存储 优化的数据库性能&#xff1a; Zabbix 7.0 在数据库层面进行了多项优化&#xff0c;以减少查询延迟和提高数据处理速度。这包括对数据库结构的改进和索引优化&#xff0c;使得大规模数据的读取和写…

Linux云计算 |【第二阶段】SECURITY-DAY3

主要内容&#xff1a; Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化 补充&#xff1a;Zabbix监控软件不自带LNMP和DB数据库&#xff0c;需要自行手动安装配置&#xff1b;Prometheus监控软件自带WEB页面和DB数据库&#xff1b;Prometheus数据库为时序数据库&…

<数据集>翻越栏杆行为识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;512张 标注数量(xml文件个数)&#xff1a;512 标注数量(txt文件个数)&#xff1a;512 标注类别数&#xff1a;1 标注类别名称&#xff1a;[climbing] 使用标注工具&#xff1a;labelImg 标注规则&#xff1a;对类…

十五分钟两百行代码,手写一个vue项目全局通用的弹框

前言&#xff1a; 我们在写vue项目时&#xff0c;弹框是非常常用的组件&#xff0c;并且在同一个项目中&#xff0c;弹框大多类似。所以我们可以抽离封装出一个通用的弹框&#xff1b; 因为vue3可向下兼容&#xff0c;所以作者这边会使用vue2的写法&#xff0c;vue3写法大同小…

vue3 语法糖<script setup>

在 Vue 3 中&#xff0c;<script setup>是一种新的语法糖&#xff0c;它极大地简化了组件的编写方式。 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。 基本概念 简洁的语法&#xf…

使用Qg波形快速提取模型参数的新方法以准确捕获SiC MOSFET在不同负载条件下的开关特性

来源&#xff1a;Novel Methodology for Fast Model Parameter Extracting Using Qg Waveforms to Accurately Capture Switching Characteristics of SiC MOSFET Under Various Load Conditions&#xff08;ISPSD 24年&#xff09; 摘要 本文提出了一种快速提取模型参数的方…

类和对象(高级)

类和对象&#xff08;高级&#xff09; 一、运算符重载 运算符重载是对已有的运算符 指定新功能。不能创建新运算。 运算符重载关键字operator 思路&#xff1a; 1、弄懂运算符的运算对象的个数。&#xff08;个数决定了 重载函数的参数个数&#xff09; 2、识别运算符左边的…