热门问题-技术问答-汇集知识碎片解决技术难题-阿里云开发者社区-阿里云

最巧的是最近在学习JavaCloud的过程中学习到了Elasticsearch,又碰巧在活动中看到了这样一本开发宝典,我更加是怀着激情把它打开,希望可以让我更加加深对ES的理解,读了《Elastic(中国)基础开发宝典》我又好好的对它重新的认识了一下,也有了下面的一些感悟。 为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案,ES的索引库管理支持依然是基于Apache Lucene(TM)的开源搜索引擎。 ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐Lucene的复杂性,从而让全文搜索变得简单。总的来说,ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易。基于这些特点比如分布式的实时文件存储、分布式全文搜索引擎,每个字段都被索引并可被搜索、能在分布式项目/集群中使用、本身支持集群扩展,可以扩展到上百台服务器、处理PB级结构化或非结构化数据、简单的 RESTful API通信方式、支持各种语言的客户端、基于Lucene封装,使操作简单,我认为ES是可以碾压其他全文搜索引擎的。ES的安装比较简单,只需要官方下载ES的运行包,然后启动ES服务即可。也给Java用户提供了两种内置的客户端以供使用,还可以使用Kibana5K为 ElasticSearch 提供的数据分析的 Web 接口(5601)。可使用它对日志进行高效的搜索、可视化、分析等各种操作。我们使用restful风格对他进行定义,再加上ES的核心概念:Near Realtime(NRT)、Index:索引库、Type:类型、Document&field,这样可以更好的理解它,通过ES的集群更高效的为微服务提供服务,自定义好分词器也可以更好的利用它。

趣多多Echo 评论 0

传闻

第二关没有玩过去的路人,据传闻羊了个羊第二关大概有四十四张牌,如果以三张牌互消的原则,必定是无法通关,据说可以通关是因为运气,让牌数能够被三整除,也就是四十二张或者四十五张,不过我从游戏图片看,牌怎么也应该是八十几张才对。 也有些博主写了文章表达整个羊了个羊的游戏机制,不过这里我们要实现的是能够成功的游戏,也就是实现随机排布但是保证有解。 248467189283306920.jpg

四十二个捣蛋鬼

这里我就假设第二关有四十二张牌,因为下面有七个格子,四十二正好可以被三和七整除。 我们将四十二张牌,首先整理成规整的二维数组,类似[[a,a,a],[b,b,b]...[g,g,g]]的格式,只要能够将凌乱的数据整理成这种格式,那就算成功。 不过为了更改好看,也是美观,我想将二维数组转换成json,能够更加直观,诸如这种格式。

[
	{
  	"name":"萝卜",
  	"value":1
	},
	{
  	
  	"name":"白菜",
  	"value":1
  }
]

回到游戏中,我们不难发现四十二张牌被分成了四堆,下面的三个牌堆,我们分别拟定其为9,3,3,9组合,一共二十四张,而上方的牌堆则应该有十八张牌,再假设这五堆牌分别为abcde,这个时候,我们的json数据就可以发生改变了。

[
	{
  	"name":"萝卜",
  	"value":1,
  	"heap":"a"
	},
	{
  	
  	"name":"白菜",
  	"value":1,
  	"heap":"b"
  }
]

而不同的牌堆,又分为不同的层级,我们还需要给数据再加上层级这一对象,同时为了明确卡牌是否被消除,是否被放在下方卡槽中以及是否出现在玩家视线中,我们也需要对其进行标记。

[
	{
  	"name":"萝卜",
  	"value":1,
  	"heap":"a",
  	"level":3,
  	"clean":false,
  	"card_in":false,
  	"out_view":true
	},
	{
  	
  	"name":"白菜",
  	"value":1,
  	"heap":"b",
		"level":2,
  	"clean":false,
  	"card_in":true,
  	"out_view":false
  }
]

躲藏的捣蛋鬼

当日上面的数据依旧是无法满足的,因为卡牌是堆积叠在一起的,9339的卡牌需要满足嵌套的关系,而18卡牌的需要满足多对多的关系-类似倒立的金字塔结构。 所以我们可以将上面属于9339的json打成四个json数据,实现所谓的嵌套效果,而针对18卡牌则需要进一步处理,为其设计父和子的数据,而且需要保证一个父最多四个子,因为一个卡牌最多被遮住四个卡牌的四分之一,而且为了保证金字塔效果,我们还需要为数据设置一个边的数据,为边的卡牌最多只能有两个子类,也就是最多遮住两个牌的四分之一。

[
	{
  	"name":"萝卜",
  	"value":1,
  	"heap":"a",
  	"level":3,
  	"clean":false,
  	"card_in":false,
  	"out_view":true,
  	"parent":001,
  	"children":023,
  	"side":true
	},
	{
  	
  	"name":"白菜",
  	"value":1,
  	"heap":"b",
		"level":2,
  	"clean":false,
  	"card_in":true,
  	"out_view":false,
  	"parent":021,
  	"children":002,
  	"side":false
  }
]

当边的卡牌card_in变为true的时候,其子的side就自动变成true,而且需要满足out_view的真假和side一致,也需要满足parent的level必须在children的下面,最后能够呈现这样的数据,应该是可以满足随机排布但是保证有解。

离原 评论 0

过去人们提到网络安全,都觉得离自己很远,跟自己没关系,现在提到网络安全,几乎没有人不知道的。网络安全可大可小,往大了说网络安全可以是国家安全,国家信息安全,国防安全;往小了说网络安全其实也就是个人信息安全,比如你的个人身份信息,住址信息,手机号,银行卡号,支付宝账号等等,甚至还包括一些你意识不到的安全信息,比如前段时间滴滴上市闹出来的涉及到的乘客出行网络信息安全问题,其实主要说的就是个人出行的行程信息,也许个人觉得行程信息没有意义,但是通过大数据分析个人行程信息,是可以更加丰富个人的用户画像的,个人的活动区域,行为习惯什么的就全都了然了,所以说网络安全已经不再离我们很遥远,而是离我们很近,近到和每个人的生活都息息相关。再说到工作上,日常工作中遇到的DNS防御,XSS过滤,HTTPS安全协议,SSL安全协议等等都是应对网络安全产生的,项目部署在服务器上,有防火墙,ip黑名单等也都是应对网络安全问题的处理方案。那么再说到阿里云安全,虽然本人不是安全方面的工程师,但是多少也知道些阿里云安全的技术,比如安全加速SCDN、安全管家、云安全中心、安骑士、流量安全、DDoS基础防护等,整体来说,对于中小企业,甚至于大公司来说,直接采用阿里云的服务器,配置阿里云专业团队的安全防护体系,网络安全问题就不用担心了,我们公司部分业务就是放在阿里云服务器的哈哈哈

六月的雨在钉钉 评论 0

2

回答

25

回答

兮叶William 2022-05-03 23327浏览量 回答数 25

云服务稳定运行是企业发展的重要保障。云服务稳定性保障一直是个热门的话题。也是云服务维护侧重点儿。 <<云上业务稳定性保障实践白皮书>>这本书在理论概念上阐述了什么是稳定性?以及故障的概念。并且介绍了稳定性相关的指标,列举了对应的案例。进而从故障管理体系入手介绍了故障等级的定义和分体系,着重讲述了故障管理全流程。通过建立全流程闭环的故障管理体系,从故障发现、故障应急、故障快恢等方面配合技术手段的提升,来降低故障发生的几率;从故障复盘,改进追踪等方面建立一个可遵循规范,从而有效的维护云服务的稳定性。然后讲述了变更管控体系:介绍了变更标准流程规范,着重介绍了,准入、灰度、观测、回滚、数据记录上报等变更管控动作。然后 着重介绍了游戏业务稳定性保障的实践,直播业务稳定性保障的实践,平台网站业务稳定性保障实践。从多个方面多个角度讲解阐述稳定性保障实践过程和注意事项。 稳定性是一个长期、持续化的建设过程。一方面需要通过实践经验的不断积累,输出体系化的标准和流程,建立科学有效的稳定性评估提升量化标准,另一方面也需要不断提升数字化、工具化能力,让稳定性提升有数据可依托,让故障应急响应流程从由人工驱动升级到由平台系统驱动,应急响应人员可以更专心地处理故障,缩短故障恢复时间。

快乐的嘟嘟 评论 0

常见的数据库有这几种?

关系数据库

  • MySQL、MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)、Percona Server(MySQL的代替品)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables,Oracle

非关系型数据库

  • MongoDB,CouchDB、键值(key-value)数据库

MySQL数据库

  • 它是以“客户/服务器”模式实现的,是一个多用户、多线程的小型数据库服务器。而且MySQL是开源数据的,任何人都可以获得该数据库的源代码并修正MySQL的缺陷。MySQL具有跨平台的特性,它不仅可以在Windows平台上使用,还可以在UNIX、Linux和MacOS等平台上使用。相对其他数据库而言,MySQL的使用更加方便、快捷,而且MySQL是免费的,运营成本低,因此,越来越多的公司开始使用MySQL。

MongoDB数据库

  • 语法有点类似于面向对象的查询语言,数据结构非常松散,类似JSON的bjson格式,还是一个开源数据库,并且具有高性能、易部署、易使用、存储数据非常方便等特点

Oracle

  • Oracle数据库具有运行稳定、功能齐全、性能优异等特点,在数据库产品中技术也比较先进,一般大型企业都会选择Oracle数据库。

  • 在公司中或者自己在学习当中,最常用的就是MySQL数据库和MongoDB,在自己项目中,最常用的还是MongoDB数据库。

问题?

  • mysql 高并发环境解决方案?
  • 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
  • 非关系型数据库和关系型数据库区别,优势比较?
  • 阿里云数据库(RDS)是什么,与传统数据库有什么区别?
  • 阿里云PolarDB数据库在云原生方面优势如何?未来发展方向,性能和mysql对比
小周sir 评论 0

这两天读了阿里云出的《Apache Flink 案例集(2022版)》这本小册,各种企业公司在数据集成、数据分析、人工智能、云原生以及企业数字化转型等应用场景中使用,这点我们首先需要了解到什么是Apache Flink?Apache Flink是一个分布式大数据计算引擎,可以对有界的数据和无界的数据进行有状态的计算,可部署在各种集群环境中,对各种大小数据规模进行快速计算。 在Flink的设计理念中,将数据分为有界数据和无界数据 - 有界数据:定义了数据的开始和结束,也就是批处理的本质; - 无界数据: 数据定义了开始,但是没有结束,因此需要连续不断的处理计算,如基于事件的有序驱动。 Apache Flink的优势: - 可以处理高吞吐量的事件流 - 处理随时产生的事件,始终保持低延迟 - 高效、易于使用的k/v结构的state - 真正的流处理框架。一次处理一个事件,每个事件都有自己的时间窗口。 - 丰富的编程模型可以很容易地实现复杂的语义。对比微批处理,在事件流上进行推理更容易。 Apache Flink在企业中经常被使用,得到大厂一致好评。大数据开源生态组件众多、架构复杂度高的问题已经被诟病了很多年,如今业界似乎已经在一定程度上达成共识,即通过融合、一体化来推动数据架构往简化的方向演进,每个企业都有自己的说法,真正解决业务的问题,还得看具体实现技术方案。

小周sir 评论 0

18

回答

丑怪 2022-05-24 19376浏览量 回答数 18

18

回答

游客wnypx24nbhoxq 2022-04-27 18890浏览量 回答数 18

19

回答

学习 spring cloud,可以使用在线方式,比如:spring cloud教程。 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

编程宝库 评论 0

15

回答

一梵 2022-05-17 17407浏览量 回答数 15

17

回答

15

回答

5avixdguawgy2 2022-05-18 17268浏览量 回答数 15

26

回答

14

回答

何为云原生,首先需要理解什么是云原生,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。而云原生的架构可以规划为模块化可观察可部署可测试可替换可处理6特质,从技术角度来看,云原生重心点从"资源"转换为"应用"的必然结果,资源为中心的云计算关注资源如何虚拟化,典型的代表计算,网络,存储基础设施,而以"应用"为中的云原生技术则关注应用如何使用云环境,使用户能够在云环境下快速开发部署和交付云原生应用。 云原生要素**:容器、DevOps、微服务、持续交付**。

**容器:**一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行,Docker是容器的一种

**DevOps:**为云原生提供持续交付能力

**微服务:**一种用于构建应用的架构方案,.简单的说就是其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。 ** 持续交付:**持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型

总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

小周sir 评论 0

前端开发是一个入门门槛低,但进阶难度大的岗位。如果你是从零入门前端开发,那么这条路线或许对你有些帮助。 - 入门基础:HTML+CSS+javaScript: - 学习 HTML(超文本标记语言)标签,熟悉 HTML5 新特性,学会使用各种标签呈现网页内容,包括文字、图像、音视频、以及程序,能快速使用html,css,javaScript编写网页,实现页面动画效果。

  • 前端进阶: 前端工程化和三大框架

    • 前端工程化的出现,彻底改变了传统的开发模式,让前端形成了一套开发体系和工作流,制定了更多开发流程,工具,技术栈等规范化,提供了多人开发效率和降低成本。当进入前端进阶这阶段,你需要了解更多或者使用更多库,框架,构建管理工具,CSS/JS 模块化开发等,对于开发者来说,这些是必备的, 了解过前端三大框架——Vue、React 和 Angular,还有小程序跨端框架 Uni-app(Vue)、Taro(React 和 Vue)等等,这些东西不需要精通,但需要了解,并且擅长使用其中一个及以上。
  • 高阶阶段:寻找自己发展道路

    • 往往这个阶段,不会发现,不仅仅是web开发,前端还可以做更多东西,而自己的能力不仅仅能解决前端问题,还得学会后端一些语言,产品一些规划,成为一个大前端,一个全栈前端呈现在自己身边,有时候也会考虑到其他方向发展,人工智能,后端,游戏开发等等都是需要自己认真考虑的问题。
  • 如果你已经做好学习程序员这个行业了那也一定要做好终生学习的准备,并且高效的学习。毕竟技术和框架发展迭代的非常快,往往就是旧的还没有钻研渗透,新的框架又出来了,只有持续不断的高效学习,积累经验是程序员家常便饭。

  • 对于即将参与工作的朋友,可以通过每天刷题的形式,保持每天都有又一定的代码产生,自己还可以通过搭建自己的博客,网站等实例项目积累经验,或者开源一套项目上传到GitHub上,这些在面试都是自己的加分项,保持每天代码数量不仅仅可以提升自己的代码质量,还可以积累写代码的经验,以后遇到问题,就可以非常快速的定位到问题的原因并解决问题。

寻找适合自己开发方向是每个前端都应该考虑的问题,可以自己慢慢往全栈方面发展,慢慢让自己独挡一面的工程师。比如自己编写一套自己的组件库,把自己的想法开源出去。前端这个行业毕竟和用户最为接近的职业,毕竟注重设计美观和交互效果吗,更多强调用户体验效果,前端更加注重用户体验,写代码是一种艺术活,当我遇到问题的时候,首先考虑自我解决,养成独立思考和解决能力的问题,最后实在不行再向别人提问,这些都是你成长必备的能力。

最后附上一张前端知识图谱,

前端知识图谱.png

小周sir 评论 0