微服务学习(黑马)

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

导学


微服务架构


认识微服务


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.hqwc.cn/news/610929.html

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

相关文章

ELK-Kibana 部署

目录 一、在 node1 节点上操作 1.1.安装 Kibana 1.2.设置 Kibana 的主配置文件 1.3.启动 Kibana 服务 1.4.验证 Kibana 1.5.将 Apache 服务器的日志&#xff08;访问的、错误的&#xff09;添加到 ES 并通过 Kibana 显示 1.6. 浏览器访问 二、部署FilebeatELK&…

使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…

学习JavaEE的日子 Day33 File类,IO流

Day33 1.File类 File是文件和目录路径名的抽象表示 File类的对象可以表示文件&#xff1a;C:\Users\Desktop\hhy.txt File类的对象可以表示目录路径名&#xff1a;C:\Users\Desktop File只关注文件本身的信息&#xff08;文件名、是否可读、是否可写…&#xff09;&#xff0c…

【前缀积】Leetcode 除自身以外数组的乘积

题目解析 238. 除自身以外数组的乘积 算法讲解 我们可以使用两个空间保存当前位置的左边积和右边积&#xff0c;需要注意的地方初始的dp表需要初始化为1&#xff0c;如果是0则无法得到结果&#xff0c;因为此处是乘法 class Solution { public:vector<int> productEx…

LLM 推理优化探微 (4) :模型性能瓶颈分类及优化策略

编者按&#xff1a; 在人工智能浪潮袭卷全球的大背景下&#xff0c;进一步提升人工智能模型性能&#xff0c;满足更多应用需求已经刻不容缓。如何优化模型延迟和吞吐量&#xff0c;成为了业界亟待解决的重要问题。 我们今天为大家带来的这篇文章&#xff0c;其观点为&#xff1…

【考研数学】零基础全年保底计划+资料分享

数二90现在真的不提啊够用了&#xff01;零基础或者基础差的&#xff0c;听我的&#xff0c;大胆一点&#xff0c;咱们定120的目标&#xff01; 不要因为自己基础不好什么的没自信...现在意识到问题是来得及解决的 本人属于基础很差相当于是零基础的23考研党&#xff0c;经过…

-bash: wget: command not found

1、-bash: wget: command not found 如下图 2、解决办法 yum -y install wget

牛客NC413 两个升序数组的中位数【hard 数组,模拟 Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/b3b59248e61f499482eaba636305474b 思路 直接模拟2个数组有顺序放到一个数组中help中如果help长度为奇数&#xff0c;返回中间的数如果help长度为偶数&#xff0c;返回中间2个数的和除以2参考答案java import j…

Web程序设计-实验01 HTML与CSS基础

【实验主题】 影视详情页设计 【实验任务】 1、浏览并分析多个影视详情页面&#xff08;详见参考资源&#xff0c;建议自行搜索更多影视网站&#xff09;的主要元素构成和版面设计&#xff0c;借鉴并构思预期效果。 2、新建 index.html文件&#xff0c;合理运用HTML标记编写…

opc ua 环境构建(记录一)

1、准备 Siemens Simatic WinCC v7.5 二、配置 SIMATIC NET与S7-200 SMART 集成以太网口OPC 通信(TIA平台) 硬件: ①S7-200 SMART ②PC 机 ( 集成以太网卡) 软件: ① STEP 7-Micro/WIN SMART V2.1 ② STEP 7 Professional(TIA Portal V13 SP1 Upd 9) ③ SIMATIC NET …

TG-12F使用SDK对接阿里生活物联网平台

文章目录 前言一、注意二、准备1. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;程序运行时库。按顺序逐条执行命令&#xff1a;2. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;依赖软件包。按照顺序逐条执行命令&#xff1a;3. 安装Python依赖包。按照顺序逐条执行命…

关于部署ELK和EFLKD的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana&#xff08;展示数据可视化界面&#xff09;1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…