Spring Cloud集成Nacos作为注册中心

Spring Cloud 整合 Nacos 的详细教程 阅读详情

Nacos功能介绍:注册中心(AP和CP)

服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查URL,主页等注册到 Nacos

Nacos 最为核心功能:服务治理,随着微服务概念的流行,越来越多的系统被拆分成了多个服务,每个服务进行分布式部署,又因为服务与服务之间可能会互相调用,为了更好的管理服务与服务之间的调用关系,那么就需要一个注册中心来注册这些服务,消费者只需要拉取对应的服务列表,然后选择对应的负载均衡策略,选择其中一个服务调用就是

常用的服务注册中心有:Zookeeper Consul Eureka Nacos ,今天我们主要介绍Nacos

Nacos 的功能非常强大,也比较容易使用,支持AP 和CP 模型(相对于Eureka 只支持AP 模型、Zookeeper 只支持CP 模型、Consul 只支持CP 来说是一个优势),而且Nacos 性能也非常出色,未来注册中心大概率将是Nacos 的天下,因为Eureka 从2.X版本开始已经闭源了,并且Eureka 服务注册时延比Nacos 大得多,而Zookeeper 是CP 架构,虽然极大可能保证了数据的强一致性,但是很大程度上牺牲了可用性,对于注册中心来说,绝大部分场景下对可用性的需求要大于一致性(即使集群节点间数据暂时不一致,其实并不影响本次请求的调用,因为还有负载策略重试其它机器,而且最终集群节点间数据最终也会一致,对于Nacos 来说不一致的时间最多也就短暂的几秒,完全可以接受),所以未来Nacos 大概率会替代其它注册中心框架成为主流。

准备父工程

  1. 创建一个Maven项目,如下图所示,选好你的jdk版本,并为项目命名

 

2.管理项目依赖

<?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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.7.0</version>
    </parent>

    <groupId>cuit.epoch.pymjl</groupId>
    <artifactId>cloud-learn</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <skipTests>true</skipTests>
        <spring-boot.version>2.7.0</spring-boot.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
        <spring-cloud-starter-oauth2.version>2.2.5.RELEASE</spring-cloud-starter-oauth2.version>
        <druid.version>1.2.9</druid.version>
        <hutool.version>5.8.0</hutool.version>
        <mysql-connector.version>8.0.29</mysql-connector.version>
        <spring-data-commons.version>2.7.0</spring-data-commons.version>
        <jjwt.version>0.9.1</jjwt.version>
        <aliyun-oss.version>2.5.0</aliyun-oss.version>
        <logstash-logback.version>5.3</logstash-logback.version>
        <admin-starter-server.version>2.7.0</admin-starter-server.version>
        <minio.version>8.4.1</minio.version>
        <knife4j.version>3.0.3</knife4j.version>
        <nimbus-jose-jwt.version>9.23</nimbus-jose-jwt.version>
        <mybatis-plus.version>3.5.1</mybatis-plus.version>
        <velocity-engine-core.version>2.3</velocity-engine-core.version>
        <guava.version>31.0.1-jre</guava.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--Spring Cloud 相关依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud Alibaba 相关依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--集成druid连接池-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!--Hutool Java工具包-->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>
            <!--Knife4j API文档生产工具-->
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-micro-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>
            <!--Mysql数据库驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector.version}</version>
            </dependency>
            <!--SpringData工具包-->
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-commons</artifactId>
                <version>${spring-data-commons.version}</version>
            </dependency>
            <!--JWT(Json Web Token)登录支持-->
            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jjwt.version}</version>
            </dependency>
            <!--JWT(Json Web Token)登录支持-->
            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${nimbus-jose-jwt.version}</version>
            </dependency>
            <!-- 阿里云OSS -->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun-oss.version}</version>
            </dependency>
            <!--集成logstash-->
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>${logstash-logback.version}</version>
            </dependency>
            <!--集成SpringBoot Admin监控-->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>${admin-starter-server.version}</version>
            </dependency>
            <!--MinIO JAVA SDK-->
            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>${minio.version}</version>
            </dependency>
            <!--mybatis-plus相关-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!--mybatis-plus代码生成器-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!--mybatis-plus代码生成器引擎-->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>${velocity-engine-core.version}</version>
            </dependency>
            <!--google工具包,jwt工具类会用到-->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

 

  • 这个pom因为父工程,所以需要设置<packaging>pom</packaging>
  • 注意使用dependencyManagement ,实际并没有导入依赖,只是控制子工程的依赖版本

准备项目的通用模块

  1. 创建一个其他服务用到的通用模块common-utils

  2. 导入对应的依赖

  3. 编写一些工具类,主要是一些返回类以及一些常量,具体代码请看项目源码

创建一个UserService

  1. 通用模块创建好了之后我们再创建一个用户服务
  2. 导入依赖
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

 

3.编写yml

server:
  port: 8081
spring:
  application:
    name: user-service
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.199.128
  1. 启动项目

  1. 登录Nacos 后台查看服务注册情况

如图所示,user-service 已经成功注册到Nacos 中啦

  1. Nacos 的一些配置选项:
配置项Key默认值说明
服务端地址spring.cloud.nacos.discovery.server-addr无Nacos Server 启动监听的ip地址和端口
服务名spring.cloud.nacos.discovery.service${spring.application.name}给当前的服务命名
服务分组spring.cloud.nacos.discovery.groupDEFAULT_GROUP设置服务所处的分组
权重spring.cloud.nacos.discovery.weight1取值范围 1 到 100,数值越大,权重越大
网卡名spring.cloud.nacos.discovery.network-interface无当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址
注册的IP地址spring.cloud.nacos.discovery.ip无优先级最高
注册的端口spring.cloud.nacos.discovery.port-1默认情况下不用配置,会自动探测
命名空间spring.cloud.nacos.discovery.namespace无常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
AccessKeyspring.cloud.nacos.discovery.access-key无当要上阿里云时,阿里云上面的一个云账号名
SecretKeyspring.cloud.nacos.discovery.secret-key无当要上阿里云时,阿里云上面的一个云账号密码
Metadataspring.cloud.nacos.discovery.metadata无使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息
日志文件名spring.cloud.nacos.discovery.log-name无
集群spring.cloud.nacos.discovery.cluster-nameDEFAULT配置成Nacos集群名称
接入点spring.cloud.nacos.discovery.enpointUTF-8地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址
是否集成Ribbonribbon.nacos.enabledtrue一般都设置成true即可
是否开启Nacos Watchspring.cloud.nacos.discovery.watch.enabledtrue可以设置成false来关闭 watch

spring cloud集成nacos注册中心、配置中心、服务远程调用 spring cloud集成nacos注册中心、服务远程调用 阅读详情

相关推荐

Spring Cloud Gateway集成Nacos作为注册中心和配置中心

本篇文章将介绍Spring Cloud Alibaba体系下Spring Cloud Gateway的搭建,服务注册中心和分布式配置中心使用Nacos,后续将会持续更新,介绍集成Sentinel,如何做日志链路追踪,如何做全链路灰度发布设计,以及Spring Cloud Gateway的扩展等。

m0_71777195的博客 1276

Spring Cloud 整合 Nacos 详解

SpringCloud整合Nacos详解

墨鸦的博客 9491

Nacos(1.4.2)注册中心原理及源码系列(二)- Nacos Client 和 Spring Cloud 集成

1、客户端服务注册 Nacos在1.x版本的通信方式采用的HTTP协议,2.0版本以后会添加gRPC协议,本文写作采用的版本为1.4.2,所以本文还是基于HTTP协议来分析,服务注册的接口地址为:/nacos/v1/ns/instance,此接口的源码全路径为:com.alibaba.nacos.naming.controllers.InstanceController#register。 @CanDistro @PostMapping @Secured(parser = NamingReso...

louis_zzz的专栏 1484

SpringCloud 集成 Nacos

一篇超详细根据idea搭建一个基于Maven实现springcloud+nacos的项目

一名后端程序猿 1万+

Spring Cloud集成Nacos注册中心

在 Spring Cloud项目中引入Nacos依赖:在你的 Spring Cloud 项目的 `pom.xml` 文件中,需要添加 Nacos 的相关依赖。这些依赖包括 Nacos 的客户端和服务发现的依赖。配置 Nacos:在你的 `bootstrap.yml` 或者 `application.yml` 文件中,需要添加 Nacos 的相关配置。在Nacos的控制,可以看到已注册的服务列表以及服务的详细信息。此时,你的项目会自动向 Nacos 注册中心注册服务。安装完成后,启动Nacos服务。

Mr.xing的博客 196

Spring Cloud Alibaba微服务架构实战教程—10集成nacos注册中心

前言 如图,在微服务架构的系统中,当服务A调用服务B、服务C时,若服务A不知道B、C服务所在的服务器是可用还是不可用状态,就会不停发起请求做无用功。如何解决这类问题呢?——建立注册中心。 一、什么是注册中心? 注册中心主要保存了各个可用服务的网络地址,如ip和port等信息。 在服务相互调用时,可以统一把服务名字都注册到中心,该中心则记录这些服务的不同名称和当前状态,通过心跳机制来动态感知服务的状态,以此来准确帮助服务之间的交互。 二、注册中心的组件 在SpringCloud架构中,可以作为注册中心的

空空说技术的博客 782

Spring Cloud集成Nacos作为配置中心

配置中心,顾名思义,就是用来统一管理项目中所有配置的系统。在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余。配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。如果一个中型的项目,不采用配置中心的模式,一大堆的各类配置项,各种不定时的修改需求,一定会让开发同学非常头疼且管理十分混乱。所以,我们需要使用配置中心对这些配置进行集中管理。配置项容易读取和修改。

apple_52109766的博客 3680

在STM32上运行小波变换及神经网络算法——(一)单片机中小波算法编写

在单片机上实现离散小波变换的C代码,通过确定信号长度、小波分解层数、小波基名称后进行编写,并改写成了方便调用的结构体格式。

weixin_45400202的博客 987

spring cloud alibaba教程系列,springboot集成nacos注册中心

系列文章目录 spring cloud alibaba教程系列,springboot集成nacos注册中心 文章目录系列文章目录前言一、引入库二、编写配置文件3.启动项目测试 前言 上篇文章讲了nacos作为配置中心,这里来说说作为服务注册中心的使用 一、引入库 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-clo

爱音乐的程序猿的博客 347

玩转RecyclerView | 实现子视图叠加 | 3D画廊效果 | 高级动效 | Android 3D坐标系介绍

之前写的一篇文章展示了RecyclerView实现的画廊效果,适用于专辑/图片/列表浏览效果。本篇文章阐述如何基于RecyclerView实现如下图所示的3D画廊效果。以下效果的重点在于实现子视图的图层叠加,滑动过程中的3D旋转效果较为简单。(1)无3D旋转效果图片(1)带3D旋转效果图片。

qq_38237224的博客 8159

使用mmdetection快速复现计算机视觉顶会论文

使用mmdetection中支持的算法运行自定义数据集

m0_56896669的博客 2424

Spring Cloud项目(一)——集成Nacos作为注册中心

学会springcloud的第一步:学会使用nacos作为注册中心

weixin_45974176的博客 803

wsl2 配置ubuntu 固定ip

wsls ubuntu 设置固定ip

musk1212的博客 2619

Spring Cloud Tencent多注册中心集成:Nacos与Polaris的完美结合

Spring Cloud Tencent作为腾讯云微服务框架,提供了强大的多注册中心集成能力,让开发者能够轻松实现Nacos与Polaris的完美结合。这种多注册中心架构在现代微服务架构中具有重要价值,特别是在混合云环境、服务迁移和架构升级场景中。 ## 🚀 多注册中心架构的核心优势 Spring Cloud Tencent的多注册中心支持让您的微服务可以同时注册到多个服务发现平台。这种架构

gitblog_00471的博客 1085

薛定谔 | 先导化合物优化与相互作用可视化

当获得针对某个靶点的先导分子后,想要在此基础上进行化学结构修饰。为了提升化学改造的成功率可以采用本教程方法进行结构虚拟改造/优化。每用薛定谔处理一个新任务,第一步必须创建新的project以方便日后管理。选项卡中修改工作路径(可以方便地找到输出文件)

药研猿的博客 2144

【unity小技巧】常用的方法属性和技巧汇总(长期更新,2025/07/02更新)

Unity开发技巧摘要 本文汇总了Unity开发中的实用技巧,包括移动控制、力应用、物体翻转、单例模式实现等。移动方面介绍了MoveTowards、MovePosition、Translate等方法的区别与应用场景;力应用部分详解了AddForce系列方法的参数和使用方式;物体翻转对比了三种实现方案;单例模式提供了标准实现和泛型优化版本;还收录了绝对值计算、鼠标检测、旋转控制、数值取整等实用代码片段。这些经过验证的技巧能有效提升开发效率,文章将持续更新补充新的实用内容。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3350

Spring Cloud Alibaba微服务架构之集成Nacos(注册中心和配置中心)

关注我,升职加薪就是你! 今天要给大家分享的是怎么把nacos集成到springcloud-alibaba的微服务架构中。需要注意的是,需要先将nacos搞到你的电脑中,不知道怎么操作的小伙伴可以移步Springcloud-alibaba微服务架构之Nacos下载安装(单机模式),这里面有基本的操作流程,既然是demo,单机模式的nacos足够了。接下来就话不多说了,直接上货吧。 1、创建工程nacos-provider 下面这个步骤只引入spring web的jar包,其他jar包我们自己添加。

Qcsdn123的博客 707

【30天从零玩转AI应用开发】第16篇:智能体Agent入门——ReAct框架原理+首个会思考、会动手的AI实战

摘要: 本文介绍了AI智能体(Agent)的核心概念及其与普通大模型(LLM)的区别。通过ReAct(Reason+Act)框架,智能体实现了自主思考、调用工具和分步执行的能力。文章详细讲解了LangChain Agent的四大组件,并推荐新手使用ZERO_SHOT_REACT_DESCRIPTION类型。最后提供了一个完整的智能体实战代码示例,该智能体具备数学计算和天气查询功能,能够自主选择工具完成任务,展示了AI从”被动回答“到”主动行动“的关键进化。

在上海谋生的软件喵记录喵生 626

Spring Cloud集成Nacos配置中心/注册中心

Spring Cloud集成Nacos配置中心/注册中心

Cx的博客 426

华为OD机试 - 荒岛求生 - 栈Stack(Python/JS/C/C++ 新系统 100分)

每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2840

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

《Spring Cloud Alibaba实战》系列-集成dubbo实现远程RPC调用,以nacos作为注册中心

本文是Spring Cloud场景下使用Dubbo远程调用,以Nacos替换Zookeeper为注册中心的案例,如果单纯Dubbo融合Nacos作为注册中心,请参考 ☞官方文档;对Nacos不了解的可以参考之前☞Nacos文章; 1. Maven依赖 首先增加依赖版本统一管理 <properties> <!-- 统一版本管理 --> <spring-cloud.version>Hoxton.RELEASE</sprin

小葫芦的博客 965

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spring Cloud——Nacos(注册中心快速入门、服务发现详解、集成openFeign和gateway)

新建一个Maven项目命名nacos,在建一个Spring Boot项目,修改Custom内的值为https://start.aliyun.com 小插曲:直接换成https://start.aliyun.com后下一步中导入依赖时候依然搜不到nacos等,要退出创建页面重新进一下就好了 选择Spring Web和Nacos Service Discovery依赖 修改boot和alibaba版本 将插件删除 修改properties为yml,进行配置 删除自动创建的类,修改启动类,跟之前eure

YiRenGengShangBuQi的博客 812

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: Spring 源码阅读 09:加载 BeanDefinition 的过程(注册阶段)
下一篇: 多线程与高并发基础
java_lujj
博客等级 码龄4年 18粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值