微服务学习(黑马)

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

导学


微服务架构


认识微服务


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.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repoyum 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-composeecho "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常见消息类型

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:【Keras机器学习实践要点】(二十五)—— 使用 EANet(外部注意力转换器)进行图像分类

目录 简介 设置 准备数据 配置超参数 使用数据增强 实施补丁提取和编码层 实施外部关注模块 实施 MLP 模块 执行变压器模块 实施 EANet 模式 培训 CIFAR-100 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机…

Flutter - flutter_gen 资源管理

引言&#xff1a; 在开发 Flutter 应用时&#xff0c;我们经常需要使用各种静态资源&#xff0c;如图片、字体和音频等。如何有效地管理和加载这些资源呢&#xff1f;本篇博客将以图片为例带你解密 Flutter 项目中是如何管理资源地。 assets 加载资源 具体文件名引入 在工程…

Leetcode 239. 滑动窗口最大值和Leetcode 347. 前 K 个高频元素

目录标题 Leetcode 239. 滑动窗口最大值题目描述C语言代码和题解解题思路 Leetcode 347. 前 K 个高频元素题目描述C语言题解和思路解题思路 Leetcode 239. 滑动窗口最大值 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最…

[Kubernetes[K8S]集群:Slaver从节点初始化和Join]:添加到主节点集群内

文章目录 操作流程&#xff1a;上篇主节初始化地址&#xff1a;前置&#xff1a;Docker和K8S安装版本匹配查看0.1&#xff1a;安装指定docker版本 **[1 — 8] ** [ 这些步骤主从节点前置操作一样的 ]一&#xff1a;主节点操作 查看主机域名->编辑域名->域名配置二&#x…

STM32学习和实践笔记(9): 使用位带操作实现LED闪的实验

控制GPIO的那些寄存器&#xff0c;都在位带区。 根据上一篇讲的原理&#xff0c;要想每次只操作这些寄存的某一个bit而不影响别的bit&#xff0c;可以使用与这些bit相对应的位带别名区。 因此&#xff0c;在使用GPIO的位带操作之前&#xff0c;先要按上篇讲的原理&#xff0c…

通过前缀和来看golang的acm输入输出

前缀和 问题引入 package mainimport ("fmt" )func main() {var n, q, l, r intfmt.Scan(&n, &q)a : make([]int, n)ap : make([]int64, n 1)ap[0] 0for i : 0; i < n; i {fmt.Scan(&a[i])ap[i 1] ap[i] int64(a[i])}for j : 0; j < q; j {f…

远程桌面无法连接怎么办?

远程桌面无法连接是指在尝试使用远程桌面功能时出现连接失败的情况。这种问题可能会给工作和生活带来极大的不便&#xff0c;因此我们需要寻找解决办法。在讨论解决方案之前&#xff0c;我们先来了解一下【天联】组网的优势。 【天联】组网的优势有很多。它能够解决复杂网络环境…

[大模型]Qwen1.5-7B-Chat-GPTQ-Int4 部署环境

Qwen1.5-7B-Chat-GPTQ-Int4 部署环境 说明 Qwen1.5-72b 版本有BF16、INT8、INT4三个版本&#xff0c;三个版本性能接近。由于BF16版本需要144GB的显存&#xff0c;让普通用户忘却止步&#xff0c;而INT4版本只需要48GB即可推理&#xff0c;给普通用户本地化部署创造了机会。&…

MySQL数据库的详解(1)

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

Deblurring 3D Gaussian Splatting去模糊3D高斯溅射

Abstract 摘要 Recent studies in Radiance Fields have paved the robust way for novel view synthesis with their photorealistic rendering quality. Nevertheless, they usually employ neural networks and volumetric rendering, which are costly to train and impede…

如何将普通maven项目转为maven-web项目

文件-项目结构&#xff08;File-->Project Structure &#xff09; 模块-->learn&#xff08;moudle-->learn&#xff09; 选中需要添加web的moudle&#xff0c;点击加号&#xff0c;我得是learn&#xff0c;单击选中后进行下如图操作&#xff1a; 编辑路径 结果如下…

微信小程序自定义关闭按钮在弹窗下面的效果

效果图: 我之前用vant 的popup的弹窗写&#xff0c;会出现close图标移动到弹窗内容外部不可见。 自定义代码&#xff1a; popup.JS/*** 生命周期函数--监听页面初次渲染完成*/onReady() {//自定义弹窗 动态获取屏幕高度var that this;wx.getSystemInfo({success: (result) &…

4.2.k8s的pod-标签管理、镜像拉取策略、容器重启策略、资源限制、优雅终止

一、标签管理 1.标签在k8s中极其重要&#xff0c;大多数资源的相互关联就需要使用标签&#xff1b;也就是说&#xff0c;资源的相互关联大多数时候&#xff0c;是使用标签进行关联的&#xff1b; 2.其他作用&#xff0c;在k8s集群中&#xff0c;node节点的一些操作比如污点及污…

前端docker jenkins nginx CI/CD持续集成持续部署-实战

最近用go react ts开发了一个todolist后端基本开发完了,前端采用CI/CD方式去部署。 步骤总结 先安装docker 和 docker-compose。安装jenkins镜像,跑容器的时候要配好数据卷。配置gitee或github(我这里使用gitee)在服务器上一定要创建好dokcer的数据卷,以便持久保存jenkin…

Google 推出 Gemini 1.5 Pro能处理音频;iOS 18或带来Safari 浏览助手;Llama 3 开源模型下个月推出

Google 推出 Gemini 1.5 Pro 公共预览版&#xff0c;能处理音频 Google 宣布将通过其 AI 应用平台 Vertex AI 向公众提供 Gemini 1.5 Pro&#xff0c;并且还赋予其「听力」&#xff0c;帮助用户处理音频内容。 用户可以上传会议录音、电视节目等音频内容&#xff0c;无需书面记…

好用的Python开发工具合集

​ Python是一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛&#xff0c;越来越多的Python开发工具也涌现出来。但是&#xff0c;对于新手来说&#xff0c;选择一款合适的Python开发工具可…

R语言绘制一次和二次相关性热图

在数据探索的过程中&#xff0c;我们往往会对数据与数据的相关性进行分析&#xff0c;例如我们常用的corrplot包&#xff0c;或者psych包中的corr.test函数&#xff0c;对两两变量间的相关性进行分析。我们常常会看到这样的相关性热图&#xff1a; 但有时变量间的关系并非线性…

如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?

文章目录 1. **查看容器资源使用情况**&#xff1a;2. **进入容器内部**&#xff1a;3. **检查进程内存使用**&#xff1a;4. **MySQL服务器状态检查**&#xff1a;5. **MySQL日志分析**&#xff1a;6. **使用专门的MySQL监控工具**&#xff1a;7. **配置文件检查**&#xff1a…

多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型

概述 提出了一种大型模型 LLaVA&#xff0c;它使用 GPT-4 生成多模态语言图像指令跟随数据&#xff0c;并利用该数据将视觉和语言理解融为一体。初步实验表明&#xff0c;LLaVA 展示了出色的多模态聊天能力&#xff0c;在合成多模态指令上的表现优于 GPT-4。 在科学质量保证中…

Ubuntu 安装Java、Git、maven、Jenkins等持续集成环境

Ubuntu 持续集成 安装OpenJdk 查看所有可安装的 JDK 版本 apt list OpenJDK\*使用 apt 安装 JDK&#xff08;以 11为例&#xff09;,最好是用11&#xff0c;java8对应的jenkins会有兼容问题。 sudo apt install openjdk-11-jdk openjdk-11-jre安装成功后&#xff0c;可以使用以…