热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开源pig学习

开源pig学习-以下仅供个人学习记录使用,有问题请见谅javahost将主机域名解析到相应的ip地址上。比如在host中配置了www.youtube.comip是百度的ip
以下仅供个人学习记录使用,有问题请见谅 java
  1. host 将主机域名解析到相应的ip地址上。 比如在host中配置了 www.youtube.com ip是百度的ip,然后去ping youtube,返回的ip是百度的ip。

    好处:1.这样以后在项目中只需要使用域名去访问就可以,host统一管理ip,做环境切换。

    1. 方便一键部署。
  2. npm cnpm(淘宝的) npm install -g cnpm --registry=https://registry.npm.taobao.org

安装详情 参考连接 https://www.jianshu.com/p/fbd87ad45631

  1. java流 https://www.yuque.com/pig4cloud/pig/yewg8z

    流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。 众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像 SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。 因此,流的集合操作对我们来说是透明的,我们只需向流下达命令,它就会自动把我们想要的结果给我们。 由于操作过程完全由Java处理,因此它可以根据当前硬件环境选择最优的方法处理,我们也无需编写复杂又容易 出错的多线程代码了。

操作:

创建流 集合,数组,值,文件 list.stream();

常见方法:

  /**
    Consumer :消费型接口
        void accept(T t);  给一个值不返回参数
    BiConsumer 消费两个参数 不返回值
        R apply(T t, U u);
   Supplier :供给型接口
        T get();  不给值返回参数
   Function  :函数型接口
        R apply(T t);  给一个值返回一个参数
   BiFunction 传入两个参数的函数
        R apply(T t, U u);
   Predicate : 断言型接口 
        boolean test(T t); 判断类型
   BiPredicate 两个参数的断言
        boolean test(T t, U u);
  */
 stream.filter((参数)->{判断条件返回true、flase}); //对每个 参数进行过滤
 stream.distinct() ; //对结果去重
 stream.limit(); //返回前几个元素
 stream.map(函数(参数)); //将元素重新组成一个新的流返回。函数是给一个值然后返回一个值

 allMatch--检查匹配所有元素 
 anyMatch--检查是否至少匹配一个元素 
 noneMatch--检查是否没有匹配所有元素 
 findAny--返回当前流中的任意元素 
 count--返回流中的元素的总个数 
 max--返回流中的最大值 
 min--返回流中的最小值
//将字符串集合 转成逗号拼接的一个字符串
String[] a = new String[]{"aa","bb","cc","dd"};
List list = Arrays.asList(a);
String.join("," , a); 或者 String.join(",", list)
//流中的groupby。在终端操作的Collectors中,返回的是map,key是分组的参数,值是分组后的数据
Map> collect = employees.stream()
      .collect(Collectors.groupingBy(Employee::getAge));
session token jwt oauth2

认证:

就是用户登录系统,如何判断你就是你,比如输入用户名密码正确,那么就知道你是你了。还有手机号,如果输入的手机号能收到验证码,也能判断为你是你。

授权:

不同用户权限不同,常用授权方式,COOKIE,session,token,oauth

凭证 :

用来标识访问者身份,就像每个人都有一个身份证,乘车凭身份证进站一样。

COOKIE:

为何产生?http是无状态协议,每次请求都是一次全新的请求,用户在登录系统之后,不可能每次发请求都要走登录验证流程,就需要有个东西存储一下用户状态,服务器也需要知道是谁在访问自己,进行会话跟踪。这样每次发送请求时,不必从登录开始发送那么多一长串的请求,每次请求携带一个登陆后的参数即可。COOKIE应运而生。COOKIE存储在客户端浏览器,不能跨域,只能在单一域名使用。

 COOKIE存储信息:1.sessionId  2.此sessionId属于哪个域名,只能在该域名下使用

session:

基于COOKIE实现的,存储在服务器。浏览器在第一次访问时,服务器会创建session,并返回给客户端一个sessionId,以后浏览器每次发送请求COOKIE都要携带sessionId,服务器判断sessionId属于哪个用户,然后去执行后序操作。浏览器在之后访问这个域名时,会自动判断该域名下是否有COOKIE,如果有浏览器会自动将COOKIE发送给服务器。

COOKIE和session区别:

1.COOKIE只能存储字符串,并且大小不能超过4k

session可以存储任意类型,并且大小无限制。如果服务器访问人数过多,session将过多的消耗服务器资源。---->token应运而生。

token:

服务启端无状态化,并且不用存储token信息(客户端存储),只负责解析token,用解析时间换取session的存储空间,减轻服务器压力和频繁查库。

refresh_token:

另外一种token,当token过期时,不让用户退出重新输入用户名密码,让用户无感知。

存储在数据库中,只有当token过期是,refresh_token才会起作用。

jwt:不使用COOKIE,所以不存在跨域问题。自包含会话信息,不用查库。

把它放在 COOKIE 里面自动发送,但是这样不能跨域,所以更好的做法是放在 HTTP 请求头信息的 Authorization 字段里,使用 Bearer 模式添加 JWT.

那这个Authorization 字段中的信息,从哪里获取?

jwt和token区别:

相同点:都是令牌,无状态化,记录用户信息的。

不同点:jwt自包含用户信息和加密数据token还要查询数据库获取用户详细信息

nacos

注册中心 服务注册和发现

  1. 正向代理 (服务端暴露,客户端隐藏)将客户端请求代理掉

在代理过程中,隐藏了真实的客户端信息,服务端不知道真实的客户端是谁,客户端的请求会被代理服务器代理请求

举个例子:小王找马云借钱,小王借不到。然后小王通过老王找马云借钱,马云把钱借给了老王,老王把钱给了小王,马云并不知道钱真正给了谁。

  1. 反向代理(代理服务端,服务端被隐藏了)

举个例子:打电话给10086,你不需要知道对面客服在东北还是在广东,是男的还是女的,肯定有人会接通你的电话。在这个过程中,服务端真正的提供服务者 客户端是不知道的,也不用知道,客户端关心的是服务本身。

提到反向代理,nginx必提。当有很多服务需要被代理时,配置nginx是十分繁琐的,要将每个节点的信息实时维护进config文件中,nacos注册中心应运而生。

通过服务名字去注册中心注册,负载均衡根据既定规则 选择一个服务将http服务的ip 和 port返回给调用方。

配置中心

产生原因:静态化配置(直接在项目的application.yml配置)参数过多。时效性,改了配置,要重启所有服务。微服务中无法集中管理。不能区分环境,每次切换要设置不同参数。无法回滚配置,和追溯问题

使用

以源码方式启动,方便在项目中以main方式运行,还可以保证server和client版本一致(不知道如何保证)。

  1. 下载源码,保留conslole目录,
loadBalancer负载均衡器,提供客户端负载均衡算法 sentinel

熔断作用

当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终防止产生雪崩的效果,熔断器应运而生。

机制:1.通过并发线程数进行限制,当线程数堆积到一定的数量之后,对该资源的请求就都会被拒绝。

2.通过响应时间对资源进行降级。

流量控制

系统处理能力有限,但流量不稳定,我们需要根据系统的处理能力进行流量控制,流量控制调配器应运而生

流量控制有以下几个角度:

  • 资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
  • 运行指标,例如 QPS、线程池、系统负载等;

  • 控制的效果,例如直接限流、冷启动、排队等。

Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

gateway网关

业务网关:路由转发 + 过滤器。

  • 请求接入: 作为所有 API 接口服务请求的接入点,管理所有的接入请求;
  • 业务聚合: 作为所有后端业务服务的聚合点,所有的业务服务都可以在这里被调用;

  • 中介策略: 实现安全、验证、路由、过滤、流控,缓存等策略,进行一些必要的中介处理
  • 统一管理: 提供配置管理工具,对所有 API 服务的调用生命周期和相应的中介策略进行统一管理。

推荐阅读
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
author-avatar
snailslowdx_619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有