SpringCloud Alibaba入门简介和Nacos服务注册和配置中心

前面已经把spring cloud相关的组件都一一学了个遍,现在有点小佩服自己…本来计划今天周末好好出去玩一圈,天气太热了,39了都,还是在办公室学习吧,进行下面的springCloud Alibaba 学习吧…不废话了赶快进入正体

1. SpringCloud Alibaba入门简介

1.1 why会出现SpringCloud alibaba?

Spring Cloud Netflix项目进入维护模式,spring blog上增加官宣
在这里插入图片描述
不争气啊,看到都是我们前面刚学的比较熟悉的啊,hystrix,ribbon,stream,zuul等都停更了,停更不停用,我们还可以用,学了也不要气馁,原来都是一样的,后面学习其他的微服务都简单了,后面的技术抄前面的思想,实现上更优

1.2 SpringCloud alibaba带来了什么?

是什么?
在这里插入图片描述
能干啥?
在这里插入图片描述
下载?
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

怎么玩?
Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架。

Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。

Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。

Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

在这里插入图片描述
https://spring.io/projects/spring-cloud-alibaba#overview
https://github.com/alibaba/spring-cloud-alibaba
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

2. Nacos简介

名字的由来:前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.1 nacos安装

其实安装比较简单也
可以直接参考这个官网:https://nacos.io/zh-cn/docs/quick-start.html
在这里插入图片描述
jdk 使用1.8以上,maven可以有可以没有,这里就是为了我们从github上面下载源码自己进行打包生成,我们如果直接下载安装包是不需要maven环境的

下载后直接解压就可以
我是用的centos7所以就使用的这个命令 windows就不用说了,做java开发的 都明白

tar -xvf nacos-server-$version.tar.gz
startup.sh -m standalone

安装完直接访问下面的
命令运行成功后直接访问http://localhost:8848/nacos
默认的账号密码都是:nacos

非常简单,就不说了…只是今天安装的时候,服务器网络不通废了一番功夫…最后还是在自己虚拟机上玩的…

2. Nacos服务注册

2.1 基于Nacos的服务提供者

在这里插入图片描述
直接上代码了:
父pom

  <!--spring cloud alibaba 2.1.0.RELEASE--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency>

pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>mscloud</artifactId><groupId>com.hrp.springcloudalbaba</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-provider-payment9001</artifactId><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency></dependencies>
</project>

yml

server:port: 9001spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: localhost:8848 #配置Nacos地址management:endpoints:web:exposure:include: '*'

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class PayMentApp9001 {public static void main(String[] args) {SpringApplication.run(PayMentApp9001.class,args);}
}

业务代码

@RestController
public class PayMentContrller {@Value("${server.port}")private String serverPort;@GetMapping(value = "/payment/nacos/{id}")public String getPayment(@PathVariable("id") Integer id){return "nacos registry, serverPort: "+ serverPort+"\t id"+id;}}

其他都是一样搞出来一个9002

测试观察效果:
在这里插入图片描述

2.2 基于Nacos的服务消费者

在这里插入图片描述
由于nacos直接集成了ribbon,所以就拥有了负载均衡功能

pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>mscloud</artifactId><groupId>com.hrp.springcloudalbaba</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-consumer-nacos-order80</artifactId><dependencies><!--SpringCloud ailibaba nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

yml

server:port: 80spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848service-url:nacos-user-service: http://nacos-payment-provider

主启动类:

package com.hrp;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** mscloud** @Title: com.hrp* @Date: 2020/6/6 14:16* @Author: wfg* @Description:* @Version:*/
@EnableDiscoveryClient
@SpringBootApplication
public class OrderClientApp {public static void main(String[] args) {SpringApplication.run(OrderClientApp.class);}
}

业务类:

package com.hrp.controller;import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;/*** mscloud** @Title: com.hrp.controller* @Date: 2020/6/6 14:19* @Author: wfg* @Description:* @Version:*/
@RestController
@Slf4j
public class OrderController {@Resourceprivate RestTemplate restTemplate;@Value("${service-url.nacos-user-service}")private String serverURL;@GetMapping(value = "/consumer/payment/nacos/{id}")public String paymentInfo(@PathVariable("id") Long id){return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);}}

配置类

package com.hrp.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/*** mscloud** @Title: com.hrp.config* @Date: 2020/6/6 14:20* @Author: wfg* @Description:* @Version:*/
@Configuration
public class ApplicationContextConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return  new RestTemplate();}
}

测试:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
实现了负载均衡

2.3 nacos作为服务注册总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nacos可以在ap和cp直接进行切换:

curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'

3 Nacos配置中心

3.1 Nacos作为配置中心-基础配置

新建model cloudalibaba-config-nacos-client3377

pom 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>mscloud</artifactId><groupId>com.hrp.springcloudalbaba</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloudalibaba-config-nacos-client3377</artifactId><dependencies><!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--nacos-discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--web + actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--一般基础配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies></project>

添加配置依赖

 <!--nacos-config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

yml文件

bootstrap yml文件

server:port: 3344spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #服务注册中心地址config:server-addr: localhost:8848 #配置中心地址file-extension: yaml #指定yaml格式的配置#${prefix}-${spring.profile.active}.${file-extension}#${spring.application.name}-${spring.profile.active}.${file-extension}

# p r e f i x − {prefix}- prefix{spring.profile.active}.KaTeX parse error: Expected 'EOF', got '#' at position 26: …nsion} #̲{spring.application.name}- s p r i n g . p r o f i l e . a c t i v e . {spring.profile.active}. spring.profile.active.{file-extension}
这个是重点一会再单独分析
application.yml文件

spring:profiles:active: dev

为何2个yml文件和spring cloud config 一样的道理

在这里插入图片描述
所以这个地方的
# p r e f i x − {prefix}- prefix{spring.profile.active}.KaTeX parse error: Expected 'EOF', got '#' at position 26: …nsion} #̲{spring.application.name}- s p r i n g . p r o f i l e . a c t i v e . {spring.profile.active}. spring.profile.active.{file-extension}
和nacos里面配置的dataId 配置失败后是不能正确启动这个model的

主启动类:

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigApp3344 {public static void main(String[] args) {SpringApplication.run(NacosConfigApp3344.class);}
}

业务代码
通过springCloud 原生注解@RefreshScope 实现配置的自动更新

@RestController
@RefreshScope
public class ConfigClientController
{@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo() {return configInfo;}
}

3.1.1 在Nacos中添加配置信息

在这里插入图片描述
如图添加一个文件,但是dataId 是如何命名的那
先看官网说法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置文件内容:
在这里插入图片描述

注意: config: 后面又一个空格,以及 info的缩进 这个地方一定注意不然启动的时候找不到
对应controller里面的@Value

在这里插入图片描述
在这里插入图片描述

3.2 Nacos作为配置中心-分类配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在bootstrap.yml文件修改:

在这里插入图片描述
这个地方namespace 和group 配置和 在nacos页面中配置的一样进行就可以

在这里插入图片描述
这些地方我就配置了一个dev 和test 这个地方不做过多的配置的,主要是理解了就可以

4 Nacos集群和持久化配置(重要)

集群是开发中比较少用,但是生产环境中不可或缺的,官网:
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

在这里插入图片描述
修改成自己画的图:
在这里插入图片描述

到这里我们不妨停下来想想,上面我们在nacos配置中心配置的信息 会存到哪?
内存? 缓存? 内置数据库? 至少我们没有配置自己的数据库?
如果是内存,缓存的话,我们重启不就废了,难得配置每次都要填写?那运维会哭的…刚才我重启了下nacos 进去发现还是有的我们的配置…看样子是有内置的数据库,这样可以解决单机版的问题的…但是我们要做集群数据需要同时放在一起这就是我们需要另外配置数据库了…

Nacos默认自带的是嵌入式数据库derby
https://github.com/alibaba/nacos/blob/develop/config/pom.xml
在这里插入图片描述

看看官网的说法:
https://nacos.io/zh-cn/docs/deployment.html
在这里插入图片描述
在这里插入图片描述
修改成自己mysql的配置

spring.datasource.platform=mysqldb.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

在这里插入图片描述
derby 转到mysql 分2步:
在这里插入图片描述

启动nacos,可以看到是个全新的空记录界面,以前是记录进derby
重新建新的:去mysql中看看发现config_info 表中自己配置的数据

持久化到目前已经完成配置具有了集群的配置基础

4.1 集群配置

在这里插入图片描述

1.Linux服务器上mysql数据库配置
2.application.properties配置
这2部分不写了…java项目都是夸平台的和上面写的window版都是一样的

C:\nacos\conf\cluster.conf.example 看到这个文件,我们可以猜想,集群是和这个文件有关,不过我们打开

#it is ip
#example
10.10.109.214
11.16.128.34
11.16.128.36

看到这里 看来阿里就不知道我们这些苦逼的人都是通过不同的端口进行集群的

在这里插入图片描述
我们修改成这样的
这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP

在这里插入图片描述
在这里插入图片描述
修改内容:window修改startup.cmd linux修改startup.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改之后启动就得可以按照下面的方式了,这个地方不是很好做的,比如zookeeper rides 都是按照配置不同的端口进行启动,这个地方是阿里没考虑到的吧也是
在这里插入图片描述
nginx配置这里也不赘述了,原来写过相关的文档比较简单也

在这里插入图片描述

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

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

相关文章

如何让Excel公式中的参数实现动态引用

如果你想成为Excel函数高手&#xff0c;仅仅掌握VLOOKUP和Countif等函数是远远不够的&#xff0c;起码你得学会使用INDIRECT函数&#xff0c;熟练掌握INDIRECT函数能让你从一个初学者晋级为高手&#xff0c;学会它就好比孙悟空掌握了72般变化的基本功&#xff0c;你说厉不厉害。…

【流量分析】常见webshell流量分析

免责声明&#xff1a;本文仅作分享&#xff01; 对于常见的webshell工具&#xff0c;就要知攻善防&#xff1b;后门脚本的执行导致webshell的连接&#xff0c;对于默认的脚本要了解&#xff0c;才能更清晰&#xff0c;更方便应对。 &#xff08;这里仅针对部分后门代码进行流量…

车载诊断架构 --- 关于DTC的开始检测条件

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

掌握 Spring Boot 的最佳方法 – 学习路线图

在企业界&#xff0c;人们说“Java 永垂不朽&#xff01;”。但为什么呢&#xff1f;Java 仍然是开发企业应用程序的主要平台之一。大型公司使用企业应用程序来赚钱。这些应用程序具有高可靠性要求和庞大的代码库。根据Java开发人员生产力报告&#xff0c;62% 的受访开发人员使…

《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配

文章目录 0. 概述1. 内存碎片问题2. 动态分配3. 首次适配算法4. 最优适配算法5. 最差适配算法 0. 概述 内存分配是操作系统管理过程中很重要的环节&#xff0c;首先需要考虑的是一块连续区域分配的过程&#xff0c;这个过程中会有很多问题&#xff0c;首先比较关注的一个问题是…

MySQL学习/复习3约束

一、表的常用约束 二、null、not null 三、默认值default 3.1default与null 四、注释commen 注意事项&#xff1a;desc查不到注释 五、zerofill 5.1填充0以控制宽度 六、primary_key 6.1复合主键 七、auto_increment 7.1last_insert_id() 八、unique 8.1unique与primary_key …

python视频编辑中的蒙版技术:创意与技术相结合

在数字视频编辑的世界里&#xff0c;蒙版技术是一种强大的工具&#xff0c;它允许我们在视频帧上进行精确的编辑和效果叠加。通过蒙版&#xff0c;我们可以控制哪些部分的视频内容被显示或隐藏&#xff0c;从而创造出各种视觉效果和过渡。在本文中&#xff0c;我们将探讨如何使…

文件操作和IO

目录 一. 文件预备知识 1. 硬盘 2. 文件 (1) 概念 (2) 文件路径 (3) 文件类型 二. 文件操作 1. 文件系统操作 [1] File常见的构造方法 [2] File的常用方法 [3] 查看某目录下所有的目录和文件 2. 文件内容操作 (1) 打开文件 (2) 关闭文件 (3) 读文件 (4) 写文件 …

PCB结构与组成

PCB板就是印制电路板&#xff0c;又称印刷电路板&#xff0c;是电子元器件电气连接的提供者。PCB板转化成我们所熟悉的电路板过程如下&#xff1a; 了解完定义&#xff0c;下面是我们电路板的标识 可简单的把PCB板拆分成六个部分&#xff1a;导线、铺铜、过孔、焊盘、丝印、阻焊…

OrienterNet在二维公共地图实现视觉定位的模型

论文来自MetaAI&#xff1a; https://arxiv.org/pdf/2304.02009https://arxiv.org/pdf/2304.02009github代码&#xff1a; https://github.com/facebookresearch/OrienterNet?tabreadme-ov-filehttps://github.com/facebookresearch/OrienterNet?tabreadme-ov-file 研究目…

LEAN 之 多态机制(Polymorphism,Type class)简析

LEAN 通过 类型类&#xff08;Type Class&#xff09;来提供的多态机制&#xff08;Polymorphism&#xff09;。 以∅&#xff1a;Set α 为例&#xff0c;有 Set α 实现 class EmptyCollection。 其中&#xff0c;class EmptyCollection 定义如下&#xff1a; 也就是&#xf…

【微软:多模态基础模型】(1)从专家到通用助手

欢迎关注【youcans的AGI学习笔记】原创作品 【微软&#xff1a;多模态基础模型】&#xff08;1&#xff09;从专家到通用助手 【微软&#xff1a;多模态基础模型】&#xff08;2&#xff09;视觉理解 【微软&#xff1a;多模态基础模型】&#xff08;3&#xff09;视觉生成 【微…

基于java的社区捐赠物品管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

机器学习—建立表现基准

让我们来看看一些具体的数字&#xff0c;Jtrain和Jcv是什么&#xff0c;以及如何做出判断&#xff0c;如果学习算法具有高偏差或高方差&#xff0c;使用一个语音识别应用的例子作为讲解。 很多在手机上进行网络搜索的用户会使用语音识别&#xff0c;而不是在手机上的小键盘上打…

阮一峰科技爱好者周刊(第 325 期)推荐工具:一个基于 Next.js 的博客和 CMS 系统

近期&#xff0c;阮一峰在科技爱好者周刊第 325 期中推荐了一款开源工具——ReactPress&#xff0c;ReactPress一个基于 Next.js 的博客和 CMS 系统&#xff0c;可查看 demo站点。&#xff08;fecommunity 投稿&#xff09; ReactPress&#xff1a;一款值得推荐的开源发布平台 …

大学语文教材电子版(第十一版)教学用书PDF及课件

大学语文课件&#xff1a;https://caiyun.139.com/m/i?005CiDusEVWnR 《大学语文》&#xff08;第十一版&#xff09;主编&#xff1a;徐中玉 齐森华 谭帆。 大学语文教材电子版教师用书PDF第一课《齐桓晋文之事》艺术赏析&#xff1a; 孟子四处游说&#xff0c;养成善辩的…

RK356x-8:Wifi模块AP6xxx配置与调试

本文记录如何根据原理图&#xff0c;配置和调试RK356x&#xff08;测试用RK3566&#xff09;主板上wifi/蓝牙模块&#xff08;测试用AP6212&#xff0c;rkwifibt&#xff09;&#xff0c;使其能正确连网。 1.配置SOC接口 1.1 查看原理图&#xff0c;看看wifi模块用的接口是什…

Java基础——网络编程

可以让设备中的程序与网络上其他设备中的程序进行数据交互&#xff08;实现网络通信的&#xff09;。 1. 基本的通信架构 基本的通信架构有2种形式&#xff1a;CS架构&#xff08;Client客户端/Server服务端&#xff09;、BS架构&#xff08;Browser浏览器/Server服务端&…

变分自编码器(VAE, Variational Autoencoder)

代码说明 VAE 模型结构&#xff1a; 编码器将输入数据&#xff08;如 MNIST 图像&#xff09;映射到潜在空间&#xff0c;生成均值 (mu) 和对数方差 (logvar)。 通过重新参数化技巧 (reparameterize) 从正态分布中采样潜在向量 z。 解码器将潜在向量 z 映射回原始空间&#xf…

1. Django中的URL调度器 (项目创建与简单测试)

1. 创建 Django 项目 运行以下命令创建一个名为 blog_project 的 Django 项目&#xff1a; django-admin startproject blog_project2. 创建博客应用 Django 中&#xff0c;项目可以包含多个应用。创建一个名为 blog 的应用&#xff1a; cd blog_project python manage.py …