自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 RPC框架原理(一)

学习顺序:从网络,到IO模型,到RPC目前只涉及网络IO(与磁盘IO无关)

2024-06-05 14:58:35 1217

原创 SpringCloud Config 分布式配置中心

微服务意味着要将单体应用中的业务拆分成一个个字服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,每一个微服务自己带着一个application.yaml,上百个配置文件的管理非常麻烦。

2024-05-09 14:22:59 1011

原创 zuul路由网关

Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口;基础而过滤器功能负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。提供:代理+路由+过滤三大功能。

2024-04-30 13:12:30 430

原创 Hystrix断路器

复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用B和C,微服务B和C调用其他的微服务,这就是所谓的“扇出如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应“是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,

2024-04-29 18:00:53 609

原创 Feign负载均衡

Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得非常容易。只需要创建一个接口,然后在上面添加注解即可。Feign集成了Ribbon利用Ribbon维护了MicroServiceCloud-Dept的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是,通过feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。

2024-04-26 12:57:39 786

原创 Ribbon负载均衡

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balance(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。

2024-04-25 17:14:51 717

原创 Eureka服务注册与发现

如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90s)Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,各个节点(每个微服务)启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观地看到。四个模块,三个子模块;

2024-04-24 17:20:58 953

原创 Rest微服务案例

以Dept部门模块做一个微服务通用案例Consumer消费者(Client)通过REST调用Provider提供者(Server)提供的服务;分模块架构:一个Project带着多个Module子模块MicroServiceCloud父工程(Project)下初次带着三个子模块(Module)下图中,如果entity在1.2\1.3\1.4\1.5子模块中都要用到,可以在api公共模块中定义entity,让剩余模块直接调用,不用再在每个模块里都写一遍entity。

2024-04-23 18:13:59 1367

原创 SpringCloud简介

微服务是一种架构模式,将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最中价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。需要有:服务注册与发现;服务调用;服务熔断;负载均衡;

2024-04-23 12:54:33 701

原创 Java中的动态代理

对象如果认为身上干的事太多,可以通过代理来转移部分职责;对象有什么方法想被代理,代理就一定要有对应的方法使用接口实现,生成代理。

2024-04-22 23:46:16 204 1

原创 Java中的注解

是Java代码里的特殊标记,比如:@Override、@Test等,作用是:让其他程序根据注解信息来决定怎么执行该程序注意:注解可以用在类、构造器方法、成员变量、参数等位置上就是自己定义注解,定义格式如下:定义一个如下注解在测试类中使用注解。

2024-04-22 15:35:37 426 1

原创 Java中的反射

此包中的类以及java.lang.Class适用于调试器,解释器,对象检查器,类浏览器等应用程序,以及需要访问目标对象的公共成员(基于其运行时类)的对象序列化和javaBean等服务。Reflection允许以编程方式访问有关已加载类的字段,方法和构造函数信息,以及使用反射字段,方法和构造函数在封装和安全限制内对其底层对应项进行操作。Step1:加载类,获取类的字节码:Class对象;Step4:获取类的成员方法:Method对象。Step3:获取类的成员变量:Field对象。成员方法的作用:依然是执行。

2024-04-17 15:48:04 429

原创 Java中的单元测试Junit框架

针对最小的功能单元(方法),编写测试代码对其进行正确性测试。

2024-04-12 13:58:15 532

原创 Java中的TCP通信

客户端向服务端发起连接请求,如果服务端接收该请求,两者之间会建立起一个可靠的通信管道。(被称为端到端的通信管道)这个位置(服务端阻塞等待客户端发来消息的地方)通信双方事先会采用“三次握手“方式建立可靠连接,实现端到端的通信;如果客户端退出了,服务端仍然等客户端消息,通信管道突然断掉,服务端就会抛出异常。Java提供了一个java.net.Socket类来实现TCP通信。服务端启动,在accept的位置阻塞等待客户端请求;通信管道突然断掉,需要对异常进行处理。支持与多个客户端同时通信的。

2024-04-11 20:22:39 468

原创 Java中的UDP通信

发送端每次把要发送的数据(限制在64KB内)、接收端IP、等信息封装成一个数据包,发出去就不管了。Java提供了一个java.net.DatagramSocket类来实现UDP通信。可以启动多个客户端,服务端可以同时接收到来自这些客户端的消息。UDP通信快速入门:实现1发1收。让服务端可以反复接收消息。特点:无连接,不可靠通信。让客户端可以反复发消息;用于创建客户端、服务端。

2024-04-07 19:22:09 297

原创 Java中的网络编程

可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信)

2024-03-30 13:32:09 444

原创 Java中的并发并行与生命周期

正在运行的程序(软件)就是一个独立的进程线程是属于进程的,一个进程中可以同时运行很多个进程。进程中的多个线程其实并发和并行执行的。

2024-03-22 15:07:12 270

原创 Java中的线程池

线程池是一个可以复用线程的技术。

2024-03-22 14:15:17 538

原创 Java中的线程安全(同步、锁)及线程通信

多个线程,同时操作同一个共享资源的时候,可能会出现业务安全问题线程安全的本质是共享变量线程安全问题出现的原因?存在多个线程在同时执行同时访问同一个共享资源存在修改该共享资源让多个线程实现先后依次访问共享资源,解决安全问题加锁:每次只允许一个线程加锁,加锁后才能进入访问,访问完毕后自动解锁,然后其他线程才能再加锁进来加锁的方法有三种:如下所示。

2024-03-05 16:46:27 651

原创 Java中的线程(创建多线程的三种方法)

如果线程执行完毕后有一些数据需要返回,他们重写的run方法均不能直接返回结果。另一种写法:匿名内部类写法。匿名内部类的简化方法。

2024-02-19 22:50:48 363

原创 Java中的Arrays和Lambda表达式

是JDK 8 开始新增的一种语法形式——作用:用于简化匿名内部类的代码写法函数式接口里只能有一个抽象方法注意:Lambda表达式只能简化函数式接口的匿名内部类有且仅有一个抽象方法的接口大部分函数式接口,上面都可能会有一个@FunctionalInterface的注解,有该注解的接口就必定是函数式接口。

2024-02-19 17:26:22 203

原创 Java中的常用API

用object的equals比较两个字符串(如果有字符串为null)会出现空指针异常,Objects的equals比较时可以传入null值(更安全、更好)equals 默认判断这两个对象的地址是否相等(相等于 ==),如果自己写的类需要判断内容相等,需要对equals进行重写。Object类是所有类的祖宗类,Java中所有类的对象都可以直接使用Object类中提供的方法。浅克隆:拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)对象中还包含其他对象,不会拷贝地址,会创建新对象。

2024-02-02 22:27:55 461

原创 Java中的泛型

定义类、接口、方法时,同时声明了一个或者多个类型变量(如:),称为泛型类、泛型接口,泛型方法、它们统称为泛型。作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力。这样可以避免强制类型转换,及其可能出现的异常。泛型的本质:把具体的数据类型作为参数传给类变量。自定义泛型类自定义泛型接口自定义泛型方法。

2024-01-14 18:59:23 381

原创 Java中的内部类、枚举

一种特殊的局部内部类;所谓匿名:指的是不需要为这个类声明名字特点:把这个匿名内部类编译成一个子类,然后会立即创建一个类对象出来作用:用于更方便的创建一个子类对象左边是Java类代码,右边是编译后的class文件是一种特殊的类:是一种固定数量的类枚举类中的第一行,只能写一些合法的标识符(名称),多个名称用逗号隔开;这些名称,本质是常量,每个常量都会记住枚举类的一个对象。反编译可以看到。

2023-12-25 21:09:28 1266

原创 Java中的接口

Java提供关键字interface,用这个关键字可以定义出一个特殊的结构:接口。传统的接口中:只有成员变量(常量)和成员方法(抽象方法),且不能创建对象//A是接口名//成员变量(常量),Java默认这里的成员变量都是常量,需要赋初始值//相当于 public static final String SCHOOL_NAME = "str";//成员方法(抽象方法),没有方法体//相当于 public abstract void test();//目标:认识接口;

2023-12-24 21:18:31 942

原创 Java中的抽象abstract

在Java中有一个关键字叫:abstract,它就是抽象的意思,可以用它修饰类、成员方法。abstract修饰类,这个类就是抽象类;修饰方法,这个方法就是抽象方法。

2023-12-23 15:04:16 436

原创 final前置关键字(和常量)

final关键字是最终的意思,可以修饰(类、方法、变量)修饰类:该类被称为最终类,不可以再被继承;修饰方法:该方法被称为最终方法,特点是不能被重写了;修饰变量:该变量只能被赋值一次例如一些工具类不需要被继承。

2023-12-23 14:36:37 399

原创 Java中的多态

多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。具体代码体现:例子,有people(父类)、student(子类,继承people)、teacher(子类,继承people)三个类//对象多态 people既可以指向学生,也可以指向老师//方法多态 在不同的对象下表现出不同的特征p1.run();p2.run();方法多态识别技巧:编译看左边,运行看右边编译看左边:写p1.run()时,run方法会找people里面的run方法;

2023-12-23 14:15:29 897

原创 Java中的继承

Java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。//父类//公开成员//私有成员//子类// 子类可以继承父类的非私有成员print1();A类称为父类(基类或超类);B类称为子类(派生类)当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法。重写后,方法的访问,Java会遵循就近原则。对象在调用方法时,就会调用B中的print函数,而不是A的。

2023-12-21 21:58:53 925

原创 设计模式——23种

好处:在只需要一个对象的业务场景下,可以避免浪费内存。确保一个类只有一个对象。

2023-12-21 20:35:56 341

原创 Transformer代码学习

encoder解码,从解码端的输入到输出,再把输出拿到解码端作为下一册的输入,该过程无法并行(下一时刻的输入取决于上一时刻的输出);size设置为4,有四个样本(4组句子),每组句子包含如上3个句子。一个batch在被模型处理时,采用矩阵化运算,若一个batch中句子长度不一致就无法组成有效矩阵。三个特殊字符:S——start,E——end,P——pad字符填充字符。,大于maxLenth的部分截掉,小于maxLenth的部分用。从整体网络结构来看,分为三个部分:编码层,解码层,输出层。

2023-12-21 14:41:47 373

原创 Stanford CS224N《深度学习自然语言处理》——1_Introduction and Word Vectors

Stanford CS224N《深度学习自然语言处理》第一节学习笔记

2023-11-06 21:06:20 199 1

原创 词向量模型Word2Vec

CBOW和skip-gram的目标都是迭代出词向量字典(嵌入矩阵)——embeddings

2023-11-02 10:24:25 214

原创 DIDL5_数值稳定性和模型初始化

激活函数sigmoid函数,11exp⁡−x1/1exp−x)),类似于阈值函数。由于早期的人工神经网络受到生物神经网络的启发, 神经元要么完全激活要么完全不激活(就像生物神经元)的想法很有吸引力。然而,它却是导致梯度消失问题的一个常见的原因:当sigmoid函数的输入很大或是很小时,它的梯度都会消失。当反向传播通过许多层时,除非我们在刚刚好的地方, 这些地方sigmoid函数的输入接近于零,否则整个乘积的梯度可能会消失。

2023-02-18 15:39:51 477

原创 DIDL4_前向传播与反向传播(模型参数的更新)

计算的顺序与前向传播中执行的顺序相反,因为我们需要从计算图的结果开始,并朝着参数的方向努力。前向传播(forward propagation或forward pass) 指的是:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。因此,在训练神经网络时,在初始化模型参数后, 我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。然后将这些用于反向传播,其中计算顺序与计算图的相反,用于更新w、b(即神经网络中的参数)。对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。

2023-02-18 15:03:28 675 1

原创 DIDL3_模型选择、复杂度、过欠拟合的相关概念

丢弃法将一些输出项随机置0来控制模型复杂度常作用在多层感知机的隐藏层输出上丢弃概率是控制模型复杂度的超参数(如果p=1,就是全部丢掉;p=0,就是没有被丢弃;一般取0.9、0.5、0.1)

2023-02-14 15:32:34 363

原创 DIDL2_Softmax回归(分类)

回归 vs 分类从回归到多类分类回归:分类:

2022-12-24 16:51:51 122

原创 DIDL1_基础优化算法

梯度下降通过不断沿着反梯度方向更新参数求解小批量随机梯度下降时深度学习默认的求解算法两个重要的超参数是批量大小和学习率初始化模型参数、定义模型、定义损失函数、定义优化算法、训练。

2022-12-24 12:01:56 551

原创 &4_单机优化(确定性算法,优化框架)

考虑实值函数f:Rd→Rf:Rd→R,如果对任意自变量w,v∈Rdv \in R^dv∈Rdf(w)−f(v)⩾▽f(v)T(w−v)f(w)−f(v)⩾▽f(v)T(w−v)则称函数f是凸的。凸性会给优化带来很大的方便:凸函数的任何一个局部极小值都是全局最优解。考虑实值函数f:Rd→Rf:Rd→R和RdR^dRd。

2022-11-11 13:54:41 859

原创 &3_分布式机器学习框架

各个工作节点负责处理本地的训练数据,通过参数服务器的客户端API与参数服务通信,从而从参数服务器获取最新的模型参数,或将本地训练产生的模型更新发送到参数服务器上。每个工作节点完成一定量本地训练后,将自己阶段性训练结果推送到参数服务器上,随机立刻进行本地的模型训练(在需要时,会从服务器上拿回最新的全局模型,作为本地寻来呢起点)。:定期进行了局部和全局的乱序操作,不一定完全满足独立同分布的条件,数据打乱等价或者接近于无放回的随机采样,而独立同分布的假设则暗示着有放回的随机采样。

2022-11-08 19:12:36 608

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除