微服务学习(黑马)

学习黑马的微服务课程的笔记

导学


微服务架构


认识微服务


SpringCloud

spring.io/projects/spring-cloud/


服务拆分和远程调用


根据订单id查询订单功能


存在的问题

硬编码


eureka注册中心

搭建eureka


服务注册


在order-service中完成服务拉取


Ribbon负载均衡


Nacos注册中心

前往GitHub下载1.4.1版本,下载后解压,在conf中可以修改占用端口(默认8848)

在bin目录下打开终端执行:./startup.cmd -m standalone

                                        -m:模式        standalone:单机启动

默认账号密码都是nacos


服务注册到nacos


Nacos服务分级存储

将orderservice配置集群为GX(8080),将userservice配置集群为GX(8081)和GD(8088)。

这样order(GX)所有的请求会优先到user(GX),如果user(GX)宕机了,才会访问user(GD)。

nacos会将请求优先发送给同集群,集群中默认随机分配。


服务实例的权重设置

权重越大接收请求越多。

权重为0时,服务不会接收请求,当我们需要进行版本更新或者维护时,可以使用该方法。


环境隔离

新建命名空间

上面操作不写id会自动生成一个

修改orderservice:

此时重新启动orderservice:

现在访问order/101

idea控制台显示:没有userservice实例


eureka和nacos的区别


Nacos配置管理

统一配置管理

 

配置文件命名:服务名称-服务环境.文件类型


项目获取Nacos中的配置文件:项目启动时到nacos中获取配置文件,再和项目中的配置文件组合,因此我们要把nacos地址放到bootstrap.yml中(bootstrap.yml是springboot提供的,它的优先级很高)。

上面文件后缀名要和自己设置的一样,如我应该改为yml。


配置自动刷新


多环境配置共享


Nacos集群搭建

跟着黑马给的文档搞就行了


Feign

使用feign


feign自定义配置


Feign性能优化


Feign最佳实践

方式二中注意:


统一网关Gateway

搭建网关

网关是一个独立的服务


路由断言工厂

 


路由过滤器GatewayFilter


全局过滤器GlobalFilter


过滤器的执行顺序


跨域问题处理

 


Docker


初识Docker


安装docker

Centos7(最低要求)

为防止之前可能下载过低版本docker,先卸载docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装docker

配置yum工具

yum install -y yum-utils \
            device-mapper-persistent-data \
            lvm2 --skip-broken

更新yum本地镜像源(默认到国外获取镜像,速度慢)

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

安装(ce为社区免费版)

yum install -y docker-ce

关闭防火墙

# 关闭
systemctl stop firewalld
#禁止开机启动防火墙
systemctl disable firewalld
#查看防火墙状态
systemctl status firewalld

启动docker

systemctl start docker

查看是否启动成功

方法1:systemctl status docker

方法2:docker -v

配置docker镜像,docker官方镜像仓库网速较慢,需要设置为国内镜像

# 使用腾讯云云服务器演示
vim /etc/docker/daemon.json
# 添加
{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}
# 保存退出后重新加载daemon文件重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

docker镜像相关命令


docker容器相关命令


创建运行容器


进入容器内部修改内容

sed -i 's#Welcome to nginx#传智教育欢迎你#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html


数据卷

 

创建数据卷

挂载数据卷


除了数据卷挂载还可以直接宿主机目录和宿主机文件挂载


Dockerfile自定义镜像

镜像结构


构建镜像

命令最后的点表示dockerfile在当前目录下。

上面的dockerfile有很多可以减少的地方,上面我们基于ubuntu开始构建,需要自己配置jdk,但我们可以基于java:8-alpine


DockerCompose

安装DockerCompose

curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

DockerCompose部署微服务

 


RabbitMQ


MQ介绍

RabbitMQ安装和入门

在Centos7中使用Docker安装

docker run \
 -e RABBITMQ_DEFAULT_USER=itcast \
 -e RABBITMQ_DEFAULT_PASS=123321 \
 --name mq \
 --hostname mq1 \
 -p 15672:15672 \ #rabbitmq的管理平台的端口
 -p 5672:5672 \ #之后做消息通信的端口,发消息收消息要通过该端口
 -d \
 rabbitmq:3-management


RabbitMQ常见消息类型

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mars3d.MaterialType.Image2修改配置面状:图片2的speed数值实现动画效果说明

摘要&#xff1a; mars3d.MaterialType.Image2修改配置面状&#xff1a;图片2的speed数值实现动画效果说明 前提&#xff1a; 1.在示例中&#xff0c;尝试给mars3d.MaterialType.Image2材质的图片加上speed参数&#xff0c;实现动画效果&#xff0c;但是没有看到流动效果说明…

AI工具导航网站比较分析

介绍 本篇博客将从FutureTools和GPT-3 Demo两个AI工具导航网站出发&#xff0c;进行全面比较分析&#xff0c;为读者提供深入了解和选择适合需求的信息。同时针对需求提供标题和内容。 标题 "AI工具导航网站&#xff1a;FutureTools与GPT-3 Demo的全面比较分析" 内容…

背 单 词 (考研词汇闪过)

单词&#xff1a; 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排&#xff08;5min&#xff09;重复一遍&#xff08;2mi…

MySQL数据库的详解(1)

DDL&#xff08;数据库操作&#xff09; 查询 查询所有数据库&#xff1a;show databases;当前数据库&#xff1a;select database(); 创建 创建数据库&#xff1a;create database [ if not exists] 数据库名 ; 使用 使用数据库&#xff1a;use 数据库名 ; 删除 删除数…

Nginx 基础应用实战 06 构建一个PHP的站点

Nginx 基础应用实战 06 构建一个PHP的站点 使用套件 lmnp https://oneinstack.com 安装完成后 搭建bbs https://www.discuz.net/ 搭建博客 https://wordpress.com https://cn.wordpress.org/ CMS系统 http://www.dedecms.com/ 构建Lua站点 Openresty Nginx Lua …

【强化学习实践】Gym+倒立单摆+创建自己的环境

一、Gym Gym是OpenAI开发的一个强化学习算法测试环境集合包。Gym提供了多种标准的环境&#xff0c;包括经典的游戏&#xff08;如Atari游戏&#xff09;、机器人模拟任务以及其他各种类型的问题&#xff0c;供开发者测试和训练强化学习智能体。在Gym环境中&#xff0c;开发者可…

2024最新AI系统【SparkAI】,ChatGPT商业运营版系统源码/ai问答/ai绘画/GPTs,SunoAI音乐生成大模型/带分销AIGC搭建部署教程

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的ai智能问答系统和Midjourney-AI绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已…

利用Python实现可视化交互界面:Dash

Dash是一个低代码数据框架&#xff0c;用Python实现可视化交互界面&#xff0c;不用写Javascript&#xff0c;开源&#xff0c;支持回调、HTML组件等功能。 安装 pip install dash使用 # Import packages from dash import Dash, html, dash_table, dcc, callback, Output, …

MySQL压力测试最佳实践(16/16)

MySQL压力测试 基本概述 sysbench是一个模块化的、跨平台、多线程基准测试工具&#xff0c;主要用于评估测试各种不同系统参数下的数据库负载情况。项目地址&#xff1a;http://github.com/akopytov/sysbench 工具安装 1.1 在线安装&#xff08;CentOS&#xff09;&#xf…

Leetcode110_平衡二叉树

1.leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;…

OJ刷题日记:1、双指针(1)

目录 1、283.移动零 2、1089.复写零 3、202.快乐数 1、283.移动零 题目&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 …

牛客小白月赛90(A,B,C,D,E,F)

比赛链接 官方题解&#xff08;视频&#xff09; 这场偏思维&#xff0c;感觉好像没啥算法。E需要动态维护前 k k k 小&#xff0c;F是个离散化加dp&#xff0c;状态和递推方程比较 非常规&#xff0c;建议还是看一下涨涨姿势。 A 小A的文化节 思路&#xff1a; 签到 cod…

我国量子信息科技创新发展面临的挑战及建议——基于中美对比视角的分析

2024年2月&#xff0c;中国科学技术发展战略院慕慧娟博士、丁明磊研究员及光子盒顾成建一起在《科技管理研究》上发表文章——《我国量子信息科技创新发展面临的挑战及建议&#xff1a;基于中美对比视角的分析》。 在此&#xff0c;我们整理并发布这篇文章&#xff0c;欢迎感兴…

springCloudAlibaba集成sentinel实战(超详细)

一、Sentinel介绍 1. 什么是Sentinel Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 分布式系统的流量防卫兵&#xff1a; 随着微服务的普及&#xff0c;服务调用的稳定性变得越来越重要。Sentinel以“流…

实现创建线程的五种写法

创建线程的五种写法 1、通过继承Thread类并实现run方法创建一个线程package 创建线程;2、通过实现Runnable接口&#xff0c;并实现run方法的方法创建一个线程3、通过Thread匿名内部类创建一个线程4、通过Runnable匿名内部类创建一个线程5、通过Lambda表达式的方式创建一个线程 …

airtest-ios真机搭建实践

首先阅读4 ios connection - Airtest Project Docs 在Windows环境下搭建Airtest对iOS真机进行自动化测试的过程相对复杂&#xff0c;因为iOS的自动化测试通常需要依赖Mac OS系统&#xff0c;但理论上借助一些工具和服务&#xff0c;Windows用户也可以间接完成部分工作。下面是…

IP SSL证书免费申请教程(给IP地址开启https)

首先IP地址申请的前提&#xff1a;80端口有打开&#xff0c;或者可以短暂的打开10分钟左右等验证完IP管理权再关掉。 一&#xff1a;打开JoySSL官网选择IP地址证书并下单加入购物车&#xff0c;之后结账后就会跳转到证书申请界面。 二&#xff1a;填写需要申请证书的IP信息 三&…

【RV1106的ISP使用记录之一】基础环境搭建

公司缺少ISP工程师&#xff0c;做为图像算法工程师的我这就不就给顶上来了么&#xff0c;也没给发两份工资&#xff0c;唉~ 先写个标题&#xff0c;占一个新坑&#xff0c;记录RK平台的传统ISP工作。 一、基础环境的硬件包括三部分&#xff1a; 1、相机环境&#xff0c;用于采…

Python 网络爬虫技巧分享:优化 Selenium 滚动加载网易新闻策略

简介 网络爬虫在数据采集和信息获取方面发挥着重要作用&#xff0c;而滚动加载则是许多网站常用的页面加载方式之一。针对网易新闻这样采用滚动加载的网站&#xff0c;如何优化爬虫策略以提高效率和准确性是一个关键问题。本文将分享如何利用 Python 中的 Selenium 库优化滚动…

利用爬虫技术实现自动化数据分析

目录 前言 一、爬虫技术概述 二、自动化数据分析的步骤 1. 确定数据需求 2. 网页分析和定位 3. 编写爬虫程序 4. 数据存储和处理 5. 数据分析和可视化 三、示例代码 总结 前言 在信息时代&#xff0c;数据已成为重要的资源之一&#xff0c;并且随着互联网的发展&…