java技术圈 为您找到相关结果 21

模式匹配 · 傻瓜函数式编程 · 看云

## 模式匹配 模式匹配并不是什么新功能。而事实上它和函数式编程也没有什么太大的关系。它之所以常常被认为是FP的一个特性,是因为在函数式语言已经支持模式匹配很长一段时间后的今天,指令式语言是还没有这个功能。 还是直接用例子来看看什么是模式匹配吧,这是一个用Java写的Fibonacci函数: ~~~ int fib(int n) { if(n == 0) return 1; if(n == 1) return 1; return fib(n - 2) + fib(n - 1); } ~~~ 再看看用我们基于Java修改过的新语言写出来的Fibonacci函数,这种新语言就支持模式匹配: ~~~ int fib(0) { return 1; } int fib(1) { return 1; }...阅读全文

博文 2019-08-17 02:21:05 www.kancloud.cn

为什么华为、百度纷纷选择OKR,放弃KPI?

![image.png](https://img-blog.csdnimg.cn/20200430154149291.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) 近几年,OKR 这个词越来越流行了。 OKR由intel首创,在 Google 使用后被推广,接着华为、百度等国内知名公司也都积极引入。 2017年,华为内部的一次绩效满意度调查中显示:开展OKR的团队在绩效管理各维度的满意度全面高于采用传统绩效管理方法的团队。 带团队、打硬仗,你们公司的...阅读全文

博文 2020-04-30 08:19:35 CORNERSTONE

正则表达式中?=和?:和?!的理解_这个昵称没有被占用吧的博客

正则表达式 ?: 的理解 swinm的博客 07-24 563 ?: 是 不想被捕获的时候使用 比如 ([a-z][0-9])+ 这个正则表达式里 ( ) 里面的内容被捕获了, 反向引用的时候可以用上 。 一般正则替换的时候用的多 像UBB代码 但是 如果写成 (?:[a-z][0-9])+ 跟上面 正则表达式 整体匹配是一样的 就是 不会捕获 ( )里内容了。 也就是不能使用 反向引用 比如 PHP 手册里 有个 正则替换的函数 preg_replace 有的列子 $string = 'April 15, 2003'; $pattern = '/(... 欢迎查看正则表达式(?!), (?:), (?=)的区别(正则预查) gx_dmm的博客 08-24 599 正则表达式 (?!), (...阅读全文

博文 2022-07-21 06:13:57 CSDN博客_正则表达式?!

MapReduce 数据倾斜原因和解决方案_一次次尝试

MapReduce简介 MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义: 1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。 2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。 3)MapReduce是一...阅读全文

博文 2021-02-22 04:44:09 CSDN博客_mapreduce数据倾斜原因

分布式一致性之两阶段提交协议、三阶提交协议

前言最近在学习一些分布式系统中的基础知识,看到了前人总结的非常好的博客。在作者申明可以转载的情况下,将它们转载到自己的专栏。既为了建立一个完整的知识体系,也为了更好的理解原文。接下来的篇幅末尾,会将参考的篇幅列举出来,感兴趣的可以读一下参考的博客。笔者是在前人博客的基础上,加上自己的理解和适当的配图,使得文章更易理解。原文内容随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三...阅读全文

博文 2020-02-21 14:59:51 知乎

GROUP BY

# GROUP BY # description GROUP BY GROUPING SETS | CUBE | ROLLUP 是对 GROUP BY 子句的扩展,它能够在一个 GROUP BY 子句中实现多个集合的分组的聚合。其结果等价于将多个相应 GROUP BY 子句进行 UNION 操作。 GROUP BY 子句是只含有一个元素的 GROUP BY GROUPING SETS 的特例。 例如,GROUPING SETS 语句: SELECT a, b, SUM( c ) FROM tab1 GROUP BY GROUPING SETS ( (a, b), (a), (b), ( ) ); 其查询结果等价于: SELECT a, b, SUM( c ) FROM tab1 GROUP ...阅读全文

博文 2021-04-17 06:03:08 Apache Doris

JAVA8 之 Lambda 表达式与方法引用(二) - 当年明月123

在上一章我们介绍了函数式编程的概念和函数式接口。Lambda 表达式就是函数式编程的具体体现,它需要借助函数式接口才能应用在 Java 语言中。 定义 在编程语言中,lambda 表达式是一种用于指定匿名函数或者闭包的运算符。Lambda 可以很清晰地表达一个匿名函数,可以被传递。有了 Lambda 表达式之后,Lambda 表达式为 Java 添加了缺失的函数式编程特性,使我们能将函数当作一等公民看待。 在将函数作为一等公民的语言中,Lambda 表达式的类型是函数。但在 Java 中,Lambda 表达式是对象,他们必须依附于一类特别的对象类型-函数式接口,因为 Java 要保持向后兼容。 Java 的 Lambda 表达式是一种匿名函数,它是没有声明的方法,即没有访问修饰符,返回值声明...阅读全文

博文 2020-06-09 10:50:30 博客园

SpringCloudAlibaba高并发仿斗鱼直播平台实战

## SpringCloudAlibaba高并发仿斗鱼直播平台实战 download:https://www.zxit666.com/6371/ Dubbo服务调用原理剖析 段落一:简介 Dubbo是一款高性能、轻量级的分布式服务框架,主要用于解决分布式应用中的服务调用和管理问题。它提供了多种通信协议和负载均衡策略,支持服务的注册与发现、远程调用和容错处理等功能。 段落二:服务注册与发现 在Dubbo中,服务注册与发现是实现服务调用的基础。当服务提供者启动时,它会将自己的地址信息注册到注册中心。而服务消费者则从注册中心获取提供者的地址,并建立与提供者的连接。Dubbo支持多种注册中心,如Zookeeper、Consul等,通过注册中心的协调,实现了服务的动态发现和路由。 段落三:远程调用 D...阅读全文

分布式理论

# 分布式理论 - BASEBASE是“Basically Available, Soft state, Eventually consistent(基本可用、软状态、最终一致性)”的首字母缩写。其中的软状态和最终一致性这两种技巧擅于对付存在分区的场合,并因此提高了可用性。@pdai分布式理论 - BASE什么是BASECAP 与 BASE 关系CAP 与 ACID 关系# 什么是BASEeBay 的架构师 Dan Pritchett 源于对大规模分布式系统的实践总结,在 ACM 上发表文章提出 BASE 理论,BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(...阅读全文

博文 2023-11-23 14:11:14 BASE | Java 全栈知识体系

[完结26章]Java主流分布式解决方案多场景设计与实战

![1.png](http://static.itsharecircle.com/231221/550e98b48493de30d73d64caedef007f.png) java中常用的分布式方法有哪些呢? 分布式系统分布式存储:GFS,HDFS(HBase) 分布式计算系统: MapReduce 消息中间件: Kafka 分布式处理管理器: Zookeeper RocketMQ : 负载均衡技术 分布式缓存技术: Redis 分布式锁 分布式系统设计 分布式优化策略 众所周知,随着互联网数据井喷式的发展,分布式技术应运而生。分布式因其高性能、高可用、高扩展的特点,成为微服务项目的基石。本篇文章将针对分布式六大主流问题进行多方案对比解析,多场景实战讲解,让大家深度掌握分布式原理和实战。我将...阅读全文

博文 2023-12-21 15:24:24 udbmaidns

基于Consul的服务发现 - prometheus

Consul是由HashiCorp开发的一个支持多数据中心的分布式服务发现和键值对存储服务的开源软件,被大量应用于基于微服务的软件架构当中。Consul初体验用户可以通过Consul官网https://www.consul.io/downloads.html下载对应操作系统版本的软件包。Consul与Prometheus同样使用Go语言进行开发,因此安装和部署的方式也极为简单,解压并将命令行工具放到系统PATH路径下即可。在本地可以使用开发者模式在本地快速启动一个单节点的Consul环境:$ consul agent -dev==> Starting Consul agent...==> Consul agent running! Version: 'v1.0.7' Node ID: 'd7...阅读全文

【完结26章】Java主流分布式解决方案多场景设计与实战

【完结26章】Java主流分布式解决方案多场景设计与实战 给大家分享一套java课程——Java主流分布式解决方案多场景设计与实战,已完结26章,附源码+文档下载。 Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下: Client客户端:负责存储协议的接入,节点负载均衡 MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map MDS元数据服务:负责保存文件系统的元数据,管理目录结构 OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。 分布式文件系统(D...阅读全文

博文 2023-12-22 11:30:36 woaiwodejia333

分布式系统中的分布式链路追踪与分布式调用链路

本文分享自天翼云开发者社区《分布式系统中的分布式链路追踪与分布式调用链路》,作者:c****w在分布式系统中,由于服务间的调用关系复杂,需要实现分布式链路追踪来跟踪请求在各个服务中的调用路径和时间消耗。这对问题排查和性能监控都很重要。常用的分布式链路追踪实现有基于日志的和基于分布式追踪系统的两种方式:基于日志的实现方式是在每个服务中记录自己的请求id和上下文信息,并在日志中打印出来。这样可以通过聚合各个服务的日志来还原整个请求链路。基于分布式追踪系统的实现方式是:使用开源Tracing系统,比如Zipkin。每个服务都需要集成Tracing客户端库。客户端在发起请求时,生成一个唯/一的TraceId并传递给下游服务。每个服务接收到请求都需要记录Span数据,包括操作名、时间戳等。所有Span...阅读全文

博文 2024-01-19 18:30:51 Tianyiyun

Ceph的crush算法与一致性hash对比介绍

本文分享自天翼云开发者社区《Ceph的crush算法与一致性hash对比介绍》,作者:l****n首先,我们先回顾下一致性hash以及其在经典存储系统中的应用。一致性hash的基本原理一致性hash的基本思想是,有一个hash函数,这个hash函数的值域形成了一个环(收尾相接:the largest hash value wraps around to the smallest hash value),然后存储的节点也通过这个hash函数随机的分配到这个环上,然后某个key具体存储到哪个节点上,是由这个key取hash函数对应到环的一个位置,然后沿着这个位置顺时针找到的第一个节点负责这个key的存储。这样环上的每个节点负责和它前面节点之间的这个区间的数据的存储。​如上图所示,hash函数的总...阅读全文

博文 2024-04-23 15:52:34 Tianyiyun

上榜!天翼分布式云操作系统入选“科创中国”先导技术榜单!

在近日召开的第二十六届中国科协年会上,中国科协正式发布2023年“科创中国”系列榜单,榜单包括先导技术榜、新锐企业榜、融通创新组织榜、技术经理人先锋榜等。天翼云自主研发的天翼分布式云操作系统入选先导技术榜,充分展现了在科技创新方面的硬实力。​“科创中国”系列榜单由中国科协设立。2023年“科创中国”系列榜单聚焦“技术攻关+成果转化+组织赋能+人才支撑”全过程创新生态链,挖掘一批前沿技术成果、潜力型科创企业、产学研协同创新组织、技术转移转化人才,打造特色与引领兼备的榜单品牌。其中,先导技术榜遴选出具有产业先导意义和广阔市场前景的前沿技术。天翼分布式云操作系统的成功入选,代表了权威机构对天翼云科技创新能力的高度认可。天翼分布式云操作系统TeleCloudOS(简称:云操作系统)核心组件自研,突破...阅读全文

博文 2024-07-15 16:43:17 Tianyiyun

redis渐进式rehash

本文分享自天翼云开发者社区《redis渐进式rehash》,作者:l****nRedis是k-v型数据库,其内部设计了一种dict类型的数据结构用来存储键值结构。dict 通常的存储结构是 Key-Value 形式的,通过 Hash 函数对 key 求 Hash 值来确定 Value 的位置,因此也叫 Hash 表,是一种用来解决算法中查找问题的数据结构,默认的算法复杂度接近 O(1)。使用哈希表总是会遇到哈希碰撞问题,dict使用拉链法将发生碰撞的元素组成链表,挂在发生碰撞的桶下,但是随着存储元素的不断增加,碰撞发生的几率也不断增大,一个桶下链接的链表长度越来越长,定位一个key的时间复杂度就无法保证了,redis作为内存数据库,本身追求的是更高的处理性能,线性增加的耗时无疑是不能接受的,...阅读全文

博文 2024-08-02 16:55:12 Tianyiyun

分布式系统心跳机制(一)

本文分享自天翼云开发者社区《分布式系统心跳机制(一)》,作者:白杨分布式系统架构当前大部分分布式系统架构如下图:​有一个中心节点来存储集群元数据和管理work儿节点,中心节点采用主备模式来实现HA。当中心节点主故障后,备节点接管业务成为主节点。我们下面讨论的心跳机制就是基于这种分布式架构而设计的。心跳设计目标:1.master控制节点的切换,不可以影响server的心跳。2.server可以感知到master的每一次切换。3.master在任意场景下都不会丢失server故障的事件。4.心跳可以作为其它控制消息是否需要重试的依据。心跳Clien端设计:​a.worker2启动后只有master的列表,并不知道哪个是leader,因此先广播bootstrap信息。b.只有leader节点响应b...阅读全文

博文 2024-07-31 11:25:40 Tianyiyun

【完结14章】MQ大牛成长课--从0到1手写分布式消息队列中间件

【完结14章】MQ大牛成长课--从0到1手写分布式消息队列中间件 消息中间件是一种用于构建分布式系统的软件基础设施,提供了一种异步的,可靠的,可伸缩的消息传递机制。 提高系统性能首先考虑的是数据库的优化,但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所有我们一般会尽量把流量都挡在数据库之前。 不管是无限的横向扩展服务器,还是纵向阻隔到达数据库的流量,都是这个思路。阻隔直达数据库的流量,缓存组件和消息组件是两大杀器。 什么是消息队列 消息队列(Message queue,简称MQ),是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。从字面理解就是一个保存消息的一个容器。 常见的消息队列 当前使用较多的消息队列有RabbitMQ、RocketM...阅读全文

博文 2024-09-24 14:57:24 woaidaqipaiqiu1122

NestJS从拔高到精通,大型复杂业务架构落地实践

xia仔ke:itazs.fun/13402/ 一、NestJS 简介 NestJS 是一个基于 Node.js 的渐进式框架,用于构建高效、可维护和可扩展的服务器端应用程序。它结合了面向对象编程(OOP)、函数式编程(FP)和响应式编程(RP)的最佳特性,深受 Angular 开发者的喜爱,因为它的架构和概念与 Angular 有很多相似之处。 核心概念 模块(Modules):NestJS 应用程序是由模块构建的。模块是一个带有@Module()装饰器的类,这个装饰器提供了元数据,用于组织应用程序的结构。例如,一个典型的模块可能包含控制器(Controllers)、服务(Services)、提供者(Providers)等。模块可以导入其他模块,实现功能的复用和组合。 控制器(Contro...阅读全文