首页 文章 精选 留言 我的

精选列表

搜索[知识管理],共10000篇文章
优秀的个人博客,低调大师

电脑网站支付开发知识点

开发文档 请求参数说明文档:[url]https://docs.open.alipay.com/270/105900/[/url] 接入注意点 使用sdk签名方法详解:[url]https://openclub.alipay.com/read.php?tid=2212&fid=46[/url] 支付宝交易状态快速掌握:[url]https://openclub.alipay.com/read.php?tid=1295&fid=72[/url] 关于支付宝异步通知的那些事:[url]https://openclub.alipay.com/read.php?tid=1314&fid=69[/url] 强烈推荐云排查!!!(自查问题神器):[url]https://openclub.

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

云计算基础知识:CPU虚拟化

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 虚拟化技术的分类主要有服务器虚拟化、存储虚拟化、网络虚拟化、应用虚拟化。 服务器虚拟化技术按照虚拟对象来分,可分为:CPU虚拟化、内存虚拟化、I/O虚拟化;按照虚拟化程度可分为:全虚拟化、半虚拟化、硬件辅助虚拟化。 将不同的虚拟化对象和程度组合,可得出9种不同的服务器虚拟化技术。 首先详细介绍下服务器虚拟化之CPU虚拟化,后续讲解中再详细介绍内存虚拟化及I/O虚拟化。 CPU虚拟化 CPU全虚拟化技术 主要采用优先级压缩技术(Ring Compression)和二进制代码翻译技术(BinaryTranslation)。优先级压缩技术让VMM和Guest运行在不同的特权级下。对x86架构而言,即VMM运行在***特权级别Ring 0下,Guest OS运行在Ring 1下,用户应用运行在Ring 3下。因此,Guest OS的核心指令无法直接下达到计算机系统硬件执行,而是需要经过VMM的捕获和模拟执行(部分难以虚拟化的指令需要通过Binary Translation技术进行转换)。 CPU半虚拟化技术 主要采用Hypercall技术。Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相关的操作都转换为发给VMM的Hypercall(超级调用),由VMM继续进行处理。而Hypercall支持的批处理和异步这两种优化方式,使得通过Hypercall能得到近似于物理机的速度。 CPU硬件辅助虚拟化技术 目前主要有Intel的VT-x和AMD的AMD-V这两种技术。其核心思想都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest OS运行在Ring 0下。通常情况下,Guest OS的核心指令可以直接下达到计算机系统硬件执行,而不需要经过VMM。当Guest OS执行到特殊指令的时候,系统会切换到VMM,让VMM来处理特殊指令。 CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 GuestOS负责第2级调度,即线程或进程在VCPU上的调度(将核心线程映射到相应的虚拟CPU上)。 VMM(Virtual Machine Monitor)负责第1级调度,即VCPU在物理处理单元上的调度。 两级调度的调度策略和机制不存在依赖关系。VMM负责物理处理器资源在各个虚拟机之间的分配与调度,本质上即把各个虚拟机中的VCPU按照一定的策略和机制调度在物理处理单元上可以采用任意的策略来分配物理资源,满足虚拟机的不同需求。

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

webservice的一些知识点

SOA:(Service-Oriented Architecture)(面向服务的架构)它是有利于在不同应用程序间实现松散耦合集成的软件架构。 SOA架构的实体:服务提供商(Service Provider) 服务注册表(Service Register) 服务使用者(Service Consumer) SOA概念通过Web服务实现。 Web服务功能: 1.支持数据交换(XML) 2.支持文档交换(pdf,视频文件,图像文件) 3.支持同步或者异步客户端(同步:等待服务完成操作 异步:调用服务后执行其它函数而不是等服务完成) Web服务优点: 1.支持应用程序和数据集成(http以及跨平台支持 实现了此功能) 2.多功能(Web服务可以通过客户,Web应用以及其它Web服务调用 组合在一起 实现多功能) 3.代码可重用性(一个服务可对应多个客户端) 4.节约成本 Web服务使用JWSDP工具包开发。(这里特指了基于XML的web服务) JWSDP工具包提供了以下API: JAX-WS:用于开发XML Web服务的JAX-WS:(Java API forXML WebService) JAXP:用于解析XML的JAXP:(Java API forXML Parsing) JAXB:用于绑定XML到Java对象 形成映射关系的JAXB(Java API forXML Binding) SAAJ:用于将XML或非XML数据的大型文档作为SOAP消息的附件通过因特网传输的API SAAJ:(SOAP with Attachments API for Java)是RESTful Web服务的实现基础 JAXR:用于在Web服务中访问服务注册表API JAXR:(Java API forXML Registing) Web服务类型: 基于XML的Web服务:(架构由WSDL UDDI和SOAP组成 介绍Web服务1.9) RESTful Web服务(REST架构->Restful服务) 基于XML的Web服务:由三大组件构成,WSDL(描述基于XML的web服务) UDDI(注册基于XML的服务) SOAP(在Web应用间传递消息) WSDL:此组件基于XML的文档,用于描述基于XML的Web服务功能 UDDI:此组件基于XML的目录,用于注册基于XML的Web服务 SOAP:此组件基于XML的协议,用于在Web应用间交换消息(Simple Object Access Protocol) API是JAX-WS Restful Web服务:基于XML/JSON,以http/https为通信标准。 使用JAX-RS API创建。 JAX-RS API提供javax.ws.rs 来开发Rest Web服务。 javax.ws.rs.core javax.ws.rs.ext **************基于XML的web服务展开: WSDL文档的元素:<definitions> <types> <message> <portType> <binding> <service> 用来描述基于XML的web服务 其中:抽象模型:types,message,portType 具体模型:binding,service. UDDI: 用来注册基于XML的web服务 组成:白页,黄页,绿页 SOAP:用于在Web应用间通信 传递消息 组成:SOAP信封,SOAP报头,SOAP正文,SOAP故障。 创建基于XML的web服务: a.创建Web服务(在服务器端或者创建客户端应用程序) b.定义Web方法(在客户端) 客户端通过WSDL文件或者通过显式编码客户端应用程序实现。 **********:Rest与Restful Web服务展开 REST是基于SOA的软件样式架构,用于设计RESTful Web服务。 REST是架构,不是标准(RESTful才是标准),REST遵循面向资源的架构。 REST使用数据元素,组件,连接器来定义关键组件间的关系,REST架构图在 4.5 REST方法使用现有Web标准,Rest更常用(轻量级 简单) REST架构使用http或https通信。 REST四大设计原则: 使用http方法 显示无状态特性 公开目录结构 以XML/JSON数据格式传输。 Restful是与REST一起使用的标准: ①用于数据传输的XML/JSON ②用于访问web服务的URI 3.用于数据表示的MIME类型 Restful Web服务使用JAX-RS API创建。 JAX-RS API提供javax.ws.rs 来开发Rest Web服务。 javax.ws.rs.core javax.ws.rs.ext javax.ws.rs.WebApplicationException抛出异常 javax.ws.rs.ext.MessageBodyWriter和javax.ws.rs.ext.MessageBodyWriter接口负责序列化和反序列化java类型数据。 Restful Web使用从下到上或从上到下的方法开发 可以使用@path批注来指定资源类或其方法的访问url Restful Web服务与基于XML的Web服务对比: 优先选择RESTful Web服务: ①要开发的Web服务本质上无状态 ②客户端每次请求数据未动态生成Web服务要返回的数据 3.使用者的带宽有限。 优先选择基于XML的Web服务: ①客户端需要用于定义客户端与服务交互时必须使用的格式的合约才能与web服务通信时 ②需要实现非功能性功能时,例如事务和安全性 3.web服务本质上要异步执行 处理SOAP消息 (单SOAP以及SAAJ)(XML数据格式/非XML数据格式)(即基于XML和基于RESTful 的Web服务) 处理XML数据:JAXP API , JAXB API DOM和SAX API处理XML 处理非XML数据:SAAJ API DOM API允许读取和操作XML,DOM在内存中创建对象树,即DOM树。 SAX API以数据流形式处理XML,只允许读取,基于事件解析器。 JAXB以对象形式向Java显示XML: 包括两个步骤: 步骤①:绑定XML文档的模式 步骤②:取消列集XML的文档 SAAJ API在javax.xml.soap包中定义,附件可以是任何格式,纯文本,XML,JSON,音频等。 Metro是软件堆栈,提供更快,安全,可靠,可互操作且面向性能的Web服务 Metro使用JAX-WS和WSIT进行Web服务开发 JAX-WS提供核心,WSIT保证安全,快速可靠的消息传递。 Metro帮助创建具有事务,安全性,可靠性功能的web服务/ Metro三层服务栈: ①帮助开发者开发面向业务的web服务以满足业务需求 ②定义用于在客户端与web服务间通信的标准 3.定义用于处理web服务所使用的XML数据的API(DOM/SAX) WSIT Web服务栈的实现规范: ①核心XML ②引导和配置 3.优化 ④可靠性 5.安全性。 web服务模式: 设计模式是解决编程问题的经过深思熟虑且以前使用的解决方案。 Web服务设计模式优点: ①设计模式提供经验有效的解决方案,可以创建易于理解和维护的松散耦合的模块。 ②设计人员可以通过根据设计模式提供的高级设计调整其Web组件来解决设计问题。 常见重要的Web设计模式: ①异步交互模式 ②Web服务缓存 3.web服务代理模式 4。web服务日志器模式 导致web服务出现性能瓶颈的原则: ①网络等待事件 ②处理消息花费事件 3.执行web服务操作花费的时间 部署模式是解决部署问题的经过深思熟虑且以前使用的解决方案。 常见的重要的部署模式: HTTP负载均衡模式 容器集群模式 HTTP负载均衡所用算法: ①循环:将请求均分到各个服务器 ②加权循环:将请求分发到当前性能最好的服务器 3.最少连接:将请求分发到当前连接数最少的服务器 4.基于负载:将请求分发到当前负载最小的服务器 选择题: 第一单元:SOA架构以及基于XML的web服务API介绍。(JAX**) SOA代表Service-oriented Architecture(面向服务架构) WSDL用于描述基于XML的web服务 JAX-WS用来开发基于XML的web服务 JAXR用来访问web服务注册表 SAAJ以SOAP附件形式来发送视频,图像等文档,SOAP with Attachment API for Java 第二单元:基于XML的web服务组成 抽象WSDL文件包含portType元素 具体WSDL文件包含service元素 绿页提供关于帮助使用者的技术信息 SOAP消息处理程序用于截取Web服务的请求和响应中的SOAP消息。 第三单元:实现基于XML的web服务 @OneWay方法定义的Web方法具有输入但是没有输出 javax.xml.ws.spi包定义了JAX-WS的service provider接口 MTOM是一种新型的附件规范,应用于SOAP附件消息 javax.xml.ws包定义了JAX-WS API @WebMethod批注仅受具有@WebService批注的那些类支持 第四单元:REST架构: 显示有状态特性不是REST设计原则(使用HTTP方法,显示无状态特性,公开目录结构,以XML/JSON格式传输数据) 您想要易于开发和使用的轻量级Web服务是使用RESTful Web服务的场景 您想要服务器处理数据的序列化和反序列化是使用基于XML的web服务的场景 GET方法用于读取当前状态资源 JSON是用于数据交换的格式。 第五单元:实现RESTful Web服务:(JAX-RS相关:javax.ws.rs javax.ws.rs.core javax.ws.rs.ext) java.ws.rs.core才是JAX-RS API的一部分(java.ws.core不是) RuntimeDelegate类是在javax.ws.rs.ext包中定义的 @Context批注是由javax.ws.rs.core包提供的 javax.ws.rs包定义了WebApplicationException javax.ws.rs.ext定义了MessageBodyWriter和MessageBodyReader @POST后面没有/customer请求 也没有content-type=application/xml 仅仅只有@POST 第六单元:处理SOAP消息(单SOAP以及SAAJ)(基于XML以及RESTful) Java提供JAXP API来解析XML数据 org.xml.sax包包含SAX API的基本接口 javax.xml.bind包提供作为Java应用程序进入JAXB框架入口点的JAXBContent类 javax.xml.soap.DetailEntry接口存储关于SOAPFault对象的信息 javax.xml.soap包的MessageFactory类用来初始化SOAPMessage对象 第7单元:Metro堆栈 Metro堆栈不适用JAXR的XML处理库(JAXR是注册web服务的) WSIT web服务不实现事务规范 XML Infoset不是核心XML规范 引导是解析WSDL文件的过程。 WSIT不能创建RESTful Web服务 第8单元:Web服务设计模式 设计模式定义:解决编程问题的经过深思熟虑且以前使用的解决方案。 容器集群模式是部署模式 日志写入程序不是安全日志器模式的组件。 HTTP负载平衡模式是部署模式 HTTP负载均衡不适用低连接,使用最少连接算法。

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

8张图带你轻松温习Java知识

年初四好,一图胜千言,下面图解均来自Program Creek 网站,目前它们拥有最多的票选。 如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。 1 字符串不变性 下面这张图展示了这段代码做了什么 [code ]String s = "abcd"; s = s.concat("ef");[/code] 2 equals()方法、hashCode()方法的区别 HashCode被设计用来提高性能。equals()方法与hashCode()方法的区别在于: 如果两个对象相等(equal),那么他们一定有相同的哈希值。 如果两个对象的哈希值相同,但他们未必相等(equal)。 3 Java异常类的层次结构 图中红色部分为受检查异常。它们必须被捕获,或者在函数中声明为抛出该异常。 4 集合类的层次结构 注意Collections和Collection的区别。(Collections包含有各种有关集合操作的静态多态方法) 5 Java同步 Java同步机制可通过类比建筑物来阐明。 6 别名 别名意味着有多个变量指向同一可被更新的内存块,这些别名分别是不同的对象类型。 7 堆和栈 图解表明了方法和对象在运行时内存中的位置。 8 Java虚拟机运行时数据区域 图解展示了整个虚拟机运行时数据区域的情况。 推荐:成为架构师的四阶段学习资料 推荐:分享一套高级Java笔试题(实拍高清图) 推荐:过年回家,程序猿最怕的5件事 如果对你有用,欢迎分享到朋友圈

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

Android学习笔记(三)基础知识(2)

交互对话框 使用Android SDK中,具有交互功能的对话框是AlertDialog窗口。 package com.example.test8; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private Button bt; int n=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub n++; String str=Integer.toString(n); bt.setText("点击次数:"+n); new AlertDialog.Builder(MainActivity.this) .setTitle("提示") .setMessage("对话框") .setPositiveButton("确定",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } } ) .show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } 拖放相片特效 在Android中,拖动图片的特效可以通过Android.content.Context,Android,widget.BaseAdapter和Android.widget.imageView等来实现。 在下面的列子中,context可以像画布一样,随时可以被处理覆盖。Context是作为Android.content子类。通过widget.BaseAdapter作为容器来存放Gallery所需要的图片。 这里是通过使用Gallery实现的相片拖拽功能,具体代码如下: package com.example.test9; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.TextView; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private TextView textview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview = (TextView)findViewById(R.id.textView1); textview.setText("特效演示"); textview.setTextColor(Color.BLUE); Gallery gallery=(Gallery)findViewById(R.id.gallery1); gallery.setAdapter(new ImageAdapter(this)); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public class ImageAdapter extends BaseAdapter{ private Context myContext; private int[] myImageID={android.R.drawable.btn_minus, android.R.drawable.btn_radio, android.R.drawable.ic_lock_idle_low_battery, android.R.drawable.ic_menu_camera }; public ImageAdapter(Context c){ this.myContext=c; } public int getCount() { // TODO Auto-generated method stub return this.myImageID.length; } public Object getItem(int position) { // TODO Auto-generated method stub return position; } public long getItemId(int position) { // TODO Auto-generated method stub return position; } public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView i=new ImageView(this.myContext); i.setImageResource(this.myImageID[position]); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setLayoutParams(new Gallery.LayoutParams(120,120)); return i; } } } 设置about关于信息 创建一个onCreateOptionsMenu(Menu menu)类函数,用于添加Menu菜单项,再利用onOptionItemSelected选择菜单项 package com.example.test10; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.view.Menu; import android.view.MenuItem; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0,0,0,"关于"); menu.add(0,1,1,"退出"); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item){ super.onOptionsItemSelected(item); switch(item.getItemId()){ case 0: openOptionsDialog(); break; case 1: finish(); } return true; } private void openOptionsDialog(){ new AlertDialog.Builder(this) .setTitle("关于") .setMessage("***") .setPositiveButton("OK",new OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }) .show(); } } 程序加载中状态框 程序加载中的提示,此功能是通过Progress Dialog类来运行,此类在Android.app.ProgressDialog类里。但是,我们需要注意使用dismiss()函数来关闭取得焦点的对话框,否则程序将陷入死循环,也不能在线程里更改CONTEXT或parent view的任何状态。 package com.example.test11; import android.os.Bundle; import android.app.Activity; import android.app.ProgressDialog; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private TextView text; private Button bt; public ProgressDialog myDialog=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text=(TextView)findViewById(R.id.textView1); bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(myShowProgressBar); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } Button.OnClickListener myShowProgressBar=new Button.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub final CharSequence strDialogTile="请等待"; final CharSequence strDialogBody="程序正在运行"; myDialog=ProgressDialog.show(MainActivity.this,strDialogTile,strDialogBody,true); text.setText(strDialogBody); new Thread(){ public void run(){ try{ text.setText("start"); sleep(3000); text.setText("end"); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally{ myDialog.dismiss(); } } }.start(); } }; } 本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2013/05/16/3076677.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

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部分的功能。

用户登录
用户注册