首页 文章 精选 留言 我的

精选列表

搜索[最权威安装],共10026篇文章
优秀的个人博客,低调大师

简单的clean架构实践

参考 参考的是学习 CleanArchitecture 心得体会 参考的代码是brzhang的项目 Clean架构 一直都想学Clean架构,今天终于实践了一个简单的CleanDemo,对Clean架构有了进一步的认识。其实Clean就是在MVP架构的基础上做进一步的分层,让每一层更薄,使得代码复用性更高,更易于测试,耦合度更小。 但是最大的缺点就是要定义很多类,很多接口,就一个小小的连个界面,几个简单的功能也要写很多代码,如果用在小项目上的话感觉有点大材小用,所以这种架构一般应用于中大型项目更划算吧。不过应用于小项目拿来练手也是可以的 对架构的简单理解 先上googlesample的图 googleSample uncle-Bob的图 uncle-bob 其实两幅图大体是一样的,主要分三层,分别是DataLayer,DomainLayer,PresentationLayer,依次由低到高,每一层只依赖它的下面一层,而且用上响应式编程如rxjava的话,一般是DataLayer,DomainLayer提供或进一步封装可被观测的对象,PresentationLayer是观测者,不过我看了几个例子都是用了响应编程了 DataLayer 例如这个目录 dataLayer 核心repository 具体结构 数据层,最底层,一般这个层是提供原始的数据接口的,方便给DomainLayer提供数据,至于它怎么实现获取数据,DomainLayer就不用管,你调用就是。可以看到上面核心的还是要有个Repository这个类,但因为界面要用的数据来源可以是本地数据库(Local),也可以使网络获取(remote)的。这种情况缓存功能会遇到,这样就是可像上图那样定义一个接口,然后定义不同实现这个接口的类,一个local的,一个remote的。至于具体怎么实现,那就随便你使用哪种方式了,比如可以数据库框架Realm,Room,GreenDao,网络请求比如Retrofit,Okhttp3那些。而且这一层有个特点,如果不使用数据库(因为用数据库肯定会用到Android的Context),那么这一层代码是不涉及Android库的,这样的话可以直接用Junit测试这一层。 DomainLayer domain 中间层,他完全不知道有一个PresentationLayer存在,只知道有DataLayer,他可以基于这些数据,做进一步的处理封装,对,主要职责就是控制DataLayer对数据做增删改查。 比如这有个例子 public Observable<List<SampleModel>> getDatasFromMutil(){ return Observable.concat(localSampleRepository.lists(100,1),remoteSampleRepository.lists(100,1)) .first(new Func1<List<SampleModel>, Boolean>() { @Override public Boolean call(List<SampleModel> sampleModels) { // TODO: 2017/10/6 这里可以做一缓存设置,比如缓存时间 Log.d(TAG, "call: >>>>>有无缓存?"+(sampleModels!=null&&sampleModels.size()>0)); return sampleModels!=null&&sampleModels.size()>0; } }).doOnNext(new Action1<List<SampleModel>>() { @Override public void call(List<SampleModel> sampleModels) { // 缓存在数据库 Realm realm = Realm.getDefaultInstance(); realm.beginTransaction(); realm.copyToRealmOrUpdate(sampleModels); realm.commitTransaction(); } }); } 这个方法就是一个Case类里的,功能就是如果本地数据库有缓存的数据就直接取出这个数据并返回,如果没有就从网络获取,并且把请求的数据缓存到本地数据库,这个使用了Rxjava的first,concat操作符来实现,十分巧妙。说到底就是对DataLayer层数据的进一步封装,当然不同的业务你可以灵活定义多个Case分开,如果不涉及Android数据库或SP的话,也是没有Android的代码的 PresentationLayer 显示层 这一层可以做进一步的分层,比如VP层,VVM层,和通常的MVP,MVVM用法差不多

优秀的个人博客,低调大师

简单易懂的SpringCloudSleuth教程

事务mapjvm 大佬对下面的说法是否同意呢 能否比较下zipkin,pinpoint,以及skywalking。该如何选型 回答: 他们都提供了分布式服务跟踪的能力,pinpoint以及skywalking不仅仅提供了分布式服务跟踪的能力,还提供了其他性能监控,是一个APM解决方案。zipkin主要是分布式服务跟踪,同时与SpringCloud进行有效的集成。个人觉得pinpoint以及skywalking部署相对麻烦一些。 江湖上都推荐pingpointzipkin的监控易于搭建,但是监控的东西很简单 pinpoint偏向于中等的分布式规模,拓扑和关系不会做的很深,会限制深度。优势是做的时间比较长,理论上稳定一些。缺点是hbase本身就是一个重度运维中间件,要考虑自身情况 skywalking会倾向于微服务的分布式系统,为自研的探针提供了完善的接入支持,我们目前就在给当当做这个接入当时的支持。同时我们会着重比如服务的依赖关系,服务的统计指标。 我们对于应用,只需要配置应用id,不需要实例id,对容器环境毕竟k8,linkerd友好 zipkin强在生态和范围,国外的绝大多数组件都提供了集成方案,只需要少量修改代码或者配置就可以。 比如linkerd原生就支持zipkin 部署上如果你容量不大,pinpoint负担最大,因为hbase,zipkin和skywalking差不多。存储都可以用es 另外,zipkin和skywalking属于opentracing规范体系下,可以共享相同的手动埋点api,skywalking针对非rpc埋点,甚至只需要标注就可以,零开发成本。而pinpoint是必须学习开发插件的。 这基本上是目前的情况。 不算自己的东西,相对pinpoint,我肯定会喜欢zipkin。我能说不喜欢棒子和他们不靠谱的社区行为么… 还是feign的作者。opentracing起草者之一。 现在数据库水平分片有用mycat的么。。。大部分都是使用sharding-jdbc么。。。mycat坑太多坑的你生不如死 随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果。 在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路。那么就带来一系列问题,在业务规模不断增大、服务不断增多以及频繁变更的情况下,如何快速发现问题?如何判断故障影响范围?如何梳理服务依赖以及依赖的合理性?如何分析链路性能问题以及实时容量规划?面对上面这些问题,Spring Cloud Sleuth提供了分布式服务跟踪解决方案。 目录: 一、为什么需要以及什么是分布式服务跟踪系统 二、分布式服务跟踪:SpringCloudSleuth 三、分布式服务跟踪系统其他解决方案 一、为什么需要以及什么是 分布式服务跟踪系统 为什么需要分布式服务跟踪系统 随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂。 可以看到,随着业务的发展,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或者错误都有可能引起请求最后的失败。同时,缺乏一个自上而下全局的调用id,如何有效的进行相关的数据分析工作?对于大型网站系统,如淘宝、京东等电商网站,这些问题尤其突出。 什么是分布式服务跟踪系统 分布式服务跟踪是整个分布式系统中跟踪一个用户请求的过程(包括数据采集、数据传输、数据存储、数据分析、数据可视化),捕获此类跟踪让我们构建用户交互背后的整个调用链的视图,这是调试和监控微服务的关键工具。Spring Cloud Sleuth是Spring Cloud为分布式服务跟踪提供的解决方案,有了它,我们可以: 提供链路追踪,故障快速定位:可以通过调用链结合业务日志快速定位错误信息。 可视化各个阶段耗时,进行性能分析 各个调用环节的可用性、梳理服务依赖关系以及优化 数据分析,优化链路:可以得到用户的行为路径,汇总分析应用在很多业务场景。 下面我们来看一个典型的分布式系统请求调用过程,如下图所示: 分布式服务跟踪系统的设计 分布式服务跟踪系统设计目标 低入侵性,应用透明:即作为也业务组件,应当尽可能少入侵或者无入侵其他业务系统,对于使用方透明,减少开发人员的负担。 低损耗:服务调用埋点本身会带来性能损耗,这就需要调用跟踪的低损耗,实际中还会通过配置采样率的方式,选择一部分请求去分析请求路径。 大范围部署,扩展性:作为分布式系统的组件之一,一个优秀的调用跟踪系统必须支持分布式部署,具备良好的可扩展性。 埋点与生成日志 埋点即系统在当前节点的上下文信息,可以分为客户端埋点、服务端埋点,以及客户端和服务端双向型埋点。埋点日志通常要包含以下内容traceId、spanId、调用的开始时间,协议类型、调用方ip和端口,请求的服务名、调用耗时,调用结果,异常信息等,同时预留可扩展字段,为下一步扩展做准备; 收集和存储日志(主要支持分布式日志采集的方案,同时增加MQ作为缓冲) 分析和统计调用链路数据,以及时效性 展现以及决策支持 二、分布式服务跟踪: SpringCloudSleuth 快速入门 在引入Sleuth之前,我们需要做一些准备工作,具体如下所示: 服务注册中心(eureka-server) 微服务应用分别为trace1和trace2(它们都有一个REST接口,其中trace1通过RestTemplate调用trace2的REST接口) 微服务应用trace1和trace2项目基本一样(除配置端口、应用名称和REST的Path),以trace1为示例: pom.xml文件增加依赖(如下所示) 主要代码: 配置文件 运行结果,日志没有没有跟踪信息 我们在浏览器或者postman通过http://localhost:8080/trace1,可以返回trace2相应接口的内容,同时我们看到控制台并没有跟踪信息打印,微服务应用trace1和trace2的日志信息具体如下图所示: 添加跟踪依赖 ,日志信息存在跟踪信息 如何为上面的trace1和trace2添加服务跟踪功能呢?SpringCloudSleuth对于此进行封装,使得我们为应用增加服务跟踪能力的操作非常简单,满足前面所说设计目标(低入侵,应用透明),只需在trace1和trace2的pom.xml依赖管理中增加Spring-cloud-starter-sleuth依赖即可,具体如下所示: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> 添加sleuth依赖后,分别重启trace1和trace2,再次通过浏览器或者postman调用http://localhost:8080/trace1,可以返回trace2相应接口的内容,同时我们看到控制台日志已经存在跟踪信息,微服务应用trace1和trace2的日志信息具体如下图所示: 从上面的控制台输出内容中,我们看到多出了一些形如[trace1,454445a6a7d9ea44,912a7c66c17214e0,false]的日志信息,而这些元素正是实现分布式服务跟踪的重要组成部分,它们的含义分别如下所示: 第一个值:trace1,它表示应用的名称,也就是配置文件spring.application.name的值。 第二个值:454445a6a7d9ea44,它是SpringCloudSleuth生成的一个ID,称为Trace ID,它用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID。 第三个值:912a7c66c17214e0,它是SpringCloudSleuth生成的另外一个ID,称为Span ID,它表示一个基本的工作单元,比如发送一个http请求。 第四个值:false,表示是否要将该信息输出到Zipkin等服务中来收集和展示。 上面四个值中的Trace ID 和Span ID是SpringCloudSleuth实现分布式服务跟踪的核心。在一次服务请求链路的调用过程中,会保持并传递同一个Trace ID,从而将整个分布于不同微服务进程中的请求跟踪信息串联起来。例如,在一次前端请求链路中,上面trace1和trace2的Trace ID是相同的。 跟踪原理 分布式服务跟踪系统主要包括下面三个关键点: (1)Trace:它是由一组有相同Trace ID的Span串联形成一个树状结构。为了实现请求跟踪,当请求请求到分布式系统的入口端点时,只需要服务跟踪框架为该请求创建一个唯一的跟踪标识(即前文提到的Trace ID),同时在分布式系统内部流转的时候,框架始终保持传递该唯一标识,直到返回请求为止,我们通过它将所有请求过程中的日志关联起来; (2)Span:它代表了一个基础的工作单元,例如服务调用。为了统计各处理单元的时间延迟,当前请求到达各个服务组件时,也通过一个唯一标识(即前文提到的Span ID)来标记它的开始、具体过程以及结束。通过span的开始和结束的时间戳,就能统计该span的时间延迟,除此之外,我们还可以获取如事件名称、请求信息等元数据。 (3)Annotation:它用于记录一段时间内的事件。内部使用的最重要的注释是: cs(Client Send):客户端发出请求,为开始跨度 sr(Server Received):服务器已收到请求并开始处理。timestampsr - timestampcs =网络延迟。 ss(Server Send):服务器处理完毕准备发送到客户端。timestampss - timestampsr =服务器上的请求处理时间。 cr(Client Received):客户端接收到服务器响应,为跨度结束。客户端已成功接收到服务器的响应。timestampcr - timestampcs =请求的总时间。 以下是在使用Sleuth的两个微服务之间的调用中请求的行为方式,除了生成唯一标识符并将其添加到应用程序日志之外,还需要在作为请求的一部分的微服务器之间正确传播它们。 抽样收集 我们在对接分析系统时就会碰到一个问题:分析系统在收集跟踪信息的时候,需要收集多少跟踪信息才合适呢?生产环境与开发环境跟踪信息收集比例应该不一致,我们是否可以调整呢?同时,不同业务系统收集比例可能也不一样。 理论上来说,我们收集的跟踪信息越多就可以越好反映出系统的实际运行情况,并给出更精确的预警和分析。但在高并发的分布式系统运行时,大量的请求调用会产生海量的跟踪日志信息,如果收集过多的跟踪信息将会对整个分布式系统的性能造成一定的影响,同时保存大量的日志信息也需要不少的存储开销。所以,在Sleuth中采用了抽象收集的方式来跟踪信息打上标记,也就是我们前面第四个布尔值,它代表了该信息是否要被后续的跟踪信息收集器获取和存储。 默认情况下,Sleuth会使用PercentageBasedSampler实现的抽样策略,以请求百分比的方式配置和收集跟踪信息,默认值0.1(代表收集10%的请求跟踪信息),可以通过配置spring.sleuth.sampler来修改收集的百分比。 与ELK整合 前面随着已经有了跟踪信息,但是由于日志文件都分布在各个服务实例的文件系统上,如果链路上服务比较多,查看日志文件定位问题是一件非常麻烦的事情,所以我们需要一些工具来帮忙集中收集、存储和搜素这些跟踪信息。引入基于日志的分析系统是一个不错的选择,比如ELK平台,SpringCloudSleuth在与ELK平台整合使用时,实际上只需要与负责日志收集的Logstash完成数据对接即可,所以我们需要为logstash准备Json格式的日志输出(SpringBoot应用默认使用logback来记录日志,而logstash自身也有对logback日志工具支持)。与ELK整合架构图如下所示: 与Zipkin整合 虽然通过ELK平台提供的收集、存储、搜索等强大功能,但是缺少对请求链路中各阶段时间延迟的关注,而很多时候我们追溯请求链路的一个原因是为了找出整个链路中出现延迟过高的瓶颈源,或者找出问题服务实例等监控与时间消耗相关的需求,ELK就显得乏力,反而引入Zipkin就能够轻松解决。 Zipkin是Twitter的一个开源项目,它基于Google Dapper实现。我们可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的Rest API接口来辅助查询跟踪数据以分布式系统的监控程序,通过UI组件帮助我们及时发现系统中出现的延迟升高问题以及系统性能瓶颈根源。下面展示Zipkin的基础架构,它主要由4个核心组件构成: Collector(收集器组件):主要负责收集外部系统跟踪信息,转化为Zipkin内部的Span格式。 Storage(存储组件):主要负责收到的跟踪信息的存储,默认为内存,同时支持存储到Mysql、Cassandra以及Elasticsearch。 Restful API(API组件):提供接口,方便外部系统进行集成。 Web UI(展示组件):基于API开发的自带展示界面,方便进行跟踪信息的查看以及查询,同时进行相关的分析。 与zipkin整合——HTTP收集 sleuth收集跟踪信息通过http请求发送给zipkin server,zipkinserver进行跟踪信息的存储以及提供Rest API即可,Zipkin UI调用其API接口进行数据展示。其大体路流程如下图所示: 代码如何实现呢?主要有两个部分:搭建Zipkin Server、为应用引入zipkin依赖和配置,具体如下所示: (1)搭建Zipkin Server 添加Pom依赖 主要代码 配置文件 (2)为应用引入zipkin依赖和配置 添加Pom依赖 为应用增加配置文件 启动Zipkin Server以及分别重启trace1和trace2,再次通过浏览器或者postman调用http://localhost:8080/trace1,可以返回trace2相应接口的内容,同时我们看到控制台日志已经存在跟踪信息,然后通过浏览器访问http://localhost:9411/,我们可以看到Zipkin对于跟踪信息分析与展示,可以看到请求链路,以及每个span的具体耗时,就能分析进行链路优化、依赖分析等操作,其界面具体如下所示: 与zipkin整合——消息中间件收集 Spring Cloud Sleuth在整合Zipkin时,不仅实现了以Http的方式收集,还实现了通过消息中间件来对跟踪信息进行异步收集。通过结合Spring Cloud Stream,我们可以非常轻松地让应用客户端将跟踪信息输出到消息中间件,同时Zipkin服务端从消息中间件上异步获取这些跟踪信息,具体如下所示: 代码如何实现呢?主要有两个部分:搭建Zipkin Server、为应用引入zipkin依赖和配置,具体如下所示: (1)搭建Zipkin Server 添加Pom依赖 主要代码(使用注解@EnableZipkinStreamServer) 配置文件 (2)为应用引入zipkin依赖和配置 添加Pom依赖 为应用增加配置文件 与Zipkin整合——数据存储 默认情况下,Zipkin Server会将跟踪信息存储在内存中,但是这样就会出现我们重启Zipkin Server时之前收集的跟踪信息丢失的问题。为了解决此问题,Zipkin提供了多种存储方式,比如Mysql、Cassandra以及Elasticsearch,以Mysql为例,我们能够很轻松地为Zipkin Server增加Mysql存储功能。主要有三个步骤即可:第一步,在Mysql中创建数据库并且运行其数据脚本;第二步,为pom添加数据库依赖;第三步,修改配置更换存储方式。更多内容请我另一篇博客《微服务之分布式跟踪系统(springboot+zipkin)》。 (博客地址:http://blog.csdn.net/qq_21387171/article/details/53787019) 与Zipkin整合——API接口 Zipkin不仅提供了Web UI方便用户进行跟踪信息查看与查询,同时还提供了Rest API,方便第三方系统进行集成进行跟踪信息的展示和监控,其提供的API列表如下所示: 三、分布式服务跟踪系统其他解决方案 OpenTracing通过提供平台无关、厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。 OpenTracing提供了用于运营支撑系统的和针对特定平台的辅助程序库。下面为其相应的成员以及提供的产品: 分布式服务跟踪系统其他解决方案:Jaeger Jaeger(https://github.com/jaegertracing/jaeger)受到Dapper和Zipkin的启发,从开始就建立了OpenTracing支持,是由Uber Technologies作为开源发布的分布式跟踪系统。它可用于监控基于微服务的体系结构:分布式上下文传播、分布式事务监控、根本原因分析、服务依赖性分析以及性能/延迟优化。其架构图如下所示: 分布式服务跟踪系统其他解决方案: Sky Walking Skywalking (https://github.com/wu-sheng/sky-walking)全链路监控开源项目,也是唯一的国内团队开源的APM监控项目。其架构图如下所示: 最后,附上文章所讲内容的源码下载地址(源码地址:https://github.com/dreamerkr/SpringCloudSleuthExample.git),需要可以进行下载与交流。 https://mp.weixin.qq.com/s?__biz=MzI5MDEzMzg5Nw==&mid=2660396033&idx=1&sn=e4274bb41d68633f1c4838b15ec14dc7&chksm=f7424ee7c035c7f1aa902a54d1dd53ca4d4084e3c08aec908b94eabc6b74839922dccc9be847&mpshare=1&scene=1&srcid=0929y6Jby8qF8lKExFmexHzg#rd

优秀的个人博客,低调大师

为什么Android开发抢手?

具备怎样的技能,才能成为受市场欢迎的Android开发? 一名Andriod开发的技能体现在「实际量级下解决问题的能力」,即高效的产出高质量代码,迅速解决开发中存在的BUG,对于需求提出合理的解决方案。 更重要的是,一枚优秀的Android开发绝不会视野只局限在应用层,「对底层的理解」是决定你是否成为Top5%的关键,也是很多工作几年后的Android开发职业上升的瓶颈。 具体落实到技能点,一名有2~3年工作经验的Android开发,具备以下一半的技能点是合格,全部具备是优秀: 扎实的C++、Java基础 熟悉网络编程,了解常用网络协议 熟悉掌握 Android 界面和交互开发 掌握至少一门数据库语言 至少有一个完整的 Android 应用开发经验 良好的编码风格,沟通能力和团队合作精神,有责任感 在 Google Play 上线过自己的 App,加分 对开源技术有强烈的兴趣和爱好,有个人blog、Github账号,参与或向开发者提交过 bug 和 patch 者优先 优秀Android开发的职业成长路径是怎样的? 在不同的职业发展阶段,Android开发的薪水有非常大的差异,伴随着技能和薪资的提升,一位比较顺利的Android开发的职业成长之路是这样的: 1. 初级Android开发:0~3年 在从事Android开发的前三年,在没有遇到和解决足够多的问题之前,你都是菜鸟。对雇主来说,与其社招只有两年工作经验的Android开发,不如通过校招自己培养,这也是100offer一般只接受2年工作经验以上的程序员的原因。 2. 高级Android 开发:3~5年 这是你快速成长成熟的阶段,此时你可能已经有过一次跳槽经历,已经可以独立带领一个小团队,成为一名技术Leader,或小型创业公司的CTO。 3. 架构师:5~7年 成为一名架构师需要更强大的宏观把控能力,可以从上而下看问题,具备良好的体力和思维能力。 4. 研究员/管理总监:7年/10年以上 7年以上的Android开发如果走技术专业路线,首席架构师/研究员是开发者的最终职业目标。要成为首架/Fellow,不仅需要有扎实的基础,还要具备高情商,以及hands-on写代码的能力。值得一提的是,情商在职业发展的后半段发挥着越来越大的作用,尤其体现在团队沟通,和解决冲突的时候。 当你拿到48个面试机会,如何选择? 如果你一下子收到了48个面试机会,该如何选择呢?换言之,如果分辨出靠谱的公司加入呢?以下是在挑选职业机会中,工作2~3年的你需要考虑的几个维度: 1. 去创业公司还是大公司? 如果你是特别能解决问题,具有强烈的自我驱动力的程序员,建议你去创业公司。在那里,一般你会得到更多的解决实际问题的机会,接受更多的挑战。而大公司比较趋同于流程,如果你愿意在团队中安心地做一颗螺丝钉,在前人已经沉淀地较深的技术基础上学习和修补,那么,大公司也是不错的选择。 2. 这个产品是否值得加入? 优秀的Android工程师一般也具有良好的产品思维,比起公司规模,他们更看重产品的前景。 但是,有一个常见的误区首先需要厘清:用户量并不是判断一款产品值得加入的绝对标准。因为落实到你的目标:一款产品即使用户量再大,你做的不过是其中的一个子集;另一款产品即使用户量目前没那么大,但是如果你看好它,可以陪伴它一起成长,用户量逐渐增长,岂不是更有意义。 介绍一个简单快捷的产品判断方法:在面试中和各种职位的面试官聊产品。 和Founder谈,聊对产品的思考,看他对产品是否有相对长久的规划和坚定的想法; 和技术Leader谈,从他的业务敏感度,可以判断这个公司对技术和产品的重视程度; 和产品经理谈,听专业的PM详细介绍这款产品,了解他对需求的看法; 和自己谈,最后问问自己对这款产品是否真的有兴趣,再靠谱的产品你没兴趣也是白搭。 3. 这个团队是否有牛人值得信赖? 正如投资者往往投的是人,因为靠谱的人常常比靠谱的产品更重要。仔细考察这个团队的背景,如果创始人和合伙人是这个领域的牛人,更重要的是他有过成功的经历,那么,加入其中的风险则可有效降低。在大公司中,跟对一个好领导的重要性也不言而喻。 总之,选择比机遇更重要,面对众多的职业机会保持清醒的头脑,仔细做好基本分析,然后,「自信」地跟着感觉走就是了。 本科/研究生学历+3~5年一线知名互联网工作经验+APP开发经历+Github/Blog账号+优秀的沟通能力+寻求好项目的跳槽意愿 这样的Android开发是整个互联网市场都需要的移动应用开发人才,无论是创业公司还是BAT、外企等大公司,都在100offer的拍卖会上向他们发出了面试邀请。 最后,请记住,成为抢手的Android开发证明了你的技术实力,有大局观和高情商的人才会走得更远。 本文作者:佚名 来源:51CTO

优秀的个人博客,低调大师

权威报告:Java遭Kotlin威胁,2018程序员应该何去何从

最近,Packt 发布了“2018 开发者技能提升报告”,此报告调查了800多名开发人员和技术专家,从应用开发、web开发、安全和系统管理,以及数据四个方面对开发者进行了调查,旨在了解软件开发人员的工具使用情况和技能趋势。 Kotlin是Java强有力的竞争者 在此报告中,Java在编程语言中仍然占据着主导的地位,但是Kotlin可能很快替代Java在移动开发第一位置。在8000名接受调查的用户中,71%的受访者表示,Kotlin是Java强有力的竞争者。 Kotlin 于2011年出现,但直到最近才开始真正吸引工程师的特别青睐。Google 在 2017 年宣布 Kotlin 在 Android Studio 3.0 中完全获得支持,使之成为 Android 开发语言之一。预计到今年年底,Kotlin 将与 Java 展开激烈竞争。 B

优秀的个人博客,低调大师

Hadoop权威指南学习笔记_第一章_初识Hadoop

学习时间:20130701 知识点积累: 数据的存储和分析: 为了实现数据读取的高效,可从多个磁盘并行读取数据,需要解决2个问题: 硬件故障,避免数据丢失 大部分分析任务需要通过某种方式把数据合并起来 相较于其他系统: 关系型数据库管理系统: 网格计算: 高性能计算(High Performance Computing)的方法是将作业分配给一个机器集群,这些机器访问共享文件系统,由一个存储区域网络(Storage Area Network,SAN)进行管理;这非常适用于CPU密集型的作业,但当节点需要访问大数据量时,网络带宽将成为“瓶颈” MapReduce尝试在计算节点本地存储数据,这项“数据本地化”功能成为MapReduce的核心功能 MapReduce检测失败的map或者reduce任务,在健康的机器上重新安排任务,而不需要程序员考虑失败任务的处理机制 志愿计算: 志愿计算项目通过将他们试图解决的问题分成多个块,每个块称为一个工作单元,并将它们发到世界各地的电脑上进行分析 SETI@home问题是CPU高度密集型的,并在接入互联网的不可信的计算机上运行,这些计算机的网速不同,而且数据也不在本地 Hadoop生态圈: Common:一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构) Avro:一种支持高效、跨语言的RPC以及永久存储数据的序列化系统; MapReduce:分布式数据处理模型和执行环境,运行于大型商用机集群; HDFS:分布式文件系统,运行于大型商用机集群; Pig:一种数据流语言和运行环境,用以检索非常大的数据集; Hive:一个分布式、按列存储的数据仓库,管理HDFS中存储的数据,并提供基于SQL的查询语句用以查询数据; HBase:一个分布式、按列存储数据库,使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取); Zookeeper:一个分布式、可用性高的协调服务;提供分布式锁之类的基本服务用于构建分布式应用; Sqoop:在数据库和HDFS之间高效传输数据的工具 本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1238932,如需转载请自行联系原作者

优秀的个人博客,低调大师

《VMware Virtual SAN权威指南》一3.9.1 vSphere HA通信网络

3.9.1 vSphere HA通信网络 在非VSAN部署中,vSphere HA代理的通信是通过管理网络进行的;在VSAN环境中,vSphere HA代理的通信是通过VSAN网络进行的。背后的原因是我们希望当网络故障发生时,vSphere HA主机和VSAN主机是位于同一分区(partition)中的,这就避免了故障时因vSphere HA和VSAN判断的分区不同而造成拥有的存储组件和对象集不同所造成的可能的冲突。在VSAN环境下的vSphere HA在默认情况下仍然将管理网络的默认网关用作隔离检测(isolation detection)。我们估计大多数VSAN环境的管理网络和VSAN网络很可能是使用同一个物理网络基础架构的(尤其是在万兆网络情况下)。但是,如果VSAN网络和管理网络是位于不同的物理网络基础架构,建议将默认的vS

优秀的个人博客,低调大师

权威人士对2015年云的十大预测

ZDNet至顶网服务器频道 01月08日 新闻消息: 上图摄于中国杭州——阿里巴巴的总部。(IO公司的CEO George Slessman表示:阿里巴巴将会在2015年成为世界最大的公司,彼时互联网的中心也将转移至亚洲。) 尽管已有迹象显示:2015年的云计算市场将趋于成熟化,这些信号包括合并整合,以及云服务组合的规范化等等,但还有一些只是无关根本的变化,这些变化包括有世界范围内对亚洲的关注不断增长,还有云决策方面新的数据隐私立法的影响。 继去年12月份我们发表的文章《数据中心预测一览》之后,本文总结了今年一些最为有趣的云预测,这些预测分别来自互联网数据中心(IDC),451研究网站(451 Research),IO公司还有戴尔公司。 1. 对数据隐私进行立法以规范云决策 2013年,曾供职于美国中央情报局和国防项目承包商Booz Allen Hamilton的Edward Snowden将美国国家安全局关于PRISM监听项目的秘密文档披露给了《卫报》和《华盛顿邮报》,自此,公众获知:世界范围内的电子通讯均受到政府的秘密监控,这使得数据隐私倍受公众关注,从而引发旨在保护数据隐私的大量新法规产生。 市场研究公司IDC的调查结果显示,在2015年IT业界将会切实体会到这一系列事件的影响。IDC的分析师在其关于2015年的云预测中称:这一年,全球企业云工作负载中有65%将需要符合数据隐私法。 2. 企业由于开源,将逐步发展壮大 IDC称,2015年企业大量开源不太可能,不过确有趋势显示:企业将更多地开源。分析师预测:20%的企业将会发现社区驱动的开源标准和框架有着重要的价值,而到2017年这些标准和框架将会被战略化地应用到实践中。 一些采用开源项目的企业发展势头强劲,著名的案例包括:云架构OpenStack,平台即服务的Cloud Foundry,应用容器引擎标准Docker,还有OpenFlow这个运用软件定义网络标准的云端服务公司。 3. 个性订制的IT自动化技术即将出现 过去的几年里,IT自动化技术呈上升化发展,IT公司愈来愈多的采用DevOps,通过基础架构配置的自动化,以支持软件按周期地连续发布。 但是随着时间的流逝,根据IDC的说法,自动化将会趋于更细致的方向,到2017年的时候,四分之一的IT公司都会支持“用户层级”,也就是说用户可以根据个人需求来定制自己的自动化技术。 4. IaaS(基础设施即服务)服务减少 过去两到三年内,新的IaaS服务不断推出,相应的服务公司也不断出现,IDC预测:服务提供商将对其服务组合进行大规模的变更。分析师表示:在未来的一到两年内,将会有75%的IaaS服务提供商重新设计、重塑和更名自己的服务,或者逐步淘汰相应服务。 5. 服务提供商大规模整合 IO公司是一家基于Phoenix的主机托管服务提供商,其CEO暨联合创始人George Slessman预测:从今年开始,数据中心、主机托管以及云服务提供商之间将会有持续若干年的大规模整合过程。对于这些垂直服务商来说,整合并不是什么新鲜事,但是George Slessman所言及的过程将会以形成“全球数据中心及应用物流网络系统”而最终完成。 6. 新的应用归宿:混合云计算以及主机托管 George Slessman认为:2015年,超过90%的新开发应用将会运行在云上,或者“混合动力主机托管”环境中。 大量的主机托管提供商一直在追求满足混合解决方案的需求,以方便用户将自己的服务器与云服务结合起来。其中一些是类似CenturyLink这样的公司,一小部分是类似IO这样的公司,他们都已经开发出自身的云服务;还有一些像是易Equinix和Telx这样的公司,也已经通过大量不同的服务商建设了接入云服务的数据中心枢纽。 7. 互联网中心将会转到亚洲 George Slessman认为:在2014年上市的中国互联网巨擘阿里巴巴,在IPO(首次公开募股)之后的一年内必将成为世界最大的公司。他认为:这代表着“互联网中心转向亚洲决定性的一步”,阿里巴巴对亚洲起到的作用,相当于英特尔或者硅谷。 阿里巴巴经营着一家类似亚马逊的电子商务网站,但是就像微软这个总部位于华盛顿雷德蒙德的巨头一样,阿里巴巴同时也拥有名为阿里云的云服务业务。阿里巴巴在中国和香港均开设有数据中心,提供从基础云计算到复杂的基于云的数据分析服务。 8. 云安全方面将会维持巨大数额的开销 另一家市场研究公司451Research预测:2015年,在云安全方面的支出将会再次增长并会持续下去。该分析师认为:在云安全方面的企业并购、IPO、风险投资还有私募股权投资将会持续或接近历史上限。 尽管对整个行业而言这是个好消息,但这种趋势只会意味着伴随IT业的新发展,新的漏洞将会出现,从而需要新的安全产品。451 Research的分析师在2015的六项云预测中表示:“在很大程度上云安全将非常活跃”,并表示云安全的发展通常会随着IT业的发展而增长并在发展上稍迟两年左右。 9. 私有云的灵活性会逐渐降低 戴尔公司认为:尽管机动性是云的主要优势之一,2015年私有云基础架构的机动性最终会随着首席信息官们而降低,按需移除融合式基础架构模块的能力将会使得私有云更加灵活并富有吸引力。 10. 专业IT知识价值将会降低 戴尔公司认为:随着越来越多的IT项目被外包,公司对于高度专业认证的依赖将会逐渐减少,产业化和虚拟化技术使得公司可以将所有可用的IT资源视为一体,更多的是着重于使用它们完成什么内容,而不是在每个独立的基础设施上花费大量的资源。 原文发布时间为:2015年01月08日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

《VMware Virtual SAN权威指南(原书第2版)》一导读

前 言 说到虚拟化及其依赖的底层基础架构,经常会提起一个组件——存储。原因相当简单:在很多环境中,存储是痛点。尽管存储市场已经因为闪存技术的引入发生了变化,很多传统的存储问题得到了缓解,但是很多机构还没能采纳这些新的架构,因而仍然会遇到挑战。存储问题的范围包括运营上的复杂性到性能问题甚至是可用性的限制。这些问题中的大部分都起因于同样的根本问题:老旧的系统架构。这是因为大多数存储平台架构是在虚拟化技术出现之前开发出来的,而虚拟化已经改变了使用这些共享存储平台的方法。某种程度上,可以说是虚拟化迫使存储业界去寻找新的方法来构建存储系统。不再是通过单台服务器连接到单台存储设备(也称为逻辑单元或简写为LUN),虚拟化通常由一台(或多台)物理服务器承载很多虚拟机连接到一个或多个存储设备上。这不仅仅增加了这些存储系统的负载,也改变了工作负载的模

优秀的个人博客,低调大师

危险的Microsoft 365攻击技术

APT组织正在开发新技术,使他们能够避免检测并从电子邮件、SharePoint、OneDrive以及其他应用程序中窃取数百GB的数据。 国家民族资助的网络间谍活动也比以往任何时候都更专注于寻找攻击云的新方法。其中,他们首选的目标之一就是Microsoft 365(以前称为Office 365),该平台正广泛部署于各种规模的组织系统中。 从情报收集者的角度来看,针对Microsoft 365是绝对有意义的。Mandiant的事件响应经理Doug Bienstock解释称,Microsoft 365就是一座”金矿“。绝大多数(组织的)数据可能会在Microsoft 365 中,无论它是个人电子邮件的内容,还是SharePoint或OneDrive上共享的文件,甚至是Teams消息。 严重依赖Microsoft 365的公司倾向于在其工作的几乎每个方面都应用它,从文档编写到项目规划、任务自动化或数据分析。有些人还会使用Azure Active Directory作为其员工的身份验证提供程序,攻击者自然也知道这一点。所以,通过扩展,获取Active Directory的访问权限就可以授予攻击者访问其他云属性的权限。 在最近举行的Black Hat USA 2021演讲中,Madeley和Bienstock展示了民族国家黑客在针对Microsoft 365中存储数据的攻击活动中使用的一些新技术。研究人员向我们展示了APT组织如何进化以逃避检测并从受害者那里成功提取了数百GB的数据。 Bienstock表示,这些民族国家网络间谍组织正在投入大量时间和精力来了解Microsoft 365。他们比您的系统管理员,甚至可能比微软的一些员工更为了解Microsoft 365。 逃避检测 在过去的一年里,APT组织在避免检测方面变得更好,他们采用了一些以前从未见过的新技术。其中之一就是将用户许可证从Microsoft 365 E5许可证降级为E3许可证,这一过程通常出现在攻击的早期阶段。 E5许可证提供身份和应用程序管理、信息保护以及威胁保护,有助于组织检测和调查威胁,并注意到本地和云环境中的异常恶意活动,而这些都是E3许可证所缺乏的。更成熟的组织依赖于检测的许多高级遥测技术都带有E5许可证。 但遗憾的事实证明,攻击者实际上真的很容易禁用组织拥有的最有效的检测机制。 邮箱文件夹权限滥用 两位研究人员还发现,APT团体将许可证降级的操作是与自2017年以来就一直存在的一种旧技术联合使用的,这种旧技术就是最初由Black Hills Information Security的Beau Bullock在红队背景下描述的“邮箱文件夹权限滥用”。 Madeley解释称,您可以为特定邮箱或邮箱中特定文件夹的用户分配权限。例如,如果两个人一起处理这些项目,则一个人可以拥有对另一个人的特殊项目邮箱文件夹的读取访问权限。或者,某人可以授予他们的同事读取他们日历文件夹的权限,以更有效地安排会议。 可以将邮箱文件夹权限分配为单个权限或角色,它们本质上是文件夹权限的集合。威胁参与者可以将自身伪装成具有读取权限的角色,例如作者、编辑、所有者、出版作者或审阅者,随后他们就可以尝试将这些权限应用于他们控制的用户。 在一个案例中,一名威胁参与者利用了默认用户的概念。如果默认权限级别设置为“无”以外的任何级别,则该组织中的每个用户都可能访问该文件夹或邮箱。另一个特殊用户——匿名者——也是如此,该用户专为未经身份验证的外部用户而设计。 Madeley在研究过程中发现了一名威胁行为者分配了默认的用户审阅者角色,该角色具有读取权限。进行完这种修改之后,任何经过身份验证的用户都可以访问该邮箱文件夹。这种技术虽然不是新的,但仍在被至少一个APT组织所利用,因为它很难被发现。它可以在许可证降级的情况下发挥作用。 如果您没有Microsoft 365 E5许可证附带的邮箱审核功能,您将无法看到网络上这些随机用户的相应邮箱访问行为。想要检测到这一点,您必须枚举环境中每个邮箱的邮箱文件夹权限,如果公司有50人(听起来感觉任务不重),但却是拥有210,000个用户的租户,则可能需要数周的时间运行脚本。 其他一些方法也可以检测到这一点。例如,管理员可以查找用于访问已修改文件夹的EWS登录。在Azure Active Directory中,这些将被编码为非交互式登录。或者,如果启用了MailItemsAccessed审核,管理员可以查找非所有者访问其高价值邮箱的任何模式。 劫持企业应用程序和应用程序注册 APT组织最近采用的另一种技术是滥用应用程序。应用程序注册(应用程序的初始实例——组织本地的应用程序)和企业应用程序(位于消费租户中的应用程序注册的“副本”——可在组织内使用的全局应用程序)都称为应用程序。 Madeley介绍称,Microsoft给你提供了注册一个应用程序的想法,然后你可以对Graph API进行API调用。你可以简单地利用它来创建新用户以及阅读消息等等。假设您想构建一个第三方邮件应用程序,以便使用它来读写消息。所有API调用都可供您与邮箱交互。 当威胁行为者试图劫持企业应用程序时,他们首先会寻找合法配置的现有应用程序。然后,他们会添加凭据;他们会将自己的API密钥添加到这些应用程序中,然后他们可以使用这些密钥对Microsoft 365进行身份验证。 接下来,他们将确保该应用程序有权访问他们想要的资源,例如阅读邮件。如果他们没有找到满足其需求的应用程序,他们就会继续添加权限。 一旦找到满足需求的应用程序,他们就会立即侵入。他们每天(从周一到周五)都在进行身份验证操作做,读取特定用户24小时内的邮件信息。然后继续登录下一个用户,读取24小时内的邮件,并将其发送到他们自己的服务器中,然后他们就可以随心所欲地阅读其中的内容并获取自己感兴趣的信息。 Mandiant研究人员跟踪的APT组织仅针对少数相关用户,而非全部用户。在大多数情况下,有六到十个非常有价值的人会受到监控。研究人员在一个组织中看到的最多目标邮箱是93个。 Madeley表示,将事情放在上下文中,这种技术可以产生广泛的影响。他说,如果我开发了一个与您共享的企业应用程序,或者我创建了一个其他公司可以使用并可能购买的应用程序蓝图,一旦该应用程序受到威胁,也就意味着威胁参与者可以访问您的租户。因此,这意味着不仅需要保护您自己的数据,还必须担心您获得的企业应用程序的来源,并且确保您供应商的安全性处于同等水平。 黄金SAML(Golden SAML)技术 开展网络间谍活动的先进民族国家行为者不仅对进入环境感兴趣。他们还希望能够秘密进行并尽可能长时间地保持访问权限。 这就是“Golden SAML”技术的用武之地。它已被多个APT组织使用,包括UNC2452/DarkHalo,主要负责对SolarWinds Orion软件进行木马化以分发SUNBURST恶意软件的供应链攻击。此次攻击于2020年12月披露,FireEye是众多受害者之一。 SAML(Security Assertion Markup Language)代表安全主张标记语言,是一种用于在各方之间交换身份验证和授权的开放标准。它旨在简化身份验证过程,启用单点登录(SSO),允许仅使用一组登录凭据访问多个Web应用程序。 利用Golden SAML技术,攻击者可以创建一个Golden SAML,这实际上是一个伪造的SAML“身份认证对象”,以SAML 2.0协议作为SSO(单点登录)认证机制的任何服务都受此攻击方法影响。 在这种攻击场景中,如果应用支持SAML认证(这类应用包括Azure、AWS、vSphere等),那么攻击者可以获得该应用的所有访问权限,也能伪装成目标应用上的任何用户(即使某些情况下该应用中并不存在这个用户)。 打个比方,如果你想制作护照,就一定需要一些非常具体的东西,而这些东西正锁在政府某个办公室抽屉中。但是,一旦你连护照设备都得手了,就没有什么能够组织你为任何想要的人制作护照。Golden SAML原理与之非常相似。攻击者正在攻击网络上的特定系统;他们正在窃取私钥,然后,一旦他们拥有该私钥,他们就可以为他们想要的任何用户创建身份验证令牌。 在Golden SAML技术中,攻击者窃取 Active Directory 联合身份验证服务(AD FS)令牌签名密钥。(AD FS 是Windows Servers的一项功能,可实现联合身份和访问管理)当攻击者针对特定用户,并且他们想要访问只有这些用户可能拥有的东西(例如他们SharePoint或OneDrive上的特定文件)时,该技术对于攻击者来说非常方便。 传统意义上,要使用Golden SAML技术,黑客需要破坏该私钥所在环境中的AD FS服务器,这可能很困难,因为该服务器应该会受到很好的保护,但Bienstock和Madeley说有一种方法可以远程窃取它。攻击者仍然需要在公司的专用网络上,但如果拥有正确的特权级别,他们就不一定需要破坏该特定服务器。相反地,他们可以从任何地方进行攻击。 打个比方,就像使用魔法将护照传送出政府办公室。现在,您无需进入护照办公室或在AD FS 服务器上运行代码即可完成这项工作。这项技术具有潜在价值,因为它降低了成功的困难度,而且执行起来更加隐蔽。目前,这种允许攻击者远程窃取密钥的攻击还未在野出现过,但两位研究人员表示,这是当前技术的“自然延伸”,组织应该做好准备防御它。 活动目录联合身份验证服务(AD FS)复制 拥有众多办事处的大型组织可能具备多个AD FS 服务器。他们可能会在一个场所配置两个、三个或四个AD FS 服务器。默认情况下,所有场所节点使用相同的配置和相同的令牌签名证书。每个服务器都有一个私钥,但他们需要一种方法来保持同步。为此,产生了一种复制服务,该服务通过网络运行,不同的服务器可以相互通信。 攻击者可以伪装成执行复制的AD FS服务器,即主AD FS服务器。在某些方面,这种技术与 DCSync攻击非常相似。在 DCSync攻击中,攻击者会伪装成域控制器以获取有关域的身份验证信息。而在这种技术中,攻击者会伪装成另一台AD FS服务器,从网络上的合法服务器获取敏感信息。 Madeley及同事一直专注研究AD FS,因为它是APT威胁参与者针对目标组织使用的更常见的SAML提供程序之一。需要注意的是,Golden SAML攻击的原理不仅限于AD FS。如果您破坏了任何SAML提供商的签名证书,您将面临同样的问题。 大数据泄露 过去,针对Microsoft 365/Office 365 的ATP组织主要搜索特定关键字,然后下载与其请求匹配的文件和电子邮件。现在,研究人员注意到他们倾向于泄露数百GB的数据。 Bienstock表示,在大多数情况下,威胁行为者只是下载该人邮箱中的所有内容。我个人的猜测是:这可能是一种大数据方法。与其在数据所在的地方执行搜索,不如下载尽可能多的数据,然后他们稍后再进行搜索,因为也许他们的收集需求求发生了变化,他们需要新的关键字。 这种方法将使他们能够充分利用数据集合。如果他们必须获得与另一个关键字或另一个秘密项目相关的新信息,他们将不需要再次入侵组织。 研究人员跟踪的一个APT组织在一个月时间里,收集了超过350 GB的数据,至少够他们浏览12个月了。这或许暗示威胁行为者后端有一定程度的大数据分析,而非人为浏览如此海量的电子邮件。 两位研究人员表示,这种大数据方法不足为奇。他们注意到APT参与者正越来越依赖自动化,以及构建工具来为他们执行许多任务。他们努力构造这些自动化收集工具的事实表明,在整个生命周期中都有自动化参与。 缓解Microsoft 365威胁 Bienstock和Madeley预计,APT组织在未来几年会继续更新他们的技能。他们还表示,出于经济动机的团伙可能会开始使用其中一些流行的技术。 Madeley建议管理员学习并了解第三方云集成的细微差别。他们应该知道自己可以使用哪些审计以及他们拥有哪些类型的检测功能,具体取决于Microsoft 365许可证模型。研究人员建议他们在云中建立良好的变更控制流程,因此当威胁行为者对组织的基础设施进行更改时,管理员可以检测到它。 Madeley表示,首先您需要了解自己的环境,了解您注册了哪些应用程序,了解正常情况下的邮箱权限是什么样的,您的身份验证提供者是什么样的,以及它们在您环境中的使用方式。然后就是监控变更行为。 两位研究人员都表示,持续的教育是必不可少的,因为云中的事情进展得更快。目前,微软方面正在努力使其云基础设施更具弹性、安全性和可审计性,但在安全性方面,组织自身也应该尽自己的一份力量。重要的是,企业需要了解他们的盲点在哪里。 本文翻译自:https://www.csoonline.com/article/3628330/the-most-dangerous-and-interesting-microsoft-365-attacks.html?nsdr=true&page=2如若转载,请注明原文地址。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。