广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 模拟Spring Cloud
  • 645
分享到

python 模拟Spring Cloud

pythonSpringCloud 2023-01-31 08:01:59 645人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

spring cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用spring Boot的开发风格做到一键

spring cloud是一系列框架的有序集合。它利用Spring Boot开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

内部运行原理

Spring Cloud作为云应用集中了很多组件包括:路由代理(Zuul)、注册与发现(Eureka and Client)、断路器(Hystrix)、消费服务者(Ribbon  and Feign)等,每个组件在架构都为实现不同的处理功能。看如下结构图:

1.png

1、外部或者内部的非spring cloud项目都先通网关zuul然后从eureka server中获取可用列表服务。

2、从eureka server注册中心返回可用实例。

3、通过ribbon负载均衡分配可用节点。

4、ribbon选择可用的节点分配到后端具体的实例

5、hystrix断路器查看当前实例是否可用,dashboard监控实例状态信息,Turbine监控服务间的调用和熔断相关指标。

6、后端服务与服务之间都是通过feign通信,处理请求业务后返回到Eureka中心返回结果。

简介

Spring Cloud功能比较多,这里使用6个Django项目,来模拟java spring cloud架构,采用单入口模式调用api

不涉及ribbon,hystrix,feign等功能,仅仅做演示而已,不是真正意义上的spring cloud。

 

项目说明

1.png

 

 

环境说明

操作系统配置ip软件
Centos 7.62核4g192.168.31.229pyton3.5.2,Nginx1.16.1,Docker 19.03.5

 

 

 

Mysql

由于本项目中,数据存储采用的是mysql,为了快速演示,直接使用docker启动mysql

docker run -d --restart=always --name example -e MYSQL_ROOT_PASSWord=abcd@1234  -p 3306:3306 -v /data/mysql_3306/data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

 

初始化数据

# docker exec -it example /bin/bash
# mysql -u root -pabcd@1234
mysql> CREATE DATABASE usercenter DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> CREATE TABLE `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(16) DEFAULT NULL COMMENT '用户名',
  `password` varchar(32) DEFAULT NULL COMMENT '密码',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `last_time` datetime DEFAULT NULL COMMENT '最后一次登录时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
mysql> INSERT INTO `usercenter`.`users` (`id`, `username`, `password`, `create_time`, `last_time`) VALUES ('1', 'xiao', '81dc9bdb52d04dc20036dbd8313ed055', '2020-02-05 11:55:27', '2020-02-05 11:55:30');
mysql> exit;
# exit

 

url转发

1.png

 

 

项目下载地址:

https://GitHub.com/py3study/djanGo-spring-cloud

 

运行项目

 eureka

cd django-spring-cloud/1.0/eureka
pip3 install -r requirements.txt
python3 manage.py runserver 0.0.0.0:8001

 

config

cd django-spring-cloud/1.0/config
pip3 install -r requirements.txt
python3 manage.py runserver 0.0.0.0:8002

 

auth

cd django-spring-cloud/1.0/auth
pip3 install -r requirements.txt
Python3 manage.py runserver 0.0.0.0:8003

 

user

cd django-spring-cloud/1.0/user
pip3 install -r requirements.txt
python3 manage.py runserver 0.0.0.0:8004

 

gateway

cd django-spring-cloud/1.0/gateway
pip3 install -r requirements.txt
python3 manage.py runserver 0.0.0.0:8000

 

前端

cd django-spring-cloud/1.0/demo_login
pip3 install -r requirements.txt
python3 manage.py runserver 0.0.0.0:8080

 

配置nginx

将nginx_conf放入 /etc/nginx/conf.d目录,并启动nginx

yum install -y nginx
cp django-login-example/1.0/nginx_conf/* /etc/nginx/conf.d
# 启动nginx
nginx

 

配置域名解析

如果没有dns,请修改windows 10的hosts文件,添加2条记录

192.168.31.229 h5.baidu.com
192.168.31.229 api.baidu.com

 

访问页面

Http://h5.baidu.com

1.png

 

 

登录信息

用户名:xiao
密码:1234

 

登录成功之后,效果如下:

1.png

 

 点击auth

1.png

 

 

查看api-docs

http://api.baidu.com:8003/api-docs/

如果谷歌浏览器安装了 JSON FORMatter插件,效果就是下面的样子:

1.png

 

如果没有安装插件,就是一行展示

1.png

 

 

访问eureka注册中心

http://api.baidu.com:8001/

效果如下:

1.png

 

 确保状态都是UP,前端页面会每隔1秒,检测一次后端服务。不正常时,显示为DOWN

 

本文参考链接:

https://blog.csdn.net/qq_41701956/article/details/83829539
https://blog.csdn.net/looplook21/article/details/86615429


--结束END--

本文标题: python 模拟Spring Cloud

本文链接: https://www.lsjlt.com/news/193659.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 模拟Spring Cloud
    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键...
    99+
    2023-01-31
    python Spring Cloud
  • python 模拟Spring Cloud+k8s发布
    在上一篇文章,链接如下:https://www.cnblogs.com/xiao987334176/p/12260474.html在一台服务器上面,使用6个django项目,演示了一下Spring Cloud下面将详细介绍,如何使用k8s发...
    99+
    2023-01-31
    Spring python k8s
  • Spring Cloud OpenFeign模版化客户端实例分析
    这篇文章主要介绍“Spring Cloud OpenFeign模版化客户端实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Cloud Op...
    99+
    2023-07-02
  • Spring Cloud OpenFeign模版化客户端搭建过程
    目录OpenFeign是什么?OpenFeign能干啥?OpenFeign使用API服务模块搭建引入依赖创建接口外部调用项目代码OpenFeign相关特性Logger 日志使用使用O...
    99+
    2022-11-13
  • IDEA2022搭建Spring Cloud多模块项目的详细过程
    目录Springboot多模块项目搭建创建maven父工程创建子模块创建web模块添加模块依赖关系多模块启动配置文件管理Springboot多模块项目搭建 创建maven父工程 注意...
    99+
    2022-11-13
    Spring Cloud多模块项目 idea搭建Spring Cloud多模块项目
  • Python 模拟登陆
    import urllibimport urllib.requestimport gzipimport httpimport http.cookiejar#定义一个方法用于生成请求头信息,处理cookie  def getOpener(he...
    99+
    2023-01-31
    Python
  • Python 模拟Ajax/XMLHtt
    Ajax是目前流行的网页加载模式,可以不刷新网页页面实现数据更新。 但是对我们需要抓取网页内容来说,多了一层障碍,不过无敌的Python很容易抓取A...
    99+
    2023-01-31
    Python Ajax XMLHtt
  • Python模拟星空
    系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want...
    99+
    2023-09-02
    python 开发语言 星空
  • python-sendkeys 模拟键
    因为特殊需要, 想找一套能简单发送键盘消息,模拟键盘操作的模块。  类似于 C#.net  或 VB  的  sendKeys  函数。 找了很久没有合适的。 参考了一些网上的资料,使用windows API   SendInput 自已...
    99+
    2023-01-31
    python sendkeys
  • Spring的Ioc模拟实现详细介绍
    简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供;Spring里面就是IOC容器。例如:在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下pub...
    99+
    2023-05-30
    spring ioc sprin
  • python websocket模拟客户
    ##注意要安装 pip install websocket-clientfrom websocket import create_connection ws = create_connection("ws://127.0.0.1:9002...
    99+
    2023-01-31
    客户 python websocket
  • python模拟ssh登录
    首先更新pip 然后安装 pycrypto 、 paramiko;pycrypto是paramiko的内部依赖模块 pip3.7 install --upgrade pip pip3.7 install --upgrade pycrypto...
    99+
    2023-01-31
    python ssh
  • python模拟ATM系统
    一、环境及程序功能说明      python 2.7.12模拟与银行ATM功能,主要功能如下:       1,登录查询余额       2,转账功能       3,提现功能       4,流水查询       5,密码修改     ...
    99+
    2023-01-31
    系统 python ATM
  • 使用python模拟登录
    使用python模拟登录运行环境步骤浏览器阶段思路编码使用Java模拟登录 该方法是一个比较麻烦的方法,但是它不需要浏览器的配合,适合爬虫之类。 而另一种,使用webdriver的,使用比这个简单,可以用来做每日签到、打卡之类,使...
    99+
    2023-01-31
    python
  • python利用requests模拟ht
    一、通过requests发送请求之前一直使用urllib以及urllib2模拟http请求发送,在实际场景中,我们需要造自己定义好的header、body等等,使用urllib很麻烦,很偶然的机会,接触到了requests,可以通过发送xm...
    99+
    2023-01-31
    python requests ht
  • python 模拟HTTP服务端
    使用python模拟http服务端,自定义返回信息头部: #!/usr/bin/python import os from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer ...
    99+
    2023-01-31
    服务端 python HTTP
  • python模拟选课系统
    要求: 角色:学校、学员、课程、讲师 要求: 1. 创建北京、上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4....
    99+
    2023-01-31
    系统 python
  • 【测试】python 模拟snmp-se
    如下脚本,模拟windows和linux上的snmp-agent,返回数据给snmp请求者。直接上代码吧:# -*- coding: utf-8 -*- import binascii, struct import socket impor...
    99+
    2023-01-31
    测试 python se
  • python:使用greenlet模拟s
    greenlet好像是stackless的副产品,是python的一个扩展模块。它的使用与stackless不太一样。 根据自己对stackless的理解,编写了glstackless.py模块。这个模块只实现了主要的部分功能(taskle...
    99+
    2023-01-31
    python greenlet
  • 模拟退火算法(Python)
    一、模拟退火算法 1、模拟退火算法的定义 模拟退火算法是一种现代优化算法。基于蒙特卡洛迭代求解方法的随机寻优算法,模拟退火算法于1983 年成功地应用到组合优化领域。因固体物理退火过程与组合优化问题存在着相似性,模拟退火算法对固体物质的退火...
    99+
    2023-08-31
    模拟退火算法 算法 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作