一.引言 k8s提供了一下四种方式来暴露端口,分别是: ClusterIP,仅供集群内部访问 NodePort,端口映射,给node随机分配端口,然后由service进行代理 LoadBalancer,负载均衡模式,一般由云服务商提供负载均衡策略 Ingress,网关模式,使用自定义的http(s)路由规则对Service进行代理。这也是实际生产中普遍使用的模式。 Ingress模型如下: 二.基于minikube的实践 由于笔者条件有限,这里基于minikube进行实践 1.启用ingress插件,检查验证NGINXIngress控制器处于运行状态 启动插件 ➜minikubeaddo...

  YIAvHNXRoHRe   2023年11月02日   89   0   0 云计算

1.准备 先从github官网上cloneelasticsearch源码到本地,选择合适的分支。笔者这里选用的是7.4.0(与笔者工作环境使用的分支一致),此版本编译需要jdk11。 2.编译 Readme中说明了编译命令 ./gradlewassemble 执行此命令,等待1h左右即可,根据机器性能可能会有差异 >Task:x-pack:plugin:sql:qa:compileJava 注:/Users/xxx/IdeaProjects/elasticsearch-my/x-pack/plugin/sql/qa/src/main/java/org/elasticsearch/xpac...

  YIAvHNXRoHRe   2023年11月01日   62   0   0 Java

1.一般建议   a.不要返回过大的结果集。这个建议对一般数据库都是适用的,如果要获取大量结果,可以使用search_afterapi,或者scroll(新版本中已经不推荐)。   b.避免大的文档。 2.如何提高索引速度   a.使用批量请求。为了达到最好的效果,可以进行测试,递增地提高bulk的数量,比如从100,到200,再到400,达到一个吞吐量和响应时间的平衡。   b.使用多线程发送数据。   c.关闭或者减小refresh_interval。从内存缓存写入磁盘缓存(memorybuffer->filesystemcache),这个过程叫做refresh。在这个过程之前内存缓...

  YIAvHNXRoHRe   2023年11月01日   75   0   0 Java

1.前言 众所周知,Java是一门跨平台语言,针对不同的操作系统有不同的实现。本文从一个非常简单的api调用来看看Java具体是怎么做的. 2.源码分析 从FileInputStream.java中看到readBytes最后是native调用 / Readsasubarrayasasequenceofbytes. @parambthedatatobewritten @paramoffthestartoffsetinthedata @paramlenthenumberofbytesthatarewritten @exceptionIOExceptionIfanI/Oerrorhasoccurre...

  YIAvHNXRoHRe   2023年11月01日   85   0   0 Java

1.前言 相信许多开发同学看过《深入理解java虚拟机》,也阅读过java虚拟机规范,书籍和文档给人的感觉不够直观,本文从一个简单的例子来看看jvm是如何工作的吧。 本文所有操作均在mac上进行。 2.示例代码 示例代码采用最常见的双重检索单例模式: packageinterview.desginpattern.singletion.doublecheck; importjava.io.Serializable; publicclassSingletonimplementsSerializable{ privatestaticvolatileSingletoninstance=null; ...

  YIAvHNXRoHRe   2023年11月01日   97   0   0 Java

一.概述 分布式系统存在网络,时钟,以及许多不可预测的故障。分布式事务,一致性与共识问题,迄今为止仍没有得到很好的解决方案。要想完美地解决分布式系统中的问题不太可能,但是实践中应对特定问题仍有许多可靠的解决方案。本文不会谈及诸如BASE,CAP,ACID等空泛的理论,只基于实践中遇到的问题提出可行的解决方案。 二.常见问题 1.读自己的写 现象:用户在发布页发布了帖子,然后访问自己的主页查看帖子列表,并没有马上看到自己刚刚发布的帖子,等待12s后才看到 分析:后端db采取主从结构,复制任务在负载较高的情况下会有延迟。用户读取帖子列表查询的是从节点,所以无法及时看到刚刚发布的帖子。一般情况下延迟...

  YIAvHNXRoHRe   2023年11月01日   70   0   0 架构设计

1.概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP,FLP等理论,提出了很多一致性模型,Paxos是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举算法,并且为分布式事务提供了部分的支持。本文从常见的几种分布式存储系统看看实践中的分布式系统设计细节。理论结合实际,能更好地帮助我们加深理解。 2.分片 先来看看分片的定义: Theword“Shard”means“asmallpartofawhole“.HenceShardingmeans dividingalargerpa...

  YIAvHNXRoHRe   2023年11月01日   114   0   0 架构设计

一.前言 从上个世纪到现在,工程师们在优化服务器性能的过程中,提出了各种不同的io模型,比如非阻塞io,io复用,信号驱动式io,异步io。具体io模型在不同平台上的实现也不一样,比如io复用在bsd上可以由kqueue实现,在solaris系统上可以由/dev/poll实现。为了实现系统的可移植性,POSIX确保select和poll在unix-like系统上得到广泛的支持。 在上个世纪,DanKegel提出了C10K的设想,现在C10K已经不是什么问题,比如nginx就可以做到百万级别的qps。于是又有人提出来了C10M的设想,RobertDavidGraham从unix的最初设计初衷给出...

  YIAvHNXRoHRe   2023年11月01日   92   0   0 Linux

一.导言 随着容器技术的发展,软件界对容器管理的需求越来越迫切,于是出现了一些kubernetes(即k8s),dockerswarm等容器管理软件。同时k8s等服务编排软件也让微服务变得可行,快速扩容缩容,自动处理网络配置等特性也让k8s如火如荼。 k8s能做什么? 服务发现和负载均衡,使用dns或者ip对外暴露容器服务,并提供负载均衡 存储管理,多种存储选择 拟态扩容缩容,根据需求扩容,缩容,并且k8s会尽力达到desiredstate 自动装箱,比如配置每个容器能使用的CPU和RAM资源,k8s将容器分配到合适的节点以最大化利用系统资源 自动处理故障,当容器失效时,能快速处理,并且不会...

  YIAvHNXRoHRe   2023年11月01日   105   0   0 Kubernetes

1.背景描述 es在本公司承载三个部分的业务,站内查询,订单数据统计,elk日志分析。 2020年团队决定对elasticsearch升级。es(elasticsearch缩写,下同)当前版本为1.x,升级到5.x版本。 5.x支持如下新特性: 支持lucene6.x,磁盘空间少一半,索引时间少一半,查询性能提升25% Javarestclient(highlevelapi) Painless脚本相比groovy脚本,更安全,更简洁,更好的性能   对于站内查询和订单数据统计,当前业务架构是 mysql->canal->kafka->(esIndexserver)-...

  YIAvHNXRoHRe   2023年11月01日   424   0   0 大数据

一.引言 kafka是广泛使用的流处理组件,我们知道怎么使用它,也知道它的实现原理。但是更重要的部分是它的设计理念,即kafka设计者当时是如何考量各种方案的,了解这些,对提升我们的设计能力非常有帮助。 二.动机 我们将Kafka设计为一个统一平台,来处理大型公司可能拥有的所有实时数据流。为此,我们必须考虑相当广泛的用例集。 它必须具有高吞吐量,才能支持大容量事件流,例如实时日志聚合。 它需要优雅地处理大量积压数据,以便能够支持离线系统的周期性数据负载。 系统必须保证low-latencydelivery,才能处理更传统的消息传递用例。 我们希望支持分区、分布式、实时处理,基于旧的事件流创...

  YIAvHNXRoHRe   2023年11月01日   125   0   0 大数据
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~