首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

谢源:计算存储一体化,在存储里做深度学习,架构创新实现下一代AI芯片

谢源教授于1997年获得清华大学电子工程系学士学位,于1999年和2002年获得普林斯顿大学电机工程系硕士和博士学位。于2003年加入宾夕法尼亚州立大学计算机系,2008年获得终身教职,2012年提升正教授。2014年他转入加州大学圣芭芭拉分校电机与计算机工程系(ECE)担任正教授。他同时也是北京大学的兼职教授和台湾新竹清华大学的客座教授。 谢源教授也拥有丰富的工业界经验,他于2002-2003年任职于IBM担任微电子部门全球设计中心的咨询工程师,2012年到2013年期间加入AMD,负责组建和领导AMD北京研发中心的研究部门。他所获得的荣誉包括美国国家自然科学基金会的 CAREER award,入选计算机体系结构三大会议名人堂(Hall of Fame in ISCA/MICRO/HPCA),以及鉴于他在三维芯片设计和架构的贡献当

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

一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)

1:KafKa的官方网址:http://kafka.apache.org/ 开发流程图,如: 2:KafKa的基础知识: 2.1:kafka是一个分布式的消息缓存系统2.2:kafka集群中的服务器都叫做broker2.3:kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接2.4:kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载2.5:每一个分区都可以有多个副本,以防止数据的丢失2.6:某一个分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新2.7:消费者可以分组,比如有两个消费者组A和B,共同消费一个topic:order_info,A和B所消费的消息不会重复 比如 order_info 中有100个消息,每个消息有一个id,编号从0-99,那么,如果A组消费0-49号,B组就消费50-99号2.8:消费者在具体消费某个topic中的消息时,可以指定起始偏移量 3:KafKa集群的安装搭建,注意区分单节点KafKa集群的搭建。 3.1:kafka集群安装,第一步上传kafka_2.10-0.8.1.1.tgz到虚拟机上面,过程省略,然后进行解压缩操作: 3.2:修改kafka配置文件,修改server.properties 修改如下所示,具体情况可以根据手册修改,详细修改可以参考Kafka的文档: 使用自己部署的Zookeeper集群,修改如下所示: 可以直接搜索:/zookeeper.connect找到所要修改的内容: 将配置好的Kafka复制到另外两个节点上面: [root@master hadoop]# scp -r kafka_2.10-0.8.1.1/ slaver1:/home/hadoop/ [root@master hadoop]# scp -r kafka_2.10-0.8.1.1/ slaver2:/home/hadoop/ 然后修改一下另外两台的broker.id=2和broker.id=3: 3.3:将zookeeper集群启动: [root@master hadoop]# cd /home/hadoop/zookeeper-3.4.5/bin/ [root@master bin]# ./zkServer.sh start [root@slaver2 bin]# ./zkServer.sh status 3.4:在每一台节点上启动broker: bin/kafka-server-start.sh config/server.properties Unrecognized VM option 'UseCompressedOops' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 启动的时候报错了,问题的根本是UseCompressedOops是jdk8的,而我的jdk是7,所以解决一下问题: 原因是jdk的版本不匹配,需要修改一下配置文件修改文件: 去掉这个配置 -XX:+UseCompressedOops 进去以后,搜索一下比较快:/UseCompressedOops,然后看到如下,删除如此配置: [root@master bin]# vim kafka-run-class.sh 其他两个节点的都按照如此删除掉即可: 修改好以后开始跑: 在每一台节点上启动brokerbin/kafka-server-start.sh config/server.properties 然后按照如此将其他两个节点都启动起来,然后复制xshell的连接看一下jps进程启动情况: 三个都启动起来,可以看一下,broker 1,broker 2,broker 3都启动起来了: 可以使用复制的xshell窗口查看jps进程启动情况: 3.5:在kafka集群中创建一个topic: [root@master kafka_2.10-0.8.1.1]# bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 3 --partitions 1 --topic order 可以查看一下自己创建的topic: [root@master kafka_2.10-0.8.1.1]# bin/kafka-topics.sh --list --zookeeper master:2181 可以创建多个多个topic,也可以查看一下自己创建的topic: 3.6:用一个producer向某一个topic中写入消息,生产者产生消息,消费者消费消息,如下生产者可以生产: 如下先启动一下生产者,先不生产消息,然后一个消费者,看看是否有输出,然后再生产消息,再去消费者看看消费消息: #生产者 [root@master kafka_2.10-0.8.1.1]# bin/kafka-console-producer.sh --broker-list master:9092 --topic order #消费者 [root@master kafka_2.10-0.8.1.1]# bin/kafka-console-consumer.sh --zookeeper master:2181 --from-beginning --topic order 上面是生产者: 下面是消费者: 3.7:查看一个topic的分区及副本状态信息: 自己可以找任意一个xshell复制连接进程查看: [root@slaver1 kafka_2.10-0.8.1.1]# bin/kafka-topics.sh --describe --zookeeper master:2181 --topic order 4:kafka运行在后台如何操作,如下所示: 1>/dev/null:代表标准输入到这个目录; 2>&1:代表标准输出也到这个目录下面; &:代表这个是后台运行; [root@master kafka_2.10-0.8.1.1]# bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

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

App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程

前言 如果没有做过开发,研发过产品的人,很难体会做产品的艰难,刚进公司的人,一般充当的是程序开发,我这里说的是开发,它与研发是有区别的. 一个需求下来,如果不能很好地理解产品需求,如果不能很好的驾驭需求实现的逻辑,肆意的根据理解去做技术方面的架构和编码,等到后来发现了不对了再去修改就特别麻烦。 所以我们在实现产品需求时,每一个功能需求,不管是大还是小,都要想商量清楚了,我们在采取编码. 言归正转,那么整个过程一款产品从想法-开发-上线-产品都经历了哪些? 希望能给大家一个好的借鉴作用,总结的不好的,希望给予指正,大家可以畅所欲言. 主要分为以下几步 第一步:需求梳理、分析 第二步:产品原型图绘制 第三步:UI设计 第四步:项目经理&技术负责人对接需求 第五步:技术方案 & 架构设计 第六步:项目排期 & 任务分解 第七步:产品研发阶段 第八步:交付测试阶段 第九步:产品发布上线 第十步:迭代 下面我们来看看具体操作: 第一步:需求梳理、分析 在此假设用户需求分析已经确定 , 接下来根据提炼的真实用户需求来确定产品需求。 产品经理将会根据沟通中的相关资料的word、ppt、jpg等等东西翻译成逻辑语言,最简单的就是产出一张产品功能脑图或者一份功能列表。 ▲产品功能脑图 ▲一份功能列表 初步产品功能需求梳理清楚之后,产品经理持续跟进,反复沟通确定产品原型图。 ▲产品原型图 同时根据具体的项目需求,会搭配一套产品业务流程图 ▲产品业务流程的图 简单点,用墨刀做一份带交互的原型。这个很重要,只有交互原型图上的逻辑跑通了,代码的逻辑差不多也通了,这样能节省很多时间,需求上说的跟实际上做的还是有很大区别的,有时间,需求听起来是很有道理,但是用技术几乎实现不了. ▲墨刀带交互的原型 第三步:UI设计 UI设计,包含风格稿和内页设计。 风格稿会根据产品需求提供的目标用户类型、客户倾向、LOGO等信息,以及确定做风格稿的2-3个页面的原型图,来进行风格稿设计。 待风格稿确认后进行内页设计,包括设计效果、页面元素、弹出页面等等 ▲风格稿 ▲风格稿 所有页面设计完后会统一发给客户做进一步沟通,然后统一修改优化。 ▲Zeplin Zeplin能够帮助前端更好地理解设计师意图,而设计师又能快速得到前端反馈的协作,从而减少设计师与前端的沟通错位,使得两者在“界面元素”和“交互动作”上形成一致。 ▲Zeplin invision用于设计先行能减少后端技术工程问题,设计的迭代越快,软件开发就越能在时间点的把控上做到极简。 ▲invision 设计定稿后并不是设计师的工作结束了,之后还有一段周期的切图、标注工作 。 ▲标注 ▲切图 第四步:项目经理&技术负责人对接需求 项目经理对接上这些需求,第一个工作是细化需求,将这些翻译成技术能更好理解地语言,搭配着原型图或设计稿来召开技术会议,统一讲解新项目的需求。 ▲细化需求 第五步:技术方案 & 架构设计 技术负责人在清楚了解整个项目的需求之后会开始构思整个项目的技术方案,根据产品需求,提供易扩展、可持续迭代的技术框架方案。 ▲整个项目的技术方案(需求文档) ▲可持续迭代的技术框架方案 第六步:项目排期 & 任务分解 同时,项目经理在和研发团队沟通确认后对项目进行分解以及排期,以此来保证项目进度和质量。 ▲项目管理 第七步:产品研发阶段 这个阶段就是各端技术按照排期规划开始编码,期间各种对接、调试以及撕逼。我不是程序猿,这块就不多写了,贴几张他们技术wiki的截图吧。 ▲Wiki对接 Paw 让测试 API 变得轻松愉悦,可以构建内部和外部的资源。它可以在不同的环境下进行测试,也可以引用来自其他请求响应的数据。 ▲PAW 它可以定义不同的环境,于是可以轻松地在开发、临时和生产环境中进行切换,而无需重新配置任何端点(endpoint)。并且还可以在一个请求的消息体中引用另一个请求中返回的值,这能够节省大量时间。 第八步:交付测试阶段 测试工程师基本全程跟进,从最早期对接完详细产品需求之后就开始编写测试用例 ▲测试用例 然后配合项目各个里程碑节点进行功能测试和性能测试,将问题按优先级划分统一反馈 ▲测试过程 第九步:上线 以上均是理想情况下,一个App必经的几个阶段的简洁步骤说明,具体执行依然会根据需求穿插进行。 不同的项目管理模式或许会有完全不同的流程步骤。但是专业性几乎是保证产品质量的唯一准则。 第十步:产品迭代 每次要根据用户反应的问题和增加的功能需求进行产品迭代

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

【福利】BAT架构师分享最全Java架构师学习技能图谱:包含Java编程+网络+设计模式+数据库+分布式等

【福利】总结了一份架构图谱,希望对想成为架构师的朋友有一定的参考和帮助。 我简短谈下目前大家关心的话题:互联网裁员浪潮里,大家会发现一般裁员会先从可替代性的业务性程序员开始,原因很简单,由于日常负责项目大部分都是业务性的,真正有技术实力提升机会非常有限,平时工作繁忙,忽略了提升自己的技术栈。 对此,我想给大家一些过来人的建议,大家除了加班之外,要尽可能多地挤出一些时间来提升自己的技术实力,提升自己在公司的价值度。平衡好工作与生活,关注个人收获与成长,只有自己会得越多,价值越高,才能让你在未来拥有更多的选择与机会,希望我的读者们紧记这一点。以下,enjoy~ Java编程技术点 计算机网络 Java高级技术 经典的设计模式 数据库:MySQL以及 MogoDB等NoSQL 分布式架构涉及的有:分布式redis、分布式session、微服务:dubbo、spring cloud、docker等。 除了上面罗列,我还制作了算法和数据结构、Java并发编程等全套高清架构知识图谱,想要领取完整版,关注【mikechen优知】,私信【架构师知识图谱】。觉得内容不错请点赞支持,更多BAT技术架构+面试真经等干货,查看我的往期博文。 如要转载内容及图片,请注明出处及链接,谢谢。

资源下载

更多资源
Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册